- O que é o redirecionamento 301?
- Como o redirecionamento 301 afeta o SEO?
- Qual é a diferença entre o redirecionamento 301 e 302?
- Como mudar do 302 para o 301?
- Questões de redirecionamento 301
- Redirecionamento de domínio não WWW para WWW com prefixo #
- Redirecionar uma página antiga para uma página nova
- Em alguns casos, o redirecionamento via RewriteRule é útil
- Redirecionamento 301 da página web com parâmetro GET #
- Redirecionamento 301 da página web com parâmetro GET não definido para a página inicial
- Redirecionamento 301 para arquivo específico e não para todo o diretório
- Redirecionamento 301 do domínio antigo para um domínio novo
- Redirecionamento 301 de URLs sem barra diagonal para URLs com “/”
- Redirecionamento 301 de URLs com barra diagonal para URLs sem “/”
- Redirecionamento 301 do domínio para a pasta em outro domínio
- Redirecionamento 301 de todos os arquivos da pasta para um novo URL
- Redirecionamento 301 de todos os documentos da pasta, exceto um
- Mudança de extensão de .html para .php
- Transferência de todas as imagens de pasta /img/ para o subdomínio
- Configuração do tipo de página de índice (php, html, htm, e outros)
- Redirecionamento 301 de .php para a pasta raiz
- Redirecionamento 301 do subdomínio para #
- Redirecionamento 301 de documentos específicos em diferentes pastas
- Se você precisar criar um endereço SEO-friendly para qualquer documento, possa realizar isso com o arquivo .htaccess
- Redirecionamento 301 de HTTPS para HTTP #
- Redirecionamento 301 de domínio inteiro de HTTP para HTTPS
- Configuração de código de resposta do servidor 403 para spam de referência (redirecionamento 301 para spam via REFERER) para lista de recursos:
- Configuração do roteamento para o documento de erro 404 com .htaccess #
- Se tiver a necessidade de executar o redirecionamento 301 não para todos os visitantes mas apenas para USER_AGENTs
- Se tiver necessidade de executar o redirecionamento 301 para todos os bots de rastreamento (e tem a lista de seus USER_AGENT’s)
- Sintaxe da expressão regular
- Como realizar o redirecionamento 301 em Bitrix
O que é o redirecionamento 301?
O redirecionamento 301 é um redirecionamento permanente de um URL para outro que passa todo o link juice para o recipiente. Basicamente, é um dos códigos de status de resposta HTTP indicando que a solicitação ao servidor web foi processada com sucesso.
Todos os redirecionamentos 3xx referem-se a cabeçalhos de resposta de localização, um cabeçalho padrão do protocolo de transferência de hipertexto. Você pode encontrar a lista completa dos cabeçalhos de resposta HTTP em sua especificação.
Como o redirecionamento 301 afeta o SEO?
De acordo com o Search Engine Land e as múltiplas discussões na comunidade de especialistas de SEO, os redirecionamentos 301 não são um fator de ranking. Tecnicamente isso é a verdade. Existe uma lista de recomendações, quando o redirecionamento 301 deve ser usado:
- você está mudando de HTTP para HTTPS.
- você está mudando de um domínio antigo para um novo.
- você está otimizando as dicas de URL para posts e páginas existentes.
- você está mudando para uma nova plataforma de site e suas páginas vão mudar de https://domain.com/page.html para https://domain.com/page/
Entretanto, se você se aprofundar na lógica de como o link juice é entregue na web, você vai entender mais.
Portanto, você usa o redirecionamento 301 página-a-página quando mudar o seu site do domínio antigo para um domínio novo sem alteração da estrutura do site. Assim, cada página do domínio antigo entrega seu link juice acumulado para a mesma página no novo endereço. Isso ajudará o seu site a não perder suas posições no SERP, e ajudará ao mecanismo de busca do Google entender que este é o mesmo site com apenas um novo nome de domínio. Pura lógica!
Mas o que acontecerá se pegamos outro site do mesmo nicho e configuramos seu arquivo .htaccess para o redirecionamento página-a-página para o nosso domínio? Provavelmente o Google começará a pensar que estamos movendo o site antigo para um novo nome de domínio. Bom, a estrutura dos dois sites é diferente, mas o nicho é o mesmo, então tudo parece legítimo, e o link juice deve ser entregue.
Portanto, a resposta final é que os redirecionamentos 301 podem impulsionar seu site se você souber como usá-los corretamente. Vamos lá!
Qual é a diferença entre o redirecionamento 301 e 302?
No contexto da promoção do site, os dois redirecionam a aparência das páginas nos resultados de busca. O redirecionamento 301 é um sinal para o mecanismo de busca de que a página antiga deve ser removida dos resultados da busca. Com um redirecionamento 302, o endereço original permanece nos resultados da busca, apesar do redirecionamento.
Um redirecionamento 302 é usado se o site estiver passando por uma manutenção temporária e o conteúdo da página for alterado por tempo limitado (por exemplo, nessa página você pode colocar uma mensagem “Desculpe, o nosso site está de manutenção”. Voltaremos em breve”). Em outros casos, o redirecionamento 302 não vale a pena.
Como mudar do 302 para o 301?
Questões de redirecionamento 301
Como fazer um redirecionamento 301
Redirecionamento de domínio não WWW para WWW com prefixo #
RewriteCond %{HTTP_HOST} ^site\.com$ [NC] RewriteRule ^(.*)$ http://www.site.com/$1 [R=301,L]
Redirecionamento vice-versa (de WWW para não WWW)
Para a versão HTTP:
RewriteCond %{HTTP_HOST} ^www.site\.com$ [NC] RewriteRule ^(.*)$ http://site.com/$1 [R=301,L]
Para a versão HTTPS:
RewriteCond %{SERVER_PORT} ^80$ [OR]
RewriteCond %{HTTP} =on
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
Redirecionar uma página antiga para uma página nova
Redirect 301 /old.php http://www.site.com/new.php
Neste caso, o novo endereço deve ser especificado com http e nome de domínio.
Em alguns casos, o redirecionamento via RewriteRule é útil
RewriteRule ^dir /dir-new/$1 [R=301,L]
Redirecionamento 301 da página web com parâmetro GET #
Por exemplo, a URL da página é: http://www.site.com/dir/index.php?IBLOCK_ID=1&SECTION_ID=111
Então, para o redirecionamento 301 esta regra deve ser usada:
RewriteCond %{QUERY_STRING} ^IBLOCK_ID=1&SECTION_ID=111$ [NC] RewriteRule ^dir/index\.php$ /new/sef/? [R=301,L]
Se um (ou vários) dos parâmetros do GET não estiverem definidos ou puderem ter variável aleatória (em nosso caso é SECTION_ID), você poderá usar este código:
RewriteCond %{QUERY_STRING} ^IBLOCK_ID=1&SECTION_ID=(.*)$ [NC]
RewriteRule ^dir/index\.php$ /new/sef/? [R=301,L]
Redirecionamento 301 da página web com parâmetro GET não definido para a página inicial
Se o endereço for:
http://www.site.com/?abc
para o redirecionamento 301 você pode usar este código:
RewriteCond %{QUERY_STRING} ^abc$ [NC] RewriteRule ^$ /? [R=301,L]
Redirecionamento 301 para arquivo específico e não para todo o diretório
Se você precisar de executar o redirecionamento 301 de:
http://www.site.com/dir/
para um novo endereço, mas você precisa de um documento:
http://www.site.com/dir/index.php?IBLOCK_ID=1
estar disponível no endereço antigo, você deve usar o símbolo “$” na regra:
RewriteRule ^dir/$ http://www.site.com/new-dir/ [R=301,L]
Redirecionamento 301 do domínio antigo para um domínio novo
RewriteCond %{HTTP_HOST} ^old-site\.com$ [NC] RewriteRule ^(.*)$ http://www.site.com/$1 [R=301,L]
Redirecionamento 301 de URLs sem barra diagonal para URLs com “/”
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\..{1,10}$
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://www.site.com/$1/ [L,R=301]
Redirecionamento 301 de URLs com barra diagonal para URLs sem “/”
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ http://www.site.com/$1 [R=301,L]
Redirecionamento 301 do domínio para a pasta em outro domínio
RewriteCond %{HTTP_HOST} ^si-te\.com$ [NC] RewriteRule ^(.*)$ http://www.site.com/si-te/ [R=301,L]
Redirecionamento 301 de todos os arquivos da pasta para um novo URL
RewriteRule ^dir(.*)$ /new-file.php [L,R=301]
Redirecionamento 301 de todos os documentos da pasta, exceto um
RewriteRule ^dir/no-file.html /no-file-new.html [L,R=301] RewriteRule ^dir(.*)$ /all.php [L,R=301]
Mudança de extensão de .html para .php
RedirectMatch 301 (.*)\.html$ http://www.new-site.com$1.php
Transferência de todas as imagens de pasta /img/ para o subdomínio
RewriteRule ^img/(.+)\.jpg$ http://img.domain.com/$1.jpg [R=301,L]
Configuração do tipo de página de índice (php, html, htm, e outros)
Ordem de formatos de documentos a serem baixados:
DirectoryIndex index.html index.php index.htm index.shtml
Redirecionamento 301 de .php para a pasta raiz
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://www.site.com/ [R=301,L]
A mesma coisa para TODOS os documentos .php no site:
RewriteRule ^(.*)index\.php$ http://www.site.com/$1 [R=301,L]
Redirecionamento 301 do subdomínio para #
RewriteCond %{HTTP_HOST} ^test.site.com$ [NC] RewriteRule ^(.*)$ http://site.com%{REQUEST_URI} [R=301,NC,L,QSA]
Redirecionamento 301 de documentos específicos em diferentes pastas
RewriteRule [^abc]/unique-file.html /unique-file.html [R=301,L] O código http://site.com/****/uniqe-file.html permite fazer um redirecionamento 301 de todas as pastas para o arquivo na pasta raiz /unique-file.html. Pode ser útil para redesign do site.
Se você precisar criar um endereço SEO-friendly para qualquer documento, possa realizar isso com o arquivo .htaccess
RewriteRule ^testing/test/?$ /studio/news/detail.php?ID=230354&PAGEN_2=11 [NC,L]
O código que permite criar uma cópia da página web com endereço relativo:
/studio/news/detail.php?ID=230354&PAGEN_2=11 with address /testing/test/
Redirecionamento 301 de HTTPS para HTTP #
RewriteCond %{HTTPS} “on”
RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,QSA]
permite remover URLs duplicadas com HTTPS do índice do motor de busca.
Redirecionamento 301 de domínio inteiro de HTTP para HTTPS
RewriteCond %{SERVER_PORT} ^80$ [OR]
RewriteCond %{HTTP} =on
RewriteRule ^(.*)$ https://domain.com/$1 [R=301,L]
Configuração de código de resposta do servidor 403 para spam de referência (redirecionamento 301 para spam via REFERER) para lista de recursos:
RewriteCond %{HTTP_REFERER} ref-spam-site.com [NC,OR] RewriteCond %{HTTP_REFERER} another-ref-spam.com [NC] RewriteRule .* – [F]
Essas configurações permitem bloquear o tráfego de spam da lista de recursos com cabeçalho HTTP_REFERER
Configuração do roteamento para o documento de erro 404 com .htaccess #
É importante que o código de resposta do servidor seja 404 para o documento 404.
ErrorDocument 404 /404-for-me.php
# Todas as regras são executadas na ordem direta em que aparecem no arquivo .htaccess e a regra escrita mais tarde será executada mais tarde.
# Para sites que não usam o servidor Apache, redirecionamentos 301 similares são facilmente configurados por PHP.
<?php
header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: http://www.site.com/dir/”);
exit();
?>
# Será ideal configurar todos os redirecionamentos para a página final de uma só vez (sem redirecionamentos intermediários). Isso melhora sua percepção pelos motores de busca e usuários.
Se tiver a necessidade de executar o redirecionamento 301 não para todos os visitantes mas apenas para USER_AGENTs
RewriteCond %{HTTP_USER_AGENT} (iPad|ipad|iphone|iPhone|ipod|iPod|android|midp|j2me|symbian|series\ 60|symbos|windows\ mobile|windows\ ce|ppc|smartphone|blackberry|mtk|bada|windows\ phone) [NC] RewriteRule (.*) http://mobile.site.com/ [L,R=301]
Se tiver necessidade de executar o redirecionamento 301 para todos os bots de rastreamento (e tem a lista de seus USER_AGENT’s)
RewriteCond %{HTTP_USER_AGENT} !(accoona|ia_archiver|antabot|ask\ jeeves|baidu|dcpbot |eltaindexer|feedfetcher|gamespy|gigabot|googlebot |gsa-crawler|grub-client|gulper|slurp|mihalism|msnbot|worldindexer |ooyyo|pagebull|scooter|w3c_validator|jigsaw|webalta|yahoofeedseeker |yahoo!\ slurp|mmcrawler|yandexbot|yandeximages |yandexvideo|yandexmedia|yandexblogs|yandexaddurl|yandexfavicons |yandexdirect|yandexmetrika|yandexcatalog|yandexnews |yandeximageresizer) [NC] RewriteRule (.*) http://no-search.site.com/ [L,R=301]
Sintaxe da expressão regular
. – O ponto substitui um caráter arbitrário.
[abc] – denota uma lista de caracteres que correspondem às letras a, b, ou c.
[^abc] – uma lista de caracteres que não estão incluídos no intervalo especificado. Corresponde a qualquer caractere exceto a, b, ou c.
* – significa que o caractere precedente pode ser repetido (0 ou mais vezes).
[abc]* – encontra caracteres consecutivos do conjunto especificado.
[^abc]* – exatamente o oposto.
.* – substitui qualquer conjunto de caracteres. “.*” – encontra todos os substratos entre aspas.
^ – o início de uma cadeia (se usado no início de uma expressão).
$ – indica o fim da linha.
\^ – é uma letra, número ou sublinhado.
\^d – substitui qualquer dígito.
\D – substitui qualquer caractere, mas não um número.
[0-9] – substitui qualquer número.
[a-z] – qualquer letra de a a z (todo o conjunto de caracteres latinos) em letras minúsculas.
[A-Z] – qualquer letra de A a Z em letras maiúsculas.
[a-zA-Z] – qualquer letra de a a Z.
[a-Z] é o mesmo.
Remover todos os parâmetros GET após o ponto de interrogação (?) #
Rewrite rule(.*) $1? [R=301,L]
Position after: RewriteBase /
Como realizar o redirecionamento 301 em Bitrix
Redirecionar de todos os arquivos de domínio, exceto para a pasta do administrador bitrix #
RewriteRule ^bitrix/ /bitrix/admin/ [L,R=301]
RewriteRule ^(.*)$ http://www.newsite.com/new/ [L,R=301]