
Element Code: HR-024
What this check is flagging
This fires when your site auto-redirects visitors to a specific language or country version based on signals like their IP geolocation or their browser's Accept-Language header, instead of letting them land on the URL they requested. A French visitor asks for example.com/ and gets bounced to example.com/fr/. A German IP hitting example.com/en/ gets forced to example.com/de/. The redirect is usually a 302, sometimes a 301, and often it runs on every single URL, not just the homepage.
It feels helpful. The intent is "show people their language automatically." The execution is what causes the damage, because a crawler is not a person and does not carry the signals your redirect logic expects.
Why this wrecks international SEO
Googlebot crawls predominantly from US-based IP addresses and sends an Accept-Language header that is typically empty or set to en. Google has stated its crawler does not vary its Accept-Language header the way a browser does. So when your redirect logic keys off IP or language, Googlebot gets treated like a generic US English visitor and is funneled to one version. Every request for a French, German, or Japanese URL gets 302'd back to the English one before Google can render it.
The result is brutal and quiet: your non-default language versions barely get crawled, so they barely get indexed, so they never rank in their target markets. You built ten language versions and Google effectively sees one. I have watched sites with beautiful localized content pull zero organic traffic in-country because an auto-redirect strangled the crawl at the door.
There is a redirect-loop risk too. If the English version also has logic that tries to redirect based on a stale cookie or a misread header, you can create a chain or loop that returns a crawl error outright. And for users, forced redirects are genuinely annoying: a bilingual person who wants the English page cannot stay on it, and a traveler on foreign wifi gets a language they do not read.
Redirect versus the correct pattern
How to detect it
- Curl with different headers: the fastest check. Run
curl -sI -H "Accept-Language: fr-FR" https://example.com/en/pageand look at the status line. A 301 or 302 to a different language URL means an auto-redirect. Repeat withde-DE,ja-JP, and no header at all. - Screaming Frog: crawl and check the Response Codes tab for unexpected 3xx on language URLs. You can also set a custom
Accept-Languageheader in the crawl config and compare two crawls: one as en, one as another locale. Different destinations reveal the redirect. - Search Console URL Inspection: inspect a non-default language URL. If Google reports it as a redirect or shows the wrong language in the rendered view, the auto-redirect is catching Googlebot.
- Server logs: a pile of 302s on localized URLs, especially clustered by the crawler's user agent, is a clear signal.
- A VPN spot check: hit the same URL from different countries and watch whether the URL in the address bar changes on its own.
How to fix it, step by step
- Turn off the automatic redirect for crawlers, and ideally for everyone. The cleanest fix is to stop force-redirecting entirely. Serve whatever language version the URL asks for with a 200.
- Pick a sensible default for the root. If someone lands on the bare domain with no language in the path, serve a default (often English or a country-selector page). Do not redirect deep localized URLs.
- Offer a language switcher, not a forced jump. You can still detect a visitor's likely language and suggest it with a dismissible banner or a prominent switcher. Suggest, do not hijack. Google's own guidance is to let users select and to avoid automatic redirection based on perceived language.
- Implement clean hreflang. Every language version references itself and every alternate with
<link rel="alternate" hreflang="fr" href="...">, plus anx-default. This is how you tell Google which version serves which audience without moving anyone. - Make hreflang bidirectional and canonical-consistent. If A points to B, B must point back to A, and each page's canonical should be self-referential, not pointing at the default language.
- Recrawl and re-inspect. Confirm localized URLs now return 200 for a crawler and that hreflang validates with no missing return tags.
Redirect method versus signal, compared
| Approach | What Googlebot sees | Verdict |
|---|---|---|
| Auto-redirect on IP | One version only, others 302'd away | Harmful, avoid |
| Auto-redirect on Accept-Language | Crawler funneled to en, rest unseen | Harmful, avoid |
| Root default + no deep redirects | All localized URLs return 200 | Good |
| hreflang annotations | Clear map of which URL serves which locale | Correct signal |
| Suggestion banner + switcher | No redirect, user chooses | Good UX, crawl-safe |
Do this, not that
- Serve every localized URL a 200 with no forced redirect
- Use bidirectional hreflang with an x-default
- Suggest a language with a dismissible banner or switcher
- Set a sensible default only on the bare root domain
- Test with curl using several Accept-Language values
- Redirect deep URLs based on IP or browser language
- Assume Googlebot carries a locale-specific Accept-Language
- Point every canonical at the default language version
- Create redirect chains between language versions
- Trap the user on a language they cannot escape
What good looks like
Request /fr/, /de/, or /ja/ with any Accept-Language header and you get a 200 and the matching content, never a redirect to English. The bare domain resolves to a sensible default or a chooser. hreflang tags form a complete, reciprocal set with an x-default, and Search Console shows each language version indexed under its own URL in its own market. Users see a polite suggestion to switch languages, and they can ignore it and stay put.
FAQ
Is any automatic language redirect always bad?
Does hreflang alone fix the crawling problem?
What Accept-Language does Googlebot send?
Can I use JavaScript to redirect instead of the server?
Losing international traffic to a redirect you did not know about?
An advanced SEO audit tests your localized URLs the way Googlebot sees them, catches forced language redirects, and validates your hreflang end to end.
Take this with you
The assistant links open with a question about this page already written.
Claude Vincent is a technical SEO consultant focused on crawlability, rendering, and AI-search visibility. He writes the field guides and case studies at SEO ProCheck, with a bias toward the durable, unglamorous work that decides whether search engines and AI answer engines can actually read and cite a site.
About SEO ProCheck
Technical SEO consulting and GEO strategy with 20 years of enterprise experience. Case studies, resources, and tools for search and AI visibility.
Work With Me
Technical SEO audits, GEO strategy, site migrations, and international SEO. Hourly consulting for teams who need hands-on support, not just reports.
Subscribe to our newsletter!
Recent Posts
- Google August 2026 Spam Update: Dates, Duration and How to Read Your Data November 2, 2026
- Google Algorithm Updates: The Dated List Since 2003, and What to Do After Each October 31, 2026
- AI Readiness: The Checklist, the Research and the Free Tools October 28, 2026








