← Blog

PrestaShop Multilingual SEO: What the Store Does For You, and What It Cannot

September 9, 2026

PrestaShop Multilingual SEO: What the Store Does For You, and What It Cannot

PrestaShop Multilingual SEO: What the Store Does For You, and What It Cannot

There is a comfortable belief among PrestaShop merchants that adding a language is an SEO decision. It is not. Adding a language is a content decision. The SEO part happens on its own, but only if the translations sit where PrestaShop expects them.

That single condition explains most of the difference between a multilingual store that ranks in its new markets and one that has translated pages nobody finds.

What PrestaShop generates by itself

This is the part that surprises people coming from WordPress, where every one of these needs a plugin.

Once a language is active and your content has translations in the language tables, PrestaShop produces the hreflang annotations, the canonical tags, the language-specific URLs and the sitemap entries on its own. The theme's language selector switches to the equivalent page rather than dumping visitors on the home page. Structured data follows the active language.

So the multilingual SEO layer is not something you install. It is something you feed.

Which means the failure mode is not "my SEO plugin is misconfigured". It is "the rows are empty, so the store correctly declares that this page has no German version".

The hreflang question, settled

Hreflang tells search engines that two URLs are the same page in different languages, so the right one gets served to the right audience instead of the two competing.

PrestaShop emits it automatically for every active language, using the shop URL configured for each. Three things break it, all of them configuration rather than translation:

Shop URLs that do not match reality. If you serve the store over HTTPS but the shop URL still says HTTP, or if a language is mapped to a domain you no longer use, the annotations point at addresses that redirect or fail. Check Preferences, then SEO and URLs.

Languages left active but empty. An active language with no translated content still gets declared. Search engines then find a page that is mostly source language, decide it is a duplicate, and your good pages inherit the doubt. Deactivate a language you are not ready to serve.

A page that exists in one language only. That is legitimate, and PrestaShop handles it, but it means the language selector will not lead anywhere useful for that page. Decide deliberately which pages are language-specific rather than discovering it in the logs.

You do not need an hreflang plugin. You need the shop URLs to be right and the tables to be full.

Translated URLs, and the one that genuinely 404s

PrestaShop stores a link_rewrite per language for products, categories and CMS pages, and a url_rewrite for the static meta pages. Translating those is good for search: a French shopper trusts /femmes/robes-ete more than /3-summer-dresses, and the words in the URL are still a ranking signal in most markets.

The risk is not evenly distributed, and this is worth knowing before you touch anything on a live store.

Default PrestaShop routes carry the object ID: /3-clothes, /hommes/1-1-shirt.html, /content/1-delivery. The front controller reads the ID, notices the rewrite no longer matches, and redirects to the current address. So changing a product or category rewrite does not break the old link.

The static pages are the exception. Their rewrites contain no ID at all, so translating one turns the old address into a real 404. Those are exactly the pages that collect backlinks: delivery, returns, contact, terms. Translate them with redirects in place, not after.

If you have moved from another multilingual setup, this is also where the old addresses go missing, and it is the single most common cause of a traffic drop after a multilingual migration.

The metadata nobody translates until it hurts

Your product descriptions get attention because they are visible. The fields that decide whether anyone sees the page at all often do not.

Meta titles and meta descriptions per language. A German product page with a French meta title will be rewritten by Google, and rarely in your favour.

Category descriptions. On most stores these are the pages that rank for the broad commercial queries, and they are the pages most often left in the source language because nobody scrolls that far in the back office.

Image alt text. It carries weight in image search, which is a real acquisition channel for physical products, and it is the field that translation projects skip most consistently.

Faceted search values, if you use it. Filter combinations generate indexable pages, and a French filter page listing German attribute values does not read as a French page.

The sitemap is not the problem people think it is

A translated store's sitemap should list every language version of every page. PrestaShop and the usual sitemap modules do that correctly once the translations exist.

What goes wrong is timing. The sitemap is generated on demand or on a schedule, so a store translated on Tuesday may still be advertising its single-language sitemap on Friday. Regenerate it after a translation run, and check that the language versions are actually in it rather than assuming.

The second failure is caching in front of the store. If you run a full-page cache or a CDN, an old sitemap or an old set of hreflang tags can survive well past the change. When something looks wrong, request the page with a cache-busting query string before concluding that the store is at fault. It is the fastest way to tell a real bug from a stale copy.

What actually moves rankings in a new market

Once the mechanics are right, the remaining work is editorial, and it is where machine translation earns or loses its keep.

Search queries are not translations of each other. A German shopper does not search the literal translation of what a French shopper searches. Translated titles are a starting point, not a keyword strategy: check the terms your competitors in that market actually use, and adjust the handful of pages that matter.

Trust content matters more abroad, not less. Delivery times, return policy, local payment methods, VAT handling. These pages convert and they also earn links, which is why leaving them in the source language costs twice.

And consistency of vocabulary. A catalogue where the same product family is named three different ways across categories dilutes every page that mentions it. That is a glossary problem rather than a translation problem.

A short audit you can run today

  1. Open a product page in each language and view the source. Confirm there is one hreflang line per active language, plus x-default, all pointing at reachable URLs.
  2. Deactivate any language whose catalogue is still empty.
  3. List your static pages and check whether their URLs changed. Every one that did needs a redirect from the old address.
  4. Sort your categories by traffic and check the top ten for translated meta title, meta description and description.
  5. Regenerate the sitemap and open it. Count the languages.
  6. Search for one of your product names in a target-language search engine, in a private window. What comes back tells you more than any audit tool.

The mechanics are PrestaShop's job, and it does them well. Filling the tables and choosing what to say in each market is yours. The TrueLang module exists for the first half of that sentence: it writes the catalogue, the CMS pages, the meta fields and the URL rewrites into the store's own tables, so the SEO layer PrestaShop already knows how to build has something to build with.

PrestaShop Multilingual SEO: What the Store Does For You, and What It Cannot - TrueLang Blog | TrueLang