Como prevenir a indexação de páginas seguras (https)

Muitos dos sites na Internet—maioritariamente e-commerce e online banking—utilizam a tecnologia SSL para segurança de secções específicas que normalmente lidam com informação pessoal dos visitantes ou dados sensíveis. Esta tecnologia faz com que várias páginas ou secções específicas de um website sejam servidas sob o protocolo HTTPS assegurando a transmissão de dados dentro de uma sessão encriptada. Isto quer dizer que páginas, ou secções de um site podem existir repetidamente sob ambos os protocolos HTTP e HTTPS. No entanto, se o servidor não estiver corretamente configurado, isto pode resultar na indexação de conteúdo duplicado, criando problemas de canonicalização e diluindo um pouco a força do site. Existem várias maneiras de lidar com este problema, mas neste artigo vou escrever sobre as 2 maneiras mais comuns caso tenha um servidor Apache.

A primeira solução é para aqueles que não utilizam ou não necessitam de SSL, mas para a qual o site existe sob ambos os protocolos. É comum nos dias de hoje que os servidores funcionem por defeito para ambos os protocolos.

Se não utiliza ou não necessita desta tecnologia, a maneira mais fácil é implementar um redireccionamento 301 de HTTPS para HTTP para todo o site, isto consegue-se através da adição das seguintes linhas ao ficheiro .htaccess que reside na raíz do seu site (obviamente substituindo o meu dominio pelo seu):

1
2
3
4
5
6
<IfModule mod_rewrite.c>
  RewriteEngine On
  # Redirect requests from https to http
  RewriteCond %{SERVER_PORT} ^443$
  RewriteRule ^(.*)$ http://www.pedrodias.net/$1 [R=301,L]
</IfModule>

Os comandos acima dizem que, para cada pedido de qualquer ficheiro ao servidor através da porta 443 (porta para SSL/protocolo HTTPS), o servidor deve servir o domínio sob HTTP aplicando um redireccionamento tipo 301.

A segunda solução é para aqueles que utilizam ou necessitam desta tecnologia, mas não querem que os motores de busca indexem as páginas sob o protocolo HTTPS. Para isso crie um segundo ficheiro de robots.txt e dê-lhe o nome de robots_ssl.txt por exemplo. Dentro desse ficheiro negue acesso total ao site para todos os motores de busca através do seguinte:

1
2
User-agent: *
Disallow: /

Este ficheiro deve ser colocado na raíz do site, onde provavelmente já existe também um ficheiro robots.txt. Em suma o site vai ter 2 ficheiros robots.txt, um para servir sob HTTP e outro que será servido sob HTTPS. Agora basta criar ou editar o ficheiro .htaccess na raíz do site e inserir as seguintes linhas:

1
2
3
4
5
6
<IfModule mod_rewrite.c>
  RewriteEngine On
  # Prevent indexing https
  RewriteCond %{SERVER_PORT} ^443$
  RewriteRule ^robots.txt$ robots_ssl.txt
</IfModule>

Os comandos acima dizem que, para cada pedido do ficheiro robots.txt ao servidor através da porta 443 (porta para SSL/protocolo HTTPS), o servidor deve servir o ficheiro robots_ssl.txt.

Podemos testar o resultado final acedendo ao site através de HTTP e HTTPS, por exemplo http://www.pedrodias.net/robots.txt e https://www.pedrodias.net/robots.txt apresentam diferentes versões do ficheiro robots.txt.

Para complementar este artigo, recomendo que leia também o meu post sobre domínios com e sem www.

UPDATE: Para colocar meta noindex,follow nas suas páginas sob HTTPS, basta colocar o seguinte código PHP dentro das tags <head></head> do seu site:

1
2
3
4
5
<?php
if (isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on') {
echo '<meta name="robots" content="noindex,follow">'. "\n";
}
?>

Não existem posts relacionados.

Comments

  1. Olá Pedro,

    Você não acha que ao inves de usar o robots.txt podemos usar a canonical tag? Desta forma aproveitamos o juice…

    • Pedro Dias says:

      Olá Fábio,

      Sim você está certo, mas isso requer algo mais elaborado e nem todos poderão ou saberão fazer isso corretamente (o mapeamento dos URLs tem de ser correto). Eu quis fazer um post explicando um modo fácil e acessível a todos, pois muita gente quer mesmo remover esses resultados das buscas por motivos de segurança. Outra opção fácil que vou acrescentar é a implementação de uma meta "noindex,follow" em todas as páginas sob HTTPS.

      • Entendi perfeitamente Pedro. Se for em termos de prioridade eu colocaria:

        1) Redirect 301
        2) Canonical
        3) NoIndex, Follow
        4) Robots.txt

        Concorda? Acho que desta forma você pode analisar o que consegue fazer e aí sim armar no seu website. Alias, bom tópico para post =)

Se o seu comentário ou pergunta é sobre um site ou problema específico, ou mesmo uma pergunta geral sobre a pesquisa do Google, o melhor lugar para obter uma resposta é no Fórum do Google de Ajuda a Webmasters!

Ao comentar, por favor utilize o seu nome ou nick, e não o nome do seu negócio ou empresa. Os nomes de negócios ou empresas quando utilizados em comentários tendem a ter uma conotação de spam, e eu gostaria de encorajar as pessoas a comentarem com o seu nome verdadeiro.
Link para reportar SPAM no Google.

Comentários fecham automaticamente ao fim de 365 dias.