Why Your French Landing Page Doesn't Rank in France (Even Though It's Perfect)
Imagine the scene. Your team translated the landing page into beautiful, native-speaker French. You shipped it under /fr/. You added hreflang. You even set lang="fr" on the <html> element because you read that post.
Six weeks later, you open Search Console and filter to Country: France.
The URL ranking isn't /fr/. It's the English homepage. In France. For a French query.
Let's talk about why.
Language targeting and country targeting are not the same thing
This is the confusion that causes most of it. "French" is a language. "France" is a country. French is also spoken in Belgium, Switzerland, Quebec, Morocco, and half of West Africa. Your /fr/ page with hreflang="fr" tells Google it's the French-language version — but it doesn't tell Google it's the version for France specifically.
If you want the landing page to rank in France:
- Use
hreflang="fr-FR"to say France, specifically - Or set country targeting at the domain level (via ccTLD, subdomain, or folder + GSC signal)
Without one of these, Google treats your /fr/ as "French-language content, origin unclear." And "origin unclear" is a soft negative when ranking in a specific country's SERP.
The three-way choice: ccTLD vs subdomain vs subfolder
Google recognizes three URL patterns for geo-targeting. They are not equivalent.
| Pattern | Example | Geo Signal | SEO Equity |
|---|---|---|---|
| ccTLD | example.fr | Strongest | Fresh — starts from scratch |
| Subdomain | fr.example.com | Medium | Partially inherited |
| Subfolder | example.com/fr/ | Weakest (by default) | Fully inherited |
ccTLDs (.fr, .de, .mx) are the strongest native signal to Google that a site is targeting that country. They're also the most expensive because each one is a fresh domain with zero ranking history — you're rebuilding backlinks, authority, and content equity per country.
Subfolders are the cheapest and the laziest. They inherit everything from your main domain's authority, which is great for getting pages to rank at all — but Google's country-targeting default for them is "unset." You have to declare the country either through hreflang or through GSC's (now deprecated) international targeting setting, which means hreflang is doing all the work.
Subdomains are the awkward middle child. Geo-targetable, partial authority inheritance, confusing for end users who don't know if fr.example.com is the same company as example.com.
When to pick which
Honest rules of thumb:
- Pick ccTLDs if you're a large enterprise, you have dedicated in-country marketing teams, and you're prepared to build each domain's authority separately
- Pick subfolders if you're a small-to-midsize company leveraging your main domain's existing SEO, and you can get hreflang right
- Pick subdomains if you have technical constraints that prevent subfolders (e.g., separate CMS per region)
If in doubt, pick subfolders. Almost nobody should use subdomains in 2026.
The secret weapon: hreflang="fr-FR" vs hreflang="fr"
Most teams use fr (language only). Add the country too: fr-FR. Then separately declare fr-CA for Quebec, fr-BE for Belgium, and fr as a language-only fallback for the rest.
The difference is real. With just hreflang="fr", Google has to pick one URL for every French-speaking country. With language-plus-region, you're telling Google exactly who each URL is for, and it stops guessing.
Search Console will surface this as a richer geo-distribution once it propagates — you'll see impressions appearing on /fr/ from countries you didn't even explicitly target, because Google now knows which one is the fallback and which one is for France.
Other things that can be silently sabotaging your French ranking
- IP geolocation — if your site serves different content based on visitor IP, Googlebot crawling from the US sees the US version of the French page, which might be a redirect back to English
- Canonical pointing at English — covered separately
- Dynamic language switcher injecting content client-side — if the French content only appears after JavaScript runs, Googlebot may never see it depending on render budget
- Backlink profile is 100% English — not a killer, but adding a few French-language inbound links from French-TLD sites reinforces the signal
- Site loads slow from France — if your CDN doesn't have a Paris edge, French visitors get high latency and bounce rate, which Google notices
The short version
Rank in France = correct language + correct region signal + technical page intact + crawlable content. Miss any of those and the English URL wins by default.
SiteDialect handles the language and the hreflang-with-region signal automatically. You pick the region when you configure the widget, and we emit fr-FR, es-MX, pt-BR, whatever — correctly. You still own the URL structure decision (ccTLD vs subfolder) and the backlinks, but the technical-SEO-for-multilingual layer stops being a thing you have to think about.
Stop guessing at region codes
Pick your languages and regions once. SiteDialect emits the right hreflang, every page, every time.
Get Started Free