Clean public URLs

SEO URL Manager

SEO URL Manager creates readable OpenCart URLs while keeping store and language context correct. The safest action for most stores is Generate Missing URLs.

Try it on your storeThree steps to check this feature
  1. 1Choose the store and language, then select Generate Missing URLs rather than replacing established ones.
  2. 2Open one product in your storefront and copy its public URL.
  3. 3Refresh and verify the readable URL opens the intended product without a 404 or a redirect loop.
What confirms it works

The browser address shows a working, readable URL for that product. Existing URLs should not change unless you explicitly regenerate them.

Remember: On multi-store sites, repeat with a second store and translated language if enabled. Frontend verification guide →

Safe defaultMulti-store aware

Recommended setup

  • Keep your language prefixes meaningful, for example en and fr.
  • Hide the prefix of each store's own default language if you want clean default-language URLs.
  • Use Generate For → All Stores.
  • Use Generate Missing URLs.
  • Avoid Regenerate Existing URLs unless you intentionally want URL changes.

Why do real SEO URL rows still belong to a store?

OpenCart stores actual SEO URL records per store and language. HuntBee keeps that correct. What HuntBee makes global are the policies that should be consistent, such as route keywords and language prefix definitions.

AreaScopeMeaning
Language URL definitionsGlobal policyThe prefix choices are configured once and synchronized to store-specific SEO rows.
Route URL definitionsGlobal policyCommon route words such as the product/category route are configured once.
Hide Default Language PrefixGlobal policy using each store's default languageStore A can hide English while Store B hides French if their defaults differ.
Entity SEO URLsStore-specific dataProducts/categories still have actual OpenCart SEO URL rows for each store/language.

Generate Missing vs Regenerate Existing

Generate Missing URLs

Creates only URLs that do not already exist. This is the normal action for a new installation, new products, a new store or a new language.

Regenerate Existing URLs

Replaces existing keywords using current generation rules. Existing public URLs can change, so use this only when you deliberately want a migration and understand redirects.

What does “Generate For → All Stores” do?

One click runs the existing safe generator for every store. HuntBee still respects product/category store assignments. It does not blindly copy Store 0 URLs to every store.

Example: if Product 123 is assigned only to Store A, generating for All Stores will not create a Store B product URL for an entity that Store B does not sell.

Language prefixes

Use real non-empty prefixes such as en, fr or another short readable code. Do not create a blank prefix record to hide the default language.

StoreDefault languageTypical output
Store AEnglishEnglish: /catalog/product-name
French: /fr/catalogue/produit
Store BFrenchFrench: clean default-language URL
English: /en/...

How HuntBee builds a translated URL

When OpenCart asks for a link in another language, HuntBee resolves the target language's route and entity keyword, not just the language of the page you are currently viewing. This is important for language switchers and cross-language links.

Homepage URL

The homepage is special. You do not need to create a fake SEO keyword for common/home.

Correct: default-language homepage → https://example.com/
Non-default French homepage → https://example.com/fr/

HuntBee removes OpenCart's structural ?route=common/home from the final public link instead of turning the homepage into /home.

What does the top Store selector do?

On the SEO URL Manager dashboard/browse areas, the top Store selector lets you inspect the actual store-specific URL coverage. It does not make the global language/route policy store-specific.

What about the Quick Editor Store dropdown?

Quick Editor contains a separate SEO URL Store selector because the SEO URL is store-specific even though normal product text is centrally managed. Changing that selector changes only which store's SEO URL keyword you are editing.

Recommended setup checklist

  • Choose simple language prefixes.
  • Enable Hide Default Language Prefix if clean default-language URLs are your strategy.
  • Review route keywords before bulk generation.
  • Choose All Stores.
  • Generate Missing URLs for each language you use.
  • Check a product, category, homepage and language switcher on the storefront.
  • Use regeneration only after a backup and redirect plan.
Do not add database columns such as store.ssl or old OpenCart 3 settings such as config_ssl. OpenCart 4 uses the store URL architecture and HuntBee's shared public URL resolver.

Troubleshooting

  • ?language=en-gb leaks into clean URLs: check language URL policy and the default-language hiding setup.
  • URL has the right entity keyword but misses the route: confirm route definitions and update to a current Suite build.
  • Homepage shows ?route=common/home: current URL handling should normalize it to the store root.
  • Secondary store has no URL: confirm the entity is assigned to that store, then run Generate Missing for All Stores.