SEO URLs in OpenCart: जब आप OpenCart मैं काम करते हैं, तो कभी-कभी आपके डेटाबेस में टोटल products और उनके SEO URLs के बीच मिसमैच हो सकता है।
Example ke liye, मान लीजिए कि oc_product_description table mein language_id = 1 ke लिए 158 products हैं, लेकिन oc_seo_url table में 159 product-related entries हैं.
इसका मतलब एक ऐसा SEO URL है जो किसी valid product से जुड़ा नहीं है.
ऐसे mismatches से SEO problems हो सकती हैं, जैसे broken links या गलत redirects.
इस article में हम SQL query ka use करके ऐसे extra SEO URLs identify करेंगे jo kisi product se जुड़े नहीं हैं.
OpenCart store को SEO friendly बनाने के लिए, यह ज़रूरी है कि आपकी सभी product URLs सही तरीके से सेट की गई हों। कई बार products के लिए SEO URL missing होते हैं, कुछ duplicate होते हैं या कुछ ऐसे होते हैं जो किसी non-existing product की ओर point करते हैं। इस guide में हम step-by-step देखेंगे कि इन सभी issues को कैसे पहचानें और सुधारें।
SEO URLs in OpenCart ? कहां स्टोर होते हैं?
| Table Name | उपयोग / Purpose |
|---|---|
oc_url_alias | SEO keyword को system query से map करता है जैसे product_id=123 |
oc_product | सभी product details जैसे status, model आदि |
oc_product_description | Language-specific product name, description वगैरह |
तीन मुख्य चेक्स | Three Main Checks?
- Missing SEO URLs – product मौजूद है पर उसका कोई SEO URL नहीं है
- Duplicate SEO URLs – एक ही keyword एक से ज्यादा products से जुड़ा है
- Orphan SEO URLs – SEO keyword किसी ऐसे product को point करता है जो अब मौजूद नहीं है या disable है
Missing SEO URLs – Products जिनका कोई SEO URL नहीं है
SELECT p.product_id, p.model
FROM oc_product p
LEFT JOIN oc_seo_url ua ON ua.query = CONCAT('product_id=', p.product_id)
WHERE ua.seo_url_id IS NULL;
SQLइससे आपको वे products मिलेंगे जिनका कोई SEO URL नहीं है।
Duplicate SEO URLs – एक ही keyword multiple products से जुड़ा है
SELECT ua.keyword, COUNT(*) AS uses
FROM oc_seo_url ua
WHERE ua.query LIKE 'product_id=%'
GROUP BY ua.keyword
HAVING uses > 1;SQLअब देखें कि कौन-कौन से products उस keyword से जुड़े हैं:
SELECT ua.keyword,
REPLACE(ua.query,'product_id=','') AS product_id,
pd.name
FROM oc_seo_url ua
JOIN oc_product_description pd
ON REPLACE(ua.query,'product_id=','') = pd.product_id
WHERE ua.keyword IN (
SELECT keyword
FROM oc_seo_url
WHERE query LIKE 'product_id=%'
GROUP BY keyword
HAVING COUNT(*) > 1
);
SQLOrphan URLs – URLs जो किसी invalid या disabled product को point करते हैं
SELECT ua.seo_url_id, ua.keyword, ua.query
FROM oc_seo_url ua
LEFT JOIN oc_product p ON ua.query = CONCAT('product_id=', p.product_id)
WHERE ua.query LIKE 'product_id=%'
AND (p.product_id IS NULL OR p.status = 0);
SQLइन rows को delete किया जा सकता है या किसी active product से जोड़ा जा सकता है।
Admin Panel या Script से Automate करें
- VQMod / OCMOD से एक admin tool बना सकते हैं
- या एक simple PHP audit script
/admin/folder में बनाएं:
require_once('config.php');
require_once(DIR_SYSTEM.'startup.php');
$db = new DB\MySQLi(DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
// SQL queries को यहां run करें और output दिखाएं या CSV में export करें
PHPProblems कैसे Fix करें?
| समस्या / Issue | समाधान / Solution | ध्यान दें / Note |
|---|---|---|
| Missing URL | Product edit → SEO Keyword डालें | Unique रखें per language & store |
| Duplicate keyword | सिर्फ एक product को keyword दें | बाकी को नया keyword या 301 redirect दें |
| Orphan row | Delete या valid product से जोड़ें | Ensure कोई backlink उसपर depend न हो |
- SEO URLs को manage करने के लिए SQL Queries से check करना आसान और तेज़ तरीका है
- Missing, duplicate और orphan URLs को पहचानना जरूरी है
- Fix करने के बाद redirects और uniqueness maintain करें
- Future problems रोकने के लिए preventive measures ज़रूरी हैं


Welcome to HindiTutorials, your go-to platform for learning and mastering concepts in Hindi! Our mission is to make education accessible and simple for everyone by providing high-quality tutorials on programming, technology, and various other topics.