Você abre uma página através de uma saída na Alemanha e vê inglês. Um colega abre o mesmo endereço e recebe a loja dos EUA. Ambos usaram o proxy certo, então o que aconteceu? Os sites raramente decidem seu país a partir de um único sinal. Eles combinam vários, e a ordem é diferente em cada site. Se você realiza QA de localização ou monitora páginas locais, conhecer esses sinais evita muita confusão.
Este guia aborda os quatro sinais que os sites usam, um exemplo testado de como sites reais os combinam, e como verificar um site que seja importante para você.
Os quatro sinais
| Sinal | O que geralmente decide | Como você controla isso |
|---|---|---|
| Endereço IP | O país, e às vezes o idioma | O país de saída do seu proxy |
| Cabeçalho Accept-Language | O idioma dentro de um país | As configurações do seu navegador ou cliente |
| A URL | O que quer que ela indique, substituindo o resto | O endereço que você solicita |
| Um cookie ou escolha salva | O que você escolheu da última vez | Limpar cookies, ou uma sessão nova |
Alguns sites não usam nenhum desses no servidor, e mostram uma página que permite que você escolha.
O que sites reais fazem
Carregamos algumas páginas conhecidas através de saídas de proxy residencial em países diferentes, com idiomas de navegador diferentes, em 6 de novembro de 2026, e confirmamos cada país de saída separadamente. O script é curto e precisa apenas de requests. As credenciais vêm de variáveis de ambiente.
from __future__ import annotations
import os
import re
import requests
GATEWAY = "p.shifter.io:443"
USER, PASSWORD = os.environ["PROXY_USER"], os.environ["PROXY_PASS"]
BROWSER = ("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 "
"(KHTML, like Gecko) Chrome/130.0 Safari/537.36")
def visit(url, country, language):
"""Load a URL from an exit in one country with one browser language."""
proxy = f"http://{USER}-country-{country}:{PASSWORD}@{GATEWAY}"
s = requests.Session()
s.proxies = {"http": proxy, "https": proxy}
s.headers.update({"User-Agent": BROWSER, "Accept-Language": language})
r = s.get(url, timeout=40)
lang = re.search(r'<html[^>]*\blang=["\']?([\w-]+)', r.text, re.I)
return r.url, lang.group(1) if lang else None
CASES = [
# url, exit country, Accept-Language
("https://www.netflix.com/", "us", "en-US"),
("https://www.netflix.com/", "de", "en-US"),
("https://www.netflix.com/", "de", "de-DE"),
("https://www.netflix.com/", "br", "en-US"),
("https://www.google.com/", "us", "en-US"),
("https://www.google.com/", "de", "en-US"),
("https://www.google.com/?hl=en", "de", "en-US"),
("https://www.apple.com/de/", "us", "en-US"),
("https://www.ikea.com/", "de", "de-DE"),
]
if __name__ == "__main__":
for url, country, language in CASES:
for attempt in range(3):
try:
final, lang = visit(url, country, language)
break
except requests.RequestException:
final, lang = "error", None
asked = url.replace("https://www.", "")
got = final.replace("https://www.", "")
print(f"{asked:22} exit {country.upper()} {language:6} -> {got:22} lang={lang}")
Saída, mostrando o endereço solicitado, a saída e o idioma do navegador, a página alcançada e o idioma dessa página:
netflix.com/ exit US en-US -> netflix.com/ lang=en
netflix.com/ exit DE en-US -> netflix.com/de-en/ lang=en
netflix.com/ exit DE de-DE -> netflix.com/de/ lang=de
netflix.com/ exit BR en-US -> netflix.com/br-en/ lang=en
google.com/ exit US en-US -> google.com/ lang=en
google.com/ exit DE en-US -> google.com/ lang=de
google.com/?hl=en exit DE en-US -> google.com/?hl=en lang=en-DE
apple.com/de/ exit US en-US -> apple.com/de/ lang=de-DE
ikea.com/ exit DE de-DE -> ikea.com/ lang=en
Quatro sites, quatro comportamentos.
A Netflix usa tanto o IP quanto o idioma. A saída definiu o caminho do país e o idioma do navegador definiu a variante: uma saída alemã com um navegador em inglês obteve /de-en/, e com um navegador em alemão obteve /de/. Uma saída brasileira com um navegador em inglês obteve /br-en/.
O Google mantém uma única URL e segue o IP para o idioma. Uma saída alemã obteve uma página em alemão mesmo com um navegador em inglês. Adicionar ?hl=en à URL mudou para inglês, então a URL se sobrepôs ao IP.
A Apple deixa a URL decidir. Uma saída dos EUA solicitando /de/ obteve o site em alemão. O IP não redirecionou para nenhum outro lugar.
A IKEA não redirecionou de forma alguma. Uma saída alemã com um navegador em alemão ainda obteve a página internacional em inglês, o que deixa a escolha para o visitante.
O que isso significa para suas verificações
- Defina a saída e o idioma juntos. Testar um mercado alemão com um navegador em inglês pode resultar em uma combinação que nenhum visitante real vê, como mostra a linha da Netflix. Combine também o fuso horário, já que alguns sites o verificam.
- Registre a URL final. O endereço que você solicitou e a página que alcançou costumam ser diferentes. Armazene ambos, para que um redirecionamento não passe despercebido.
- Comece cada mercado do zero. Um cookie de uma visita anterior pode se sobrepor ao IP. Use uma sessão nova para cada país.
- Não confie apenas na URL. Em sites como o Google, a mesma URL exibe conteúdo diferente por IP. Em sites como a Apple, a URL decide e o IP não importa. Teste qual tipo você tem.
- Escolha a saída pelo visitante que você quer ser. Nosso artigo sobre escolher um país de saída aborda quando a localização importa e quando não importa.
Se você administra o site
Redirecionamentos geográficos podem jogar contra você. A orientação do Google é evitar redirecionar automaticamente os usuários de uma versão de idioma para outra com base no que você acha que é o idioma deles, porque isso pode impedir que pessoas e mecanismos de busca alcancem todas as versões. Também observa que o Googlebot geralmente rastreia a partir de endereços IP dos EUA e não envia cabeçalho Accept-Language, então um site que adapta o conteúdo por localização pode não conseguir indexar todas as versões.
O padrão mais seguro é o que a maioria dos sites acima faz de alguma forma: URLs separadas por país ou idioma, uma sugestão baseada nos sinais do visitante, e uma forma fácil de trocar.
Conclusão
A ideia que um site faz de onde você está é uma mistura de IP, idioma do navegador, URL e memória, combinados de forma diferente em cada site. Quando uma página mostra o país errado, verifique os quatro antes de culpar o proxy, e quando for testar, mude um sinal de cada vez para saber qual deles o site segue.
Fontes e referências
- Google Search Central, Gerenciando sites multirregionais e multilíngues: developers.google.com
- Google Search Central, Como o Google rastreia páginas adaptativas por localidade: developers.google.com