If one URL returns different content depending on where the visitor appears to be or which language the browser prefers, Google may not crawl, index or rank all of that content. Google's documentation on locale-adaptive pages offers one alternative: separate URLs for each locale, annotated with rel="alternate" hreflang. The point is aimed at exporters, e-commerce teams and agencies running multilingual or multi-country sites. The subject here is content that changes behind a fixed address; what to do about redirecting visitors is a related but separate question, covered in automatic language redirects and SEO risks.
Statements without a label come from Google's pages. Sentences marked "Practical suggestion" are interpretation or advice. Google's wording and limits can change, so check the current pages before you act.
One URL, many answers
A page is locale-adaptive when the server decides what to send after guessing the visitor's country or language. Google's locale-adaptive pages documentation (Opens in a new tab) describes such sites as returning different content based on the perceived country or preferred language of the visitor, and warns that Google might not crawl, index or rank all of the content for the different locales.
What the adaptation looks like in practice
A visitor from the United States sees prices in dollars; the same address shows euros to a visitor in Germany. A browser that asks for French gets French; one that asks for English gets English. The address never changes, so nothing in the URL tells a search engine that several versions exist.
Why teams choose it
One address means one set of links, one analytics view and a single template. It feels tidy and it saves visitors a click. The price is paid in discoverability: a crawler can only evaluate what it is shown, and it is shown whatever the server decides for it.
Mechanisms that put a site in this category
| Mechanism | What the server reads | Where Google's pages address it |
|---|---|---|
| Country by IP address | The visitor's apparent location | Locale-adaptive page: crawler IPs appear US-based by default |
| Language by header | Accept-Language | Locale-adaptive page: the crawler sends no Accept-Language |
| Language or country by cookie or setting | A stored preference | Multi-regional page: variations may not be found when content changes dynamically |
| Price or stock by country | Any of the above | Not discussed on the page; an inference from the rows above |
The last row deserves a plain statement: Google's documents do not discuss price or stock. The conclusion that a price page changing by country behaves like any other locale-adaptive page follows from how the crawler is described, and it is labelled as inference.
What the crawler actually sends
This is the technical core. A crawler requests a URL much as a visitor does, except for details that matter here.
Where the request appears to come from
According to the documentation, the default IP addresses Googlebot uses appear to be based in the USA. A site that serves content by country may therefore show Googlebot only its US-targeted content. A German or Turkish version that exists only for visitors from those countries may never be fetched by default.
The page also says Googlebot crawls from IP addresses based outside the USA as well. Google's instruction is to treat it like any other visitor from the country it appears to come from. Its own example: a server that blocks US users but allows Australian visitors should block Googlebot when it appears to be in the USA and allow it when it appears to be in Australia.
No language header
Googlebot does not send Accept-Language; the crawler sends HTTP requests without setting it. Any logic that picks a language from that header has nothing to read and falls back to the default. The multi-regional documentation (Opens in a new tab) says the same in other words: Googlebot crawls from IP addresses based in the USA and sends requests without setting Accept-Language, so content changed by language settings or rerouting may not be found.
One user agent, verifiable origin, consistent robots rules
Googlebot uses the same user agent string for all crawling configurations, so the string cannot tell you which location the request represents. The documentation says site owners can verify geo-distributed crawls with reverse DNS lookups. If you use the robots exclusion protocol, apply it consistently: robots meta tags and robots.txt must specify the same rules in each locale.
| Signal | What the page states | Consequence for adaptive logic |
|---|---|---|
| IP origin | Default addresses appear US-based; crawling also happens from outside the USA | A single variant may be all the crawler sees |
| Accept-Language | Not sent | Language logic that depends on it cannot trigger |
| User agent | Same string everywhere | Cannot be used to guess the crawl location |
| Robots rules | Must match in each locale | No per-locale blocking differences |
Decision rule: if any content you want to be found changes with IP, language header, cookie or session preference, move that content to its own URL. If a person can see the variation but a crawler cannot ask for it, the search engine will never know it exists.
The single recommendation: separate URLs
The documentation marks one point as important: use separate locale URL configurations and annotate them with rel="alternate" hreflang. It offers no second alternative.
A stable address for every version
Each locale gets its own address, whether a subdirectory, a subdomain or a country-code domain. The multi-regional documentation advises using a different URL for each language version rather than cookies or browser settings. A comparison of the structures is in the international SEO decision guide; for this topic, what matters is that the version a visitor sees can also be requested directly.
Linking the versions to each other
The localized versions page (Opens in a new tab) lists three equivalent ways to declare versions: link elements in the HTML head, HTTP Link headers and XML sitemap entries. Using all three adds nothing, so pick one. Every version must list itself and all the others, URLs must be fully qualified including the protocol, and annotations are ignored unless the pages link back to each other. For languages shared by several regions, provide a generic fallback, and consider x-default for language or country selectors.
When you need to check the tags, work through the hreflang audit guide. If your localized URLs also change slugs between languages, see localized URLs and slug translation for a TR/EN site.
Let people choose
The multi-regional documentation advises avoiding automatic redirects based on presumed language and adding links to other language versions so users can choose. Practical suggestion: make the selector a list of real links, not a button that writes a cookie and reloads the page, because a crawler follows links and ignores your cookie.
Edge cases that change the answer
Not every adaptive element deserves its own URL. These cases show how to apply the rule with judgement; they are practical suggestions.
Small helpers around an unchanged core
A "nearest store" box, a greeting line or a delivery estimate does not change what the page is about. The documentation's worry is content that differs by locale in a way that affects what is crawled, indexed and ranked. Ask whether the element changes the question the page answers. If a visitor from another country would need a different page, give them one. If it is a convenience layered on a stable core, the core must still make sense for the crawler's default view.
Countries sharing a language
When several countries read the same language and only a few commercial terms differ, you do not need to duplicate every page. The localized versions documentation suggests a generic fallback for the shared language and says duplicates can be handled by choosing a preferred version and using rel="canonical" with hreflang. Open separate country versions only for the pages where the difference matters, such as product, checkout information and policies.
Campaign pages with a short life
A seasonal promotion with country-specific terms follows the same rule: separate address per country when the terms differ, one page with country notes when they do not. Decide in advance what happens when the campaign ends, whether that is a redirect, an archive or a removal, and take the expired address out of the annotations so that no version points to a page that no longer exists.
Accounts, carts and checkout
Pages that belong to one visitor, such as an account area or a basket, are not meant to be found in search, so the question of crawlability for locale versions does not arise in the same way. Keep them out of the annotation sets and out of any public cache. The country logic inside checkout is a commerce matter and falls outside the crawling topic.
Price, currency and availability
Commercial details are where locale adaptation is most tempting, and where the documents say least. Everything below is practical suggestion, anchored where possible in what the pages state.
Why a separate version helps here
The multi-regional documentation lists local currency, local language, local addresses and phone numbers, links from local sites and Business Profile signals among the ways to indicate a site's intended audience. A country version that shows its own currency and terms matches those signals, while one address that swaps prices behind the scenes hides them from the crawler. The same page advises against IP analysis for adapting content, calling it unreliable and noting it can prevent Google from crawling variations.
A lighter alternative: one page, a country table
If maintaining many versions is too heavy, one page can show prices for several countries in a visible table, so every visitor and the crawler read the same content. This suits a short list of items with small differences. You own the accuracy of every row, so assign someone to keep it current.
Availability messages
When stock depends on a warehouse, give shoppers a plain section about shipping to their country rather than rewriting the entire page by stock status. A crawler arriving from one country should not conclude that an item "cannot be shipped" because of where it happens to appear to be.
| Difference | Lower upkeep | Higher precision |
|---|---|---|
| Price and currency | One page with a visible country table | A URL per country with local pricing |
| Stock and shipping | A section listing countries served | Country versions with local availability text |
| Legal and returns | Shared text with country notes | A terms page per country |
| Language | A URL per language | A URL per language and country |
Example scenario: a city tour operator
Example scenario: A tour operator sells guided city walks. Its booking page for each tour shows prices in the visitor's likely local currency, plus a cancellation policy that depends on the visitor's country. The operator serves visitors from several countries and offers two languages.
Search visibility for the German-language and Spanish-language pages is poor. The operator realises the crawler's apparent location is the USA by default and that it sends no Accept-Language, so the crawler is probably shown only the default currency and language. The operator gives each language its own address, moves price tables for each currency into a visible block on the page, and gives the cancellation policy for each country its own heading. Versions are tied together with annotations, and a selector listing the versions sits at the top of each page. Nothing in this plan promises a ranking; the operator expects only that every version can now be requested and read.
Moving away from adaptive pages without losing ground
Leaving a locale-adaptive setup is a significant change. Break it into reversible steps. The sequence below is a practical suggestion.
Step 1: see what changes today
Catalogue every template whose output depends on location, language header, cookie or session. Request the same address from several locations and without Accept-Language, and compare the responses. The request without the header is the closest approximation of what the crawler sends, though it remains an approximation. For Google's actual view of a page, use an authoritative tool such as Search Console if you have access; your own requests cannot prove what Googlebot saw.
Step 2: plan the new URLs
Give every variation a permanent address. Decide whether the difference is language, country or both, write down the URL pattern, and prepare a table mapping each old address to its new destination.
Step 3: publish and connect
Publish complete content on every new address, add the version annotations, test the return links, and confirm the robots rules are identical across versions. Replace automatic redirects with a suggestion banner or selector.
Step 4: decide what the old address does
The old adaptive address now needs a defined role. Practical suggestion: send it permanently to one default version, or turn it into a selector page built from real links and mark that page with x-default. Make sure that anything that links to the old address still lands somewhere meaningful.
Step 5: watch and correct
After the move, check for each version whether it is indexed, whether it appears for the right country and language, and whether annotation errors show up. The localized versions page names missing return links as the most frequent error, so begin there. Expect changes to take time to settle and examine versions one at a time.
Migration checklist
- Every template that adapts by location or language is listed.
- Every variation has its own permanent URL.
- Versions list themselves and each other, and link back.
- x-default and a generic language fallback are defined where relevant.
- Robots rules match in every locale.
- Visitors can switch versions with real links.
- Currency, price and availability text match the country on each version.
- The old address has a defined destination.
- An owner and a review date are written down.
Why location guesses go wrong
Google calls IP-based adaptation unreliable without listing causes. The cases below are practical examples of why a location guess can disagree with what the visitor needs.
- Someone working abroad may want the prices of their home country.
- A corporate network can exit through an address far from the person using it.
- A visitor on a VPN appears to be somewhere else.
- In a bilingual country, location does not say which language a person wants to read.
- CDN and hosting choices can distort server-location signals, as the documentation itself acknowledges.
In each case the decision has been taken from the visitor and given to a guess. Separate URLs with a visible selector return the decision to the person and, at the same time, show the crawler every version. A location guess can still power a suggestion, as long as the suggestion is a link and not a redirect.
Testing and monitoring
Run the same checks before and after the migration so you can see what changed. They are practical suggestions and describe your site's behaviour, not proof of what Googlebot saw.
| Check | How | What to compare |
|---|---|---|
| Request without Accept-Language | Use a client that sends no language header | Which language and content is returned |
| Request from different locations | Use colleagues or a service in other countries | Whether price, stock or language change |
| Direct version addresses | Open each version's URL directly | Whether it always serves its own content |
| Selector links | Follow them with scripts switched off | Whether they are real links |
For ongoing monitoring, schedule a monthly job that re-crawls return links, confirms new pages exist in every version and compares robots rules. When reading server logs, use reverse DNS verification for requests that claim to be Googlebot, since the documentation mentions it for geo-distributed crawling and a user agent string alone proves nothing.
Explaining the change to stakeholders
Product and sales teams can like locale adaptation because the visitor does nothing. A short briefing helps them accept the change. State what Google's documentation says without embellishment: content shown only to a perceived country or language may not be fully crawled, indexed or ranked, and the one alternative offered is separate, annotated URLs. Then show what stays the same for visitors: they still reach the right version, now through a visible link instead of a guess.
Ask the stakeholders for decisions rather than approval of a technical diagram: which countries justify their own version, who maintains the prices on each, and what the old address should do. Written answers to those three questions are worth more than a long meeting.
Pushback you may hear
"Separate URLs mean more upkeep"
They do. Since separate URLs are the only alternative the documentation offers, reduce upkeep by limiting the number of versions: open the ones you can justify in writing and keep the remainder on one general version.
"Visitors already see their own country"
True for visitors, incomplete for search. The documentation warns that all the content may not be crawled, indexed or ranked, so a version can be perfect for people and still be missing from results.
"Let us show Googlebot its own version"
The documentation tells you to treat Googlebot like any other visitor from the country it appears to come from; it does not suggest a special version for the crawler. Practical suggestion: publish every variation on its own public URL and avoid a crawler-only view, which adds upkeep and room for inconsistency.
Frequently Asked Questions
What is a locale-adaptive page?
It is a page that returns different content at the same URL based on the visitor's perceived country or preferred language. Google warns that on such a site it might not crawl, index or rank all of the content for the different locales.
Where does Googlebot crawl from, and does it send a language header?
Its default IP addresses appear to be based in the USA, though it also crawls from IP addresses outside the USA. It does not send the Accept-Language header, so logic that depends on that header may never trigger for it.
What does Google recommend instead of locale-adaptive pages?
Separate locale URL configurations annotated with rel=alternate hreflang. Each version should list itself and all others, use fully qualified URLs, and link back so the annotations are honoured.
Is it a problem to change prices by country automatically?
Google's pages do not discuss price specifically. They do call IP-based content adaptation unreliable and say it can prevent Google from crawling variations. Practical suggestion: use a separate URL per country when price or stock differs.
Can I serve Googlebot a special version?
Google says to treat Googlebot like any other visitor from the country it appears to come from. Publish every variation on a public URL for everyone, and keep robots rules identical across locales.
What should happen to the old adaptive address?
Practical suggestion: redirect it permanently to one default version, or turn it into a selector page made of real links and use x-default for it. Avoid forcing visitors to a version based on a presumed language, which Google advises against.
Conclusion
Content that changes behind one address can reach a search engine as a single variation: Googlebot's default IP addresses appear US-based, it sends no Accept-Language and it uses one user agent string everywhere. Google's one alternative is a separate URL for each locale, annotated with hreflang, with a selector of real links in place of automatic redirects. Treat price and stock differences as a reason to open country versions, migrate in small steps with a tested set of return links, and keep the cited pages handy because their details can change. Nothing here promises a ranking.
If every locale needs its own, natively reviewed copy, Akua Adforce offers content writing; scope and terms are described on the product page.
Post a comment
Please log in to leave a comment. Login