O que rel=noopener, noreferrer e nofollow fazem realmente
Três pequenos atributos de ligação com funções muito diferentes: segurança do navegador, privacidade do referenciador e sinalização para motores de busca.
Tabela de conteúdos
- A versão curta
- rel=noopener impede reverse tabnabbing
- noopener afeta SEO?
- rel=noreferrer oculta a página referenciadora
- Quando noreferrer é útil
- O compromisso nos analytics
- rel=nofollow é para motores de busca, não para navegadores
- Quando usar nofollow
- O que nofollow não faz
- Combinações comuns
- Ligação externa que abre num novo separador
- Colocação paga
- Ligação gerada por utilizador
- Ligações internas
- Uma política prática para equipas
- Como testar o que está a acontecer
- O ponto essencial
A versão curta
O atributo rel numa ligação descreve a relação entre a página atual e a página ligada. Parece abstrato, mas há três valores que aparecem constantemente no trabalho web do dia a dia:
<a href="https://example.com" target="_blank" rel="noopener noreferrer nofollow">
External resource
</a>
Estes três tokens são muitas vezes colados juntos como se fizessem uma só coisa. Não fazem.
noopeneré um controlo de segurança do navegador.noreferreré um controlo de privacidade e analytics.nofollowé um sinal para motores de busca.
Podem ser combinados, mas deve saber por que razão cada um está presente. Adicionar os três a todas as ligações de saída nem sempre está errado, mas normalmente é preguiçoso.
rel=noopener impede reverse tabnabbing
rel="noopener" diz ao navegador para não dar à página recém-aberta acesso à página original através de window.opener.
Isto é relevante sobretudo quando abre uma ligação num novo separador ou janela usando target="_blank":
<a href="https://external.example" target="_blank" rel="noopener">
Open external site
</a>
Sem noopener, a página de destino pode conseguir executar JavaScript como este:
window.opener.location = 'https://phishing.example';
Esse ataque é normalmente chamado reverse tabnabbing. O utilizador clica numa ligação legítima, chega a outro site, e o separador original é discretamente navegado para uma página de login falsa ou outro destino malicioso.
Os navegadores modernos melhoraram neste ponto. No comportamento atual dos navegadores, target="_blank" é geralmente tratado como se rel="noopener" estivesse presente. Isso é bom, mas não torna o atributo explícito inútil. noopener explícito continua a ser útil porque:
- documenta a sua intenção;
- protege ambientes de navegação mais antigos ou invulgares;
- evita depender de todas as web views incorporadas se comportarem como um navegador de desktop moderno;
- facilita a revisão de código.
Para ligações externas que abrem num novo separador, rel="noopener" é uma predefinição sensata.
noopener afeta SEO?
Não, não de forma significativa. noopener serve para o comportamento do navegador. Não diz aos motores de busca se aprova uma página, se a autoridade da ligação deve passar, ou se a ligação é paga.
Se a sua política de SEO trata noopener como uma diretiva de classificação, a política precisa de ser revista.
rel=noreferrer oculta a página referenciadora
rel="noreferrer" diz ao navegador para não enviar o cabeçalho HTTP Referer quando o utilizador segue a ligação.
Sim, o cabeçalho está historicamente escrito de forma incorreta como Referer. O atributo escreve-se noreferrer.
Normalmente, quando um utilizador clica numa ligação da sua página para outro site, o destino pode receber um valor de referenciador que mostra de onde veio a visita. Dependendo da Referrer-Policy do seu site, isso pode ser o URL completo, apenas a origem, ou nada.
Por exemplo, um destino pode ver:
Referer: https://www.example.com/pricing?plan=enterprise
ou apenas:
Referer: https://www.example.com/
Com rel="noreferrer", o navegador não deve enviar esse cabeçalho para essa navegação.
<a href="https://external.example" rel="noreferrer">
External site
</a>
Na prática, noreferrer também se comporta como noopener nos navegadores modernos. Se usar noreferrer, geralmente não precisa de noopener para segurança nessa mesma ligação. Muitas equipas continuam a escrever ambos por clareza:
<a href="https://external.example" target="_blank" rel="noopener noreferrer">
External site
</a>
Está tudo bem. É redundante, mas legível.
Quando noreferrer é útil
Use noreferrer quando o URL da página atual não deve ser exposto ao destino.
Exemplos comuns:
- ligações a partir de dashboards privados;
- ligações a partir de ambientes de pré-visualização não publicados;
- ligações a partir de URLs que contêm parâmetros de consulta sensíveis;
- ligações em ferramentas de administração, filas de moderação, ecrãs de CRM ou sistemas de apoio ao cliente;
- ligações em que o destino não deve saber a página de origem exata.
Este último ponto nem sempre tem a ver com segredo. Por vezes tem a ver com minimização de dados. Se o destino não precisa de saber o URL referenciador, não o envie.
Isto encaixa na direção mais ampla de um design web atento à privacidade. Navegadores, utilizadores e reguladores têm caminhado para enviar menos dados contextuais por predefinição. Se está a revisitar esta área, o nosso artigo sobre o que mudou nos cookies em 2026 e o que fazer sobre isso cobre a mesma mudança geral: menos rastreamento invisível, fluxos de dados mais deliberados.
O compromisso nos analytics
noreferrer pode quebrar a atribuição para o site para o qual liga. Os analytics desse site podem classificar a visita como tráfego direto em vez de tráfego de referência.
Esse não é o seu problema principal, mas pode importar em parcerias, relações de afiliados, jornadas de cliente e ecossistemas internos entre domínios. Se a sua equipa de marketing espera que sites parceiros vejam tráfego de referência vindo do seu domínio, aplicar noreferrer de forma indiscriminada pode criar confusão.
Para muitas ligações editoriais comuns, a melhor abordagem é definir um cabeçalho Referrer-Policy ao nível do site, em vez de adicionar noreferrer em todo o lado. Por exemplo:
Referrer-Policy: strict-origin-when-cross-origin
Essa política envia o URL completo para navegação na mesma origem, envia apenas a origem para destinos seguros entre origens, e não envia referenciador ao passar de HTTPS para HTTP. É uma predefinição prática para muitos sites.
Se precisar de inspecionar como os cabeçalhos se comportam em produção, uma verificação HTTP em bruto é muitas vezes mais clara do que adivinhar a partir de dashboards de analytics. O fluxo de trabalho em um pequeno conjunto de ferramentas para depurar redirecionamentos e cabeçalhos HTTP em produção aplica-se diretamente à depuração de referrer-policy.
rel=nofollow é para motores de busca, não para navegadores
rel="nofollow" diz aos motores de busca que não quer implicar aprovação da página ligada.
<a href="https://external.example" rel="nofollow">
User-submitted link
</a>
Originalmente, nofollow foi introduzido para combater spam em comentários. A ideia era simples: se as ligações em comentários não passassem crédito de classificação, os spammers teriam menos incentivo para inundar blogs e fóruns.
Hoje, o Google trata nofollow como uma pista, e não como uma diretiva absoluta. Essa distinção importa. Significa que os motores de busca podem usar a ligação para descoberta ou sistemas de classificação em alguns contextos, mas está a sinalizar claramente que a ligação não deve ser tratada como uma aprovação editorial normal.
Quando usar nofollow
Use nofollow quando está a ligar, mas não quer responsabilizar-se pelo destino.
Exemplos razoáveis incluem:
- ligações não fiáveis geradas por utilizadores;
- ligações em comentários ou perfis públicos;
- ligações para sites mencionados como exemplos de mau comportamento;
- ligações incluídas como referência, mas não como aprovação;
- ligações em áreas onde a moderação é limitada.
Para ligações pagas ou patrocinadas, prefira rel="sponsored". Para conteúdo gerado por utilizadores, prefira rel="ugc". Pode combinar valores se necessário:
<a href="https://example.com" rel="ugc nofollow">
User profile link
</a>
Se gere formulários públicos, comentários, diretórios ou páginas de perfil, os atributos de ligação são apenas uma parte do problema de abuso. O spam geralmente começa mais cedo no fluxo de submissão. Temos uma análise separada sobre por que motivo o seu formulário de contacto é a sua maior responsabilidade em matéria de spam, e a mesma lição aplica-se aqui: não espere que nofollow compense uma moderação fraca.
O que nofollow não faz
nofollow não impede os utilizadores de clicarem na ligação. Não bloqueia o navegador de enviar um referenciador. Não oculta o destino. Não protege target="_blank".
Também não garante que um URL nunca será rastreado. Se os motores de busca encontrarem o URL noutro lugar, ainda o podem rastrear. Se precisa de impedir a indexação, use os controlos robots apropriados na página de destino, como noindex, e não um atributo nofollow na ligação de outra pessoa.
Combinações comuns
Ligação externa que abre num novo separador
<a href="https://external.example" target="_blank" rel="noopener">
External resource
</a>
Esta é a base. Trata a questão de segurança criada ao abrir um novo contexto de navegação.
Se também não quiser enviar dados de referenciador:
<a href="https://external.example" target="_blank" rel="noopener noreferrer">
External resource
</a>
Colocação paga
<a href="https://sponsor.example" rel="sponsored">
Sponsor site
</a>
Pode adicionar noopener se abrir num novo separador:
<a href="https://sponsor.example" target="_blank" rel="sponsored noopener">
Sponsor site
</a>
Não use nofollow como substituto vago para divulgar ligações pagas. Os motores de busca têm agora um valor mais específico para isso: sponsored.
Ligação gerada por utilizador
<a href="https://user-submitted.example" rel="ugc nofollow">
User-submitted site
</a>
Isto diz aos motores de busca que a ligação foi contribuída por um utilizador e não deve ser tratada como um voto editorial normal.
Ligações internas
A maioria das ligações internas não precisa de nenhum destes valores.
Não adicione nofollow a ligações internas como tática rotineira de modelação. Geralmente cria mais confusão do que benefício. Se uma página não deve ser indexada, trate disso diretamente. Se uma página não deve ser rastreada, pense cuidadosamente em regras robots, autenticação, canonicalização e arquitetura do site.
Para ligações internas que abrem num novo separador, noopener continua a ser inofensivo e pode ser apropriado. Mas a melhor pergunta é por que razão a ligação interna precisa de um novo separador.
Uma política prática para equipas
Um guia interno simples evita a maioria dos erros:
- Adicione
rel="noopener"a ligações comtarget="_blank", especialmente ligações externas. - Adicione
noreferrerapenas quando ocultar o URL de origem for intencional. - Adicione
nofollowapenas quando não aprova o destino. - Use
sponsoredpara ligações pagas eugcpara ligações submetidas por utilizadores. - Não use atributos de ligação como substituto de controlo de acesso, moderação ou regras de indexação.
A parte importante é a intenção. Cada token em rel deve responder a uma pergunta específica:
- Segurança: a nova página deve ser isolada da página que a abriu?
- Privacidade: o destino deve receber informação de referenciador?
- SEO: estamos a aprovar esta ligação como referência editorial?
Se ninguém na equipa consegue responder a essas perguntas, o atributo é provavelmente HTML por imitação cega.
Como testar o que está a acontecer
Para noopener, abra a ligação e verifique se o destino consegue aceder a window.opener. Numa página de teste controlada, window.opener deve ser null quando noopener está ativo.
Para noreferrer, inspecione o pedido de rede do lado do destino ou use um registador de pedidos num ambiente de teste. As Browser DevTools podem mostrar cabeçalhos de pedidos enviados, mas os registos do lado do servidor são muitas vezes mais fiáveis.
Para nofollow, o teste é menos imediato porque se trata de uma interpretação do motor de busca, não de um comportamento do navegador. A melhor verificação é inspecionar o código-fonte: confirme que o HTML renderizado contém o valor rel esperado. Se a sua framework de frontend reescreve ligações, inspecione o DOM final, não apenas o template.
O ponto essencial
Estes atributos são pequenos, mas estão na interseção entre segurança, privacidade e SEO. Tratá-los como intercambiáveis cria maus hábitos.
Use noopener generosamente em ligações que abrem novos separadores. Use noreferrer deliberadamente quando a privacidade do referenciador importa. Use nofollow quando está a fazer uma declaração voltada para pesquisa sobre aprovação. E quando uma ligação é paga ou gerada por utilizador, use os valores modernos mais específicos: sponsored e ugc.
Isto é suficiente para a maioria dos sites. O objetivo não é decorar todas as ligações. O objetivo é fazer com que cada ligação diga ao navegador e aos motores de busca exatamente o que precisam de saber.