Setting Up OpenCart SEO Modules
OpenCart out-of-the-box generates URLs like /index.php?route=product/product&product_id=42, doesn't auto-populate meta tags, and doesn't create sitemap. For search ranking, additional setup needed: SEO URLs, metadata, canonical links, structured data.
SEO URLs—First Step
In Admin > System > Settings > Server enable Use SEO URLs. Ensure .htaccess in site root contains:
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
After this, SEO URL field appears in each category and product card—fill in Latin with hyphens, no special chars.
SEO Modules
SEO Pack Pro (opencartextensions.ru or similar)—comprehensive solution:
- auto-generate
<title>and<meta description>by template - bulk fill meta tags via CSV import
- canonical URL for pagination (
?page=2→rel="canonical"on first page) - hreflang for multilingual stores
Installation standard: Admin > Extensions > Installer, then activate in Extensions > Modules.
Google Sitemap—separate module or built-in SEO Pack. Generates /sitemap.xml with all products, categories, manufacturers. Priority settings:
| Page Type | Priority | Changefreq |
|---|---|---|
| Home | 1.0 | daily |
| Categories | 0.8 | weekly |
| Products | 0.6 | weekly |
| Manufacturers | 0.4 | monthly |
Sitemap updates by cron—add to crontab:
0 3 * * * wget -q -O /dev/null "https://myshop.ru/index.php?route=extension/module/sitemap/generate&token=SECRET"
Structured Data
For products Google searches for application/ld+json with Product type. Add to template catalog/view/theme/mytheme/template/product/product.twig:
<script type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "Product",
"name": "{{ product_info.name | escape('js') }}",
"sku": "{{ product_info.model }}",
"offers": {
"@type": "Offer",
"price": "{{ product_info.price_raw }}",
"priceCurrency": "RUB",
"availability": {% if product_info.quantity > 0 %}"https://schema.org/InStock"{% else %}"https://schema.org/OutOfStock"{% endif %}
}
}
</script>
Robots.txt and Pagination Parameters
User-agent: *
Disallow: /index.php?route=account/
Disallow: /index.php?route=checkout/
Disallow: /index.php?route=common/currency
Allow: /
Sitemap: https://myshop.ru/sitemap.xml
Pages with ?sort= and ?limit= better close from indexing via <meta name="robots" content="noindex, follow"> in template when GET-parameters present—otherwise page duplicates dilute weight.
Timeline
SEO modules installation and basic setup, .htaccess, sitemap, robots.txt: 1 day. Filling meta tags for 500–1000 product catalog via CSV import: 1–2 days additional.







