Get in touch
  • OpenCart
  • SEO
  • v2.0.4

CatCode SEO Pack — SEO Module for OpenCart 2.3, 3.x and 4.x

All of a shop's SEO in one OpenCart 3 and 4 module: meta tags, sitemap, structured data, redirects with a 404 log, clean URLs by transliteration and a catalogue audit.

Download Free
Pro · lifetime licence The more sites, the less each one costs
Compatibility
OpenCart 2.3.0.x, 3.0.3 – 3.0.5.0 and 4.0.2 – 4.1.x
Version
v2.0.4 (OpenCart 4)
v2.2.1 (OpenCart 3.x)
v2.2.1 (OpenCart 2.3)
Licence
two sites, lifetime
Trial
7 days, no card, one per site
Updated
26.10.2026
Or all 173 Pro modules with All Access — 4 990 ₴ / year

The module in action — 40 sec

Clear even without sound: Ukrainian subtitles

What Free has,
and what Pro adds

The free version works with no time limit. Pro adds the rest of the features in the table.

Feature Free Pro
XML sitemap: index, chunks, images, hreflang ✔ ✔
JSON-LD structured data: Product, Offer, Breadcrumbs, Organization, WebSite ✔ ✔
Canonical without filter, sort, limit and UTM parameters ✔ ✔
rel=prev / rel=next and noindex for filter pages ✔ ✔
Meta tag templates with placeholders for every page type ✔ ✔
Bulk generation: up to 200 rows per run for free, unlimited in Pro ✔ ✔
Rules by category, manufacturer and language with priority — ✔
"Before → after" preview and one-click rollback — ✔
301/302 redirects with wildcards and a 404 log — ✔
Bulk SEO-URL generation by transliteration (KMU 55/2010) — ✔
Audit: duplicate meta, empty and overly long descriptions, products with no clean URL — ✔

What it looks like

CatCode SEO Pack — free version: Pro fields greyed out with a badge
A fresh install is exactly the free version. Pro features are visible in place, but locked, with an explanation of what each one gives you.
CatCode SEO Pack — locked Pro tabs
The Free/Pro line is shown honestly: the redirects, clean URL and audit tabs are in place, but disabled until there’s a key.
CatCode SEO Pack — modal with the trial period and key field
The trial only starts with your click: an email, and a 7-day key is issued immediately and also sent by email. The second tab is for an already-purchased key.

Key points

XML sitemap

An index plus separate files by type, with product images, and hreflang alternates for multilingual shops as well (on OpenCart 3 and 2.3 since version 2.2.0, when the language is part of the page address).

Structured data for Google

JSON-LD with Product and Offer — name, SKU, brand, image, and exactly the price the shopper sees: with any promotion applied, in the storefront currency, with stock availability.

Redirects and the 404 log (Pro)

Every address that isn’t found lands in the log along with the referrer and a hit counter — rules are written from facts, not guesswork.

The trial starts when you ask

A fresh install is the free version, nothing switches on by itself. The “Try Pro for 7 days” button → e-mail → the key right in the window and by e-mail.

One key — two sites

Moving the store? Unbind the licence on the old domain and activate it on the new one yourself. For studios — keys for 5 or 25 sites, or unlimited.

Technical requirements

  • OpenCart 2.3.0.x, 3.0.3 – 3.0.5.0 and 4.0.2 – 4.1.x

Version history

v2.0.4 OC 4.x v2.2.1 OC 3.x and 2.3 Current 26.10.2026

301 redirects now fire for visitors from ads and newsletters too.

v2.2.0 OC 3.x and 2.3 30.09.2026

Language versions: when the shop language is part of the page address (ocStore SEO Pro, a /ru/ language-prefix extension), the sitemap lists every language version with hreflang alternates…

v2.1.1 OC 3.x and 2.3 v2.0.3 OC 4.x 21.09.2026

Licence: the “Save” button no longer resets the purchased-licence mark, the trial now ends correctly after 7 days, and “Release the licence” removes Pro from this site.

All versions (4)
v2.0.2

An XML sitemap, structured data for Google, redirects and a 404 log, SEO URLs by transliteration, meta tag templates, catalogue audit; builds for OpenCart 3 and OpenCart 4; works with no core patches.

Frequently bought with CatCode SEO Pack

4 modules in one order — 40% cheaper than separately

“Store starter” bundle CatCode SEO Pack Nova Poshta Premium LiqPay Telegram notifications and Viber/SMS for customers Need more — all 173 modules in All Access for 4 990 ₴.
3 790 ₴ lifetime instead of 6 260 UAH bought separately
Buy the bundle →

Full module description

CatCode SEO Pack for OpenCart 2.3, 3.x and 4.x — all of a shop’s SEO in one module: an XML sitemap, structured data for Google, a canonical on filters, meta tag templates, redirects with a 404 log, bulk SEO-URL generation by transliteration, and a catalogue audit.

XML sitemap

An index plus separate files by type, with product images, and hreflang alternates for multilingual shops as well (on OpenCart 3 and 2.3 since version 2.2.0, when the language is part of the page address). Rows are read page by page, and the sitemap is split into separate part files, so a catalogue of 100,000 items doesn’t assemble a 30-megabyte string in memory. Only what the shopper can see goes into the map: enabled items in the current shop, once their availability date has arrived.

