Seatext library

Why Google flags translated pages as duplicate content (and how to fix the signal gap)

Google flags translated pages as duplicate when it sees near-identical code structure, matching images, and overlapping text fingerprints across URLs — and no hreflang or canonical signals to explain that these are intentional translations....

The root cause: Google can't tell intent from code

Google's crawler doesn't read your content the way a human does. It reads HTML structure, image file names, alt text, internal link patterns, and the actual text strings. When you publish a French version and an English version of the same page, the underlying code is often 90% identical. The images are the same. The layout is the same. The headings are the same — just in a different language.

To Google, that looks like a copy-paste job with a few words swapped. Unless you explicitly tell it otherwise, it will treat the pages as duplicates and pick one as the canonical version. The other pages get flagged as duplicate content and may be removed from the index entirely.

The diagnostic sequence: check these five signals in order

If you're seeing duplicate content flags on translated pages, work through this checklist in order. Each step rules out one possible cause.

1. Check for hreflang tags

Hreflang is the primary signal that tells Google "these pages are translations of each other, not copies." Without it, Google has no way to know that /fr/ and /en/ are intentional language variants.

Look at the HTML head of each translated page. You should see something like:

<link rel="alternate" hreflang="fr" href="https://example.com/fr/page/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/page/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/" />

If these are missing, that's your first problem. Add them and resubmit your sitemap.

2. Check for canonical tags pointing to the wrong URL

A canonical tag tells Google which version of a page is the "master" copy. If your French page has a canonical tag pointing to the English URL, Google will ignore the French page entirely — even if hreflang is correct.

This is a common mistake with WordPress plugins. The canonical tag should point to the page itself, not to a different language version.

3. Check your URL structure

Google uses URL patterns as a secondary signal. If your translated pages live at completely different paths with no logical connection — like /blog/hello-world and /actualites/bonjour-le-monde — Google has a harder time connecting them.

Best practice is to use a consistent structure: /fr/, /en/, /de/ subdirectories, or subdomains like fr.example.com. This makes the relationship obvious to both Google and users.

4. Check for browser language redirects

If your site uses JavaScript or server-side redirects based on the visitor's browser language, Google may follow those redirects and see only one version of the page. This can cause it to think the other versions are permanently redirected — and therefore not indexable.

Google follows JavaScript redirects as of 2015. If your redirect logic is aggressive, Google may never crawl the French version at all.

5. Check your sitemap

Your XML sitemap should list every language version as a separate URL. If you only list the English version, Google may never discover the French and German pages — or may assume they're not important enough to index.

Make sure each translated URL appears in the sitemap with its correct hreflang annotation.

Why Google treats translations differently from original content

Google's duplicate content detection isn't a simple text comparison. It uses a fingerprinting system that looks at multiple signals:

  • HTML structure and DOM similarity
  • Image file names and alt text
  • Internal link patterns
  • Meta descriptions and title tags
  • Text overlap (even in different languages, machine translations share common phrases)

When two pages share 80-90% of these fingerprints, Google flags them as duplicates. The language difference alone isn't enough to override that signal — you need explicit markup to tell Google what's happening.

The trade-off: hreflang vs. canonical

There's a common confusion between hreflang and canonical tags. They serve different purposes:

SignalWhat it tells GoogleWhen to use it
Hreflang"These pages are translations of each other"Always, for translated content
Canonical"This is the master version of this page"Only when you have true duplicates (same language, same content)

You should never use a canonical tag to point a French page to an English page. That tells Google to ignore the French version. Instead, use hreflang to say "these are siblings, not copies."

What happens if you ignore the problem

If you don't fix the signal gap, the consequences compound over time:

  • Your translated pages get deindexed, so you lose all international search traffic
  • Google picks one language version as canonical, and users in other markets see the wrong language
  • Your international SEO efforts become invisible — you're spending money on translation but getting zero return
  • Competitors in those markets rank instead of you

The fix is usually straightforward, but it requires checking all five signals. Missing even one can keep the problem alive.

Practical scenarios: when this happens in the real world

Scenario 1: The WordPress plugin conflict

You use WPML for translations and Yoast for SEO. Both plugins add hreflang tags, but they conflict — Yoast's canonical tag overrides WPML's hreflang. The result: Google sees the canonical tag and ignores the hreflang.

Fix: Configure one plugin to handle hreflang and disable the other's hreflang output. Check that the canonical tag points to the page itself.

Scenario 2: The missing x-default tag

You have French and English versions but no x-default hreflang tag. Google doesn't know which version to show to users who don't match either language. It may pick one arbitrarily and treat the other as duplicate.

Fix: Add <link rel="alternate" hreflang="x-default" href="https://example.com/" /> pointing to your main page or a language selector page.

Scenario 3: The aggressive browser redirect

Your site redirects French visitors to /fr/ automatically. Googlebot crawls from a US IP, so it gets redirected to /en/ and never sees the French page. The French page stays in your sitemap but never gets crawled.

Fix: Use a language selector instead of automatic redirects, or make sure Googlebot can access all versions without redirects.

Limitations: when this advice doesn't apply

There are a few edge cases where the duplicate content flag is legitimate:

  • Machine-translated pages with no human review: If your translations are low quality, Google may flag them as spam rather than duplicates. The fix is quality, not markup.
  • Same-language duplicates: If you have two English pages with the same content, hreflang won't help. You need a canonical tag or a 301 redirect.
  • Thin translated pages: If your translated pages have very little unique content (just a few sentences), Google may not index them regardless of hreflang. The content needs to be substantial.

Key facts at a glance

SignalWhat to checkCommon mistake
HreflangPresent in HTML head of every language versionMissing or pointing to wrong URLs
CanonicalPoints to the page itself, not another languageCross-language canonical tags
URL structureConsistent pattern like /fr/, /en/Random paths with no connection
Browser redirectsGooglebot can access all versionsAggressive language-based redirects
SitemapLists every language versionOnly listing the primary language

FAQ: Your next questions answered

Why does Google flag my translated pages even though I have hreflang?

Hreflang alone isn't always enough. Check for conflicting canonical tags, missing x-default tags, or browser redirects that prevent Googlebot from seeing all versions. The hreflang must be paired with correct canonical tags and accessible URLs.

How long does it take for Google to reindex after I fix the issue?

Typically 1-4 weeks after you resubmit your sitemap. Google needs to recrawl the pages and process the new signals. If the problem persists after a month, check for other conflicts.

Should I use subdirectories or subdomains for translated pages?

Subdirectories (/fr/, /en/) are generally easier to manage and pass more link equity. Subdomains (fr.example.com) work but require separate verification in Search Console. Choose based on your site architecture.

Does machine translation cause duplicate content flags?

Machine translation can trigger flags if the output is too similar to the original. Google's fingerprinting looks at text overlap, and machine translations often share common phrases. Human review or post-editing helps differentiate the content.

What's the difference between duplicate content and thin content?

Duplicate content means two pages have the same content. Thin content means a page has too little content to be valuable. Translated pages can be both — if your translation is short and similar to the original, it may get flagged for either reason.

Can I use a canonical tag to point to the original language version?

No. That tells Google to ignore the translated page entirely. Use hreflang to indicate translations, and keep canonical tags pointing to each page itself.

Further reading and comparison sources

These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.

How SeaText can help

SeaText's Website Translation Agent translates your entire site into up to 125 languages with full control over the output. It handles the technical signals — hreflang tags, URL structure, and sitemap entries — so Google sees your translated pages as intentional language variants, not duplicates.

The agent works without a manual localization project, which means you can launch international versions quickly and avoid the common plugin conflicts that cause duplicate content flags.