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:

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
ccTLDexample.frStrongestFresh — starts from scratch
Subdomainfr.example.comMediumPartially inherited
Subfolderexample.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:

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

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