A PrestaShop store wanting to sell in multiple countries faces three simultaneous problems: ensuring Google shows the right version of the page to the right visitor (depending on their language and country), allowing the visitor to manually switch between versions, and localising prices and currencies without breaking VAT compliance. None of the three is trivial, and their hidden interactions generate the majority of multi-country SEO bugs we encounter in audits.
This article details the correct mechanics for PrestaShop 8 in 2026: hreflang tags, country switcher, price localisation, and the pitfalls that silently degrade your international SEO if the configuration isn’t rigorous.
The pitfall of badly done multi-country
On the multi-country stores we audit, two families of problems come up over and over.
Uncontrolled duplicate content. If your product page is accessible in French for France (/fr/product-x) AND for Belgium (/be/product-x) AND for Canada (/ca-fr/product-x) with the same textual content, Google detects three near-identical pages and chooses for itself which to index as priority — often not the one you’d want. Without explicit hreflang, you’re letting Google guess.
Failing geographic targeting. A Belgian buyer searches for your product, Google shows them the French version (/fr/) instead of the Belgian version (/be/). The customer clicks, sees prices in French euros, French metropolitan shipping rates, and abandons thinking you don’t ship to Belgium. You have the offer, you deliver it, but the visitor doesn’t know it because the wrong version was served to them.
These two problems are solved by hreflang tags — provided they’re correctly implemented. On the audits we conduct, around 60% of multi-country stores have technically broken hreflang: missing tags, non-reciprocal tags, malformed country codes, conflict with canonical tags. None of these bugs is visible on the visitor side — you discover the problem when your Belgian traffic stays at zero for 18 months even though the market is open.
Hreflang: the key tag of multi-country SEO
The hreflang tag tells Google: “this page also exists for such other country/language, here’s the URL of that other version”. It’s placed in the head of each page, or in the XML sitemap, or in HTTP headers — all three are valid, but the head is easiest to debug.
Minimal format for a product page existing in FR-FR, FR-BE, and FR-CA:
<link rel="alternate" hreflang="fr-FR" href="https://yourstore.com/fr-fr/product/...">
<link rel="alternate" hreflang="fr-BE" href="https://yourstore.com/fr-be/product/...">
<link rel="alternate" hreflang="fr-CA" href="https://yourstore.com/fr-ca/product/...">
<link rel="alternate" hreflang="x-default" href="https://yourstore.com/product/...">
Four non-negotiable rules:
1. Reciprocity. If page A references page B in hreflang, page B must reference page A. Without that, Google ignores the unilateral declaration. It’s the most frequent error — 40% of multi-country stores have at least one non-reciprocal hreflang somewhere in their tree.
2. Correct country/language codes. The format is language-country per ISO 639-1 (language) and ISO 3166-1 alpha-2 (country). fr-FR is valid, fr-FRA or fre-FR are invalid and ignored. For the UK it’s en-GB, not en-UK.
3. Absolute URLs. Hreflang tags must contain complete URLs (https://...), not relative paths. A relative URL breaks the tag.
4. Consistency with canonical. Each page in the hreflang grid must have its own canonical tag pointing to itself (not to another version). Pointing the canonical of the fr-be page to the fr-fr page cancels the hreflang effect.
On native PrestaShop 8, hreflang management is partial and often incomplete depending on the theme. The DataFirefly Hreflang module automates tag generation on all multilingual pages, manages reciprocity, validates ISO codes, and syncs with multi-shop. It’s the fastest way not to have to debug those 4 rules by hand product by product.
The country switcher: UX and ergonomics
The country switcher is the element that lets the visitor manually toggle between versions of your store. It’s generally placed at the top right of the header (next to account / cart) or in the footer.
Three dominant UX patterns in 2026:
The simple clickable flag. A flag (icon) representing the current country, clickable to open a dropdown of other available countries. Compact, immediately understandable, works well on mobile. Limit: if you handle many countries (>10), the dropdown becomes long and unusable.
The flag + country name selector. Flag + text combination (“🇫🇷 France” / “🇧🇪 Belgium”). More accessible (flags alone can be ambiguous — Spanish vs Catalan vs Colombian flag), better supports multiple countries with the same language (FR-FR vs FR-BE vs FR-CA).
The selection modal on first visit. For heavily multi-country stores, a modal that displays on first load and explicitly suggests choosing a country. More intrusive, but avoids initial targeting errors. Use sparingly — many users hate modals appearing immediately.
Classic mistake: auto-redirect the visitor to the version of their IP-detected country, without asking confirmation. This practice is explicitly discouraged by Google (bad SEO signals), frustrates travellers and VPN users, and breaks shared links (a Belgian sharing a /fr-be/... URL with a French person gets redirected). The good practice in 2026: suggest the right country to the visitor via a discreet banner (“You’re in Belgium. View our Belgian store?”), not redirect without asking.
On PrestaShop 8, the DataFirefly Country Switcher module implements the flag + country name pattern with dropdown, native multi-shop support, and compatibility with the Hreflang module for coherence of the multilingual stack. Configuration is centralised and survives PrestaShop updates.
Price localisation, currencies, and VAT compliance
Price localisation is the most technically delicate topic because it crosses SEO, UX, and legal compliance.
Currencies. PrestaShop 8 handles multi-currency natively, with exchange rates configurable manually or synced via API (ECB, Open Exchange Rates). On multi-country stores, each version should display the local currency by default (€ for the eurozone, CHF for Switzerland, GBP for the UK, etc.). Manual switcher remains possible but is less used in 2026 — visitors prefer seeing their country’s currency directly.
Net vs gross prices. For B2C stores, gross prices everywhere (with “incl. VAT” or “VAT included” mention). For B2B stores, net prices by default with “ex VAT” mention and toggle to switch to gross. Mixing net and gross on the same page without clear hierarchy is the most frequent friction cause on mixed B2B/B2C stores.
VAT per country. In the eurozone, VAT depends on the delivery country (not the store’s country) for B2C sales above the OSS (One Stop Shop) threshold of €10,000 net cumulative EU sales per year. Below the threshold, you apply French VAT. Above, you apply the delivery country’s VAT and declare via OSS. PrestaShop 8 handles the system natively, provided the OSS module is enabled and country rates configured.
Marketing price localisation. Beyond simple EUR → CHF conversion, some stores differentiate prices per country for commercial reasons (a €49 product in France can be CHF 55 in Switzerland, not the exact rate). It’s doable with multi-shop or price groups but requires product-by-product work. At minimum, roundings must be consistent (€49.99 → CHF 49.99, not CHF 50.12 which appears clumsy).
Native PrestaShop 8 configuration vs third-party modules
PrestaShop 8 natively exposes several multi-country bricks via multi-shop. Here’s what works natively and what requires complementary modules.
Native: multi-shop with one domain per country. You can create multiple stores (in the PrestaShop multi-shop sense), each with its own URL (e.g. mysite.fr for France, mysite.be for Belgium), sharing the same product catalogue or with differentiated catalogue. Configuration is solid and well-documented.
Native: multi-language per store. Each store in the multi-shop can have multiple languages. A Belgian store can display French + Dutch + German, for example.
Missing natively: automatic hreflang between stores. PrestaShop doesn’t spontaneously generate the right hreflang tags when you have multiple stores with translated content. That’s precisely the role of the dedicated hreflang module.
Missing natively: unified country switcher. PrestaShop has a language switcher in the footer but not a real country/store switcher with flags. Dedicated module needed for this.
Missing natively: smart suggestions. The “You’re in Belgium, view our Belgian store?” banner doesn’t exist natively. To implement via a module or custom JS.
The most stable combination in 2026: native PrestaShop multi-shop (one domain per primary country, subdirectories for secondary countries of the same language) + DataFirefly Hreflang module for automatic tags + DataFirefly Country Switcher module for UI. The three form a coherent stack covering 95% of multi-country use cases without workaround.
Measuring multi-country success
Three metrics to set up to evaluate whether your multi-country actually works.
1. Indexation per country in Search Console. Configure each domain or subdirectory of your multi-country as a separate property in Search Console. Each property shows traffic, queries, clicks, positions for the corresponding country. If your Belgian store has 5% of your French store’s traffic, you know where you stand.
2. Hreflang errors in Search Console. Search Console > Enhancements > International Targeting details the hreflang errors detected by Google: non-reciprocal tags, invalid codes, canonical conflicts. A multi-country store without hreflang error in Search Console is rare — aim for zero errors as the goal.
3. Traffic and conversion per country in GA4. In GA4, segment by country (Country dimension). Compare sessions/conversions ratio per country. A distortion (e.g. 30% Belgian sessions but 5% Belgian conversions) signals either a price/shipping localisation problem or a local UX problem.
Conclusion: multi-country isn’t an option, it’s a project
Many merchants approach multi-country as a simple configuration option: “I add Belgium by ticking a few boxes”. The reality is that a well-done multi-country is a project in itself, combining SEO (hreflang), UX (country switcher), localisation (prices, currency, VAT), and measurement (per-country analytics). Badly done, multi-country degrades French SEO instead of opening additional markets.
The initial investment is a few days of serious configuration plus a few hundred euros of dedicated modules. The return, on the stores we support, is generally between 15 and 40% additional revenue over 12-18 months depending on markets opened and execution quality.
To dig deeper, browse our E-commerce SEO and PrestaShop Tutorials categories. And to align your PrestaShop 8 on the 2026 multi-country standards, the combo Hreflang Module + Country Switcher covers the technical bricks missing from native PrestaShop, with unified multi-shop configuration.