Structured data for Google

JSON-LD with Product and Offer — name, SKU, brand, image, and exactly the price the shopper sees: with any promotion applied, in the storefront currency, with stock availability. AggregateRating is only added when there are approved reviews: a made-up rating is the fastest way to lose a rich snippet. Plus BreadcrumbList, Organization with social profiles, and WebSite with a search box on the homepage.

Redirects and the 404 log (Pro)

Every address that isn’t found lands in the log along with the referrer and a hit counter — rules are written from facts, not guesswork. A log row turns into a redirect with one click, and wildcard masks for a whole branch (blog/*) are supported. The response is returned before the shop even starts building a page, so the rule also works for addresses that no longer exist in the catalogue.

SEO URLs by transliteration (Pro)

Bulk generation of clean URLs using the Ukrainian KMU 55/2010 transliteration standard, separately for each language: the Ukrainian page gets a Ukrainian link, the English one an English link. OpenCart 2.3 stores one keyword per product for all languages, so there the link is shared. On OpenCart 4, the run also creates the missing route rows for languages that lack them — those missing rows are usually exactly why a clean URL on a second language silently returns the home page.

Catalogue audit (Pro)

Duplicate titles and descriptions, empty and overly long descriptions, products with no clean URL, no image, or a too-short description — each issue comes with a count and the first ten pages that need fixing.

Three builds: OpenCart 2.3, 3 and 4

Each OpenCart version gets its own build, not a “compatible” compromise. The functionality is the same; the difference is only where the platform differs: in stock OpenCart 3 and 2.3 the language is stored in the session, not the address, so all language versions of a page share one address and the sitemap is single-language. When the language is in the address (on OpenCart 3, ocStore SEO Pro or a language-prefix extension such as /ru/; on OpenCart 2.3, a language-prefix extension), the module detects it since version 2.2.0 and adds hreflang with x-default to the sitemap and to the page <head>. The clean URL keyword must be unique within the shop rather than the language in OpenCart 3, and in OpenCart 2.3 there is one keyword for all languages. Redirects in OpenCart 3 and 2.3 are wired through the generic controller event, because the pre-actions of these versions provide no events.

Meta tag templates

Meta tags are described with a formula using placeholders — product name, category, manufacturer, model, SKU, price, an attribute or option value, shop name, year, page number. In Pro, rules can be narrowed by category, manufacturer and language with a managed priority. Generation runs in batches with a progress bar (up to 200 rows per run without a key); in Pro every run is stored in history and rolls back with one click.

Why a shop needs this

SEO for OpenCart is usually pieced together from four or five separate modules: a sitemap from one author, structured data from another, redirects from a third. They fight over the same spots in the template, and half of it breaks after a shop update.

Here it’s all gathered into one module with a single settings screen — and, crucially, a single point of responsibility for compatibility.

How it works, step by step

1. You turn on the blocks you need: sitemap, structured data, redirects, meta tag templates, URL transliteration.

2. You set title and description templates from product variables — for the whole catalogue at once.

3. You run a catalogue audit (Pro): the module shows empty, overly long and duplicate meta tags, and products with no clean URL, no image or a too-short description.

4. You fix what was found, and keep an eye on the 404 log (Pro) afterwards to set redirects for real traffic losses.

Under the hood

The module doesn’t patch the core — everything runs through OpenCart’s standard events, so a shop update doesn’t wipe out its changes, and removing it leaves no trace in the files.

The sitemap is generated on the fly on every request, rather than a static file you’d have to rebuild by hand after every catalogue change.

How to install

1. Upload the archive via “Extensions → Installer” and install the module.

2. Turn on the blocks you need — not necessarily all at once.

3. Run a catalogue audit and look at the list of issues.

4. Add the sitemap to Search Console.

Questions
about the module

Didn't find the answer? Message us on Telegram and we'll reply within a business day.

@catcode_support Setup, compatibility, activation
What exactly works with no key?

The sitemap, structured data, canonical and robots, and meta tag templates with a limit of 200 rows per run. Pro removes the limit and adds rules, redirects, clean URL generation and an audit.

Will the module overwrite my hand-written meta tags?

Only if you choose the "Overwrite all" mode yourself. By default only empty fields are filled in, and every run can be rolled back.

Is the sitemap available at /sitemap.xml?

Yes, the documentation includes a rule for Apache and nginx. Without it, the sitemap works at the module's direct address — a shop with no access to server configuration isn't left without a sitemap.

Why does a clean URL on the second language return the home page?

OpenCart only creates route rows for the installation language. The module adds them for the other languages itself during generation.

Will it hold up on a catalogue of 20,000 products?

Yes. Generation runs in batches with a progress bar, and the sitemap is streamed out without assembling the whole XML in memory.

Does the licence need renewing?

No. For OpenCart the licence is perpetual: one payment, and the Pro features stay with you. Only the 7-day trial ends — after it Pro switches off and the free version keeps working.

Not quite what you are looking for?

We build custom modules for WordPress, WooCommerce, OpenCart and Shopify. Tell us about the task and we'll prepare an estimate.

Order a custom module