Página de manutenção sem interferir no ranqueamento do Google e do Yahoo! SEO na prática.

Author: Ricardo Soares - Postado em: 07/10/2010
Relacionado as categorias: Guias e Tutoriais, Tecnologia |  





Recentemente precisei fazer um redirecionador para uma loja virtual, a ideia era garantir que qualquer arquivo/página que fosse requisitado ao servidor encaminhasse o usuário para uma página falando sobre a manutenção do sistema, parece uma coisa boba (e é uma coisa boba), mas o aplicativo deveria continuar funcional para as pessoas que estivessem acessando este a partir da rede da empresa para que pudessem fazer as devidas manutenções no aplicativo, a página também não poderia responder de forma a confundir os robôs de pesquisa fazendo estes diminuírem a qualificação do site ganho com tanto custo.

Após uma rápida pesquisa encontrei vários exemplos, porem havia então uma discussão entre utilizar o código 302 (Movido temporariamente) ou código 503 (Serviço não disponível), segundo observação de Berghausen, administrador do grupo Google Webmaster Help, o Google compreende ambos os códigos como sendo problemas programados e temporários, porem sua preferencia seria pelo 503, por este motivo optei por utilizar o 503 ao invés do 302, como a maior parte das pessoas o faziam, além do que o erro me fazia mais sentido, a página não havia sido movida e estava sim indisponível.

O script final ficou conforme segue:

# inicio do arquivo
# Informa o Apache que a página de mensagem do 503 é o index.html
ErrorDocument 503 /index.html

# Configura o Apache para utilizar o rewrite
Options +FollowSymlinks
RewriteEngine on
RewriteBase / 

# Trocar o endereco 999.999.999.999 abaixo para seu endereco de IP
RewriteCond %{REMOTE_HOST} !^999.999.999.999
# Informa que a regra eh para todas as paginas
RewriteCond %{REQUEST_URI} ^(.*)$
# Informa que a pagina index.html foge a regra
RewriteCond %{REQUEST_URI} !/index.html$
# Informa que a imagem index_indisponivel.gif foge a regra
RewriteCond %{REQUEST_URI} !/index_indisponivel.gif$
# Direciona usuario para index.html setando o erro para 503, forcando
# o apache a seguir para a pagina de erro
RewriteRule ^(.*)$ /index.html [R=503]

<IfModule mod_headers.c>
	# Caso o modulo de header esteja ativo entao informa ao robo
	# para visitar a pagina novamente dentro de no mínimo 10h.
	Header set Retry-After: 36000
</IfModule>

# fim do arquivo

Observem que tive que informar que tanto o arquivo de apresentação da mensagem quanto a imagem ilustrativa não faziam parte da regra. Com este fizemos uma mensagem útil tanto para humanos quanto para máquinas.

Referências:

Descritivo de códigos de comunicação para o protocolo HTTP/HTTPs:
http://en.wikipedia.org/wiki/List_of_HTTP_status_codes

Posicionamento do Google quanto aos erros:
http://groups.google.com/group/Google_Webmaster_Help-Indexing/browse_thread/thread/32221070b5595d2c?pli=1

Outros exemplos/artigos sobre o assunto:
http://judebert.com/progress/archives/299-Blog-Maintenance-and-the-503-Status.html
http://truizz.com/tutorial/ler.php?ler=126&id=0&menu=42
http://www.askapache.com/htaccess/apache-status-code-headers-errordocument.html
http://25yearsofprogramming.com/blog/20070704.htm
http://www.mdig.com.br/index.php?itemid=73
http://www.htmlstaff.org/ver.php?id=1457
http://www.findlinuxhelp.com/archives/howto/webmaster-howto/turn-your-website-into-maintenance-mode-seo-friendly-solution-using-htaccess-file/













Comments

4 Responses to “Página de manutenção sem interferir no ranqueamento do Google e do Yahoo! SEO na prática.”

  1. admin on October 15th, 2010 6:50 am
  2. admin on October 15th, 2010 6:51 am

    Aqui um link de aplicativo que constroi para você o htaccess

    http://www.htaccesseditor.com/pt.shtml

  3. Ricardo on January 20th, 2011 3:34 am

    Outra forma de aplicar o comando acima porem utilizando PHP e permitindo com que vários IPs sejam liberados.
    if ($_SERVER[’REMOTE_ADDR’]!=’IP1′ && $_SERVER[’REMOTE_ADDR’]!=’IP2′) {
    header(’HTTP/1.1 503 Service Temporarily Unavailable’);
    header(’Status: 503 Service Temporarily Unavailable’);
    header(’Retry-After: 7200′); // in seconds
    header(’Location: /index.html’);
    exit();
    }

  4. admin on February 3rd, 2011 9:52 am

    Link com diversos códigos de comandos entre apache e navegador

    http://en.wikipedia.org/wiki/List_of_HTTP_status_codes

Leave a Reply






Últimos posts