---
name: locale-redirect-trap-audit
description: Use quando os visitantes reportam não conseguir voltar a mudar para uma língua, ou quando um link partilhado abre na língua errada para quem o recebe.
---

# Auditoria à armadilha de redireccionamento de locale

Os redireccionamentos de língua baseados em sessão ou cookie tornam rotineiramente uma língua inalcançável. Se o locale predefinido não tem prefixo no URL, um caminho sem prefixo não transporta qualquer sinal de locale, pelo que o middleware de redireccionamento o trata como não definido e envia o visitante para o que estiver armazenado - o que significa que a língua predefinida nunca mais pode ser seleccionada. O mesmo mecanismo serve a língua errada a quem abre um link partilhado e pode anular por completo o hreflang.

## O que precisa primeiro

- O site com a comutação de locale activada
- curl ou qualquer cliente capaz de guardar e reenviar cookies

## Método

1. Peça um URL com prefixo numa língua não predefinida para estabelecer uma preferência armazenada.
2. Reutilize o mesmo cliente, pedindo agora o equivalente sem prefixo. Se devolver 302 de volta para a língua armazenada, o locale predefinido está inalcançável e o bug está confirmado.
3. Repita para um caminho profundo, não apenas para a página inicial. Um redireccionamento que só dispara na raiz é aceitável; um que dispara em todos os caminhos não é.
4. Peça o URL da língua predefinida sem qualquer cookie - é isto que um crawler vê. Se redireccionar, a validação de hreflang vai falhar por muito correcta que a marcação seja.
5. Corrija tornando o URL autoritativo: só actue sobre uma preferência armazenada na raiz nua, e só registe uma preferência quando o visitante a pedir explicitamente através do selector.
6. Volte a testar os quatro casos: escolher uma língua, voltar à raiz, escolher a língua predefinida, e abrir um caminho explícito com uma preferência conflituante armazenada.

## O que isto produz

Uma matriz de quatro casos com passa/falha que prova que todas as línguas são alcançáveis, que os URLs explícitos nunca são sobrepostos, e que um pedido sem cookie recebe a predefinição canonical.

## Onde isto corre mal

- Testar apenas a página inicial, onde o bug é menos visível
- Testar com um browser que já tem uma preferência guardada, pelo que o caminho partido nunca é accionado
- Assumir que os crawlers não são afectados - são, porque o redireccionamento altera o que é servido no URL canonical

---

Da biblioteca de competências da QuQi - https://www.quqi.io/pt/skills/locale-redirect-trap-audit
