Przekierowanie 301 i SEO
Informacje wstępne (by Wiki)
301 (Moved Permanently / Trwale przeniesiony) – żądany zasób zmienił swój URI i w przyszłości zasób powinien być szukany pod wskazanym nowym adresem.
GET /index.php HTTP/1.1 Host: www.domena.pl HTTP/1.1 301 Moved Permanently Location: http://www.nowa-domena.pl
301 i SEO
Kiedy przekierowanie jest potrzebne i wykorzystywane w działaniach SEO?
- kilka domen kieruje do tego samego serwisu. W takich przypadkach może się rodzić problem z filtrem Duplicate Content. Wyszukiwarka Google indeksując strony i widząc taki sam serwis pod kilkoma domenami, bierze pod uwagę i wyświetla w wynikach wyszukiwania jedynie tą, która uzna za najbardziej właściwą (często kieruje się wiekiem domeny, bądź faktem, którą pierwszą „zobaczyła”)
- zmiana domeny na nową
- zmiana skryptu, o który serwis jest oparty i przeniesienie starych podstron na nowe
- filtr (kara) w Google
- plus wiele innych, mniej lub bardziej ważnych sytuacji
Co za sobą niesie przekierowanie?
Dobrze wykonany proces przekierowania 301, przenosi całą moc serwisu – zostaną przeniesione pozycje, linki przychodzące, Page Rank, częściowo i Trust Rank strony. Oczywiście nie jest to proces ekspresowy i trwa jakiś czas, zanim Google przeniesie wszystkie potrzebne czynniki, jednak w ciągu maksymalnie trzech miesięcy wszystko powinno być wykonane poprawnie. Pozycje również powinny przeskoczyć bez żadnych „większych wahań” na nową domenę.
Sposoby na wykonanie przekierowań w różnych językach
PHP
1 2 3 | header("HTTP/1.1 301 Moved Permanently"); header("Location: http://www.domena.pl/"); exit(); |
Apache Mod_Rewrite
1 2 3 4 | RewriteEngine On
RewriteCond %{HTTP_HOST} ^stara-domena\.pl$ [OR]
RewriteCond %{HTTP_HOST} ^www\.stara-domena\.pl$ [OR]
RewriteRule ^.*$ http://www.domena.pl [R=301,L] |
HTML
1 | <meta http-equiv="refresh" content="10;url=http://www.domena.pl/" /> |
ASP
1 2 3 4 5 | <%@ Language=VBScript %> <% Response.Status="301 Moved Permanently" Response.AddHeader "Location","http://www.domena.pl/" %> |
ASP .NET
1 2 3 4 5 6 7 | <script runat="server"> private void Page_Load(object sender, System.EventArgs e) { Response.Status = "301 Moved Permanently"; Response.AddHeader("Location","http://www.domena.pl"); } </script> |
JSP (Java)
1 2 3 4 5 | <% response.setStatus(301); response.setHeader( "Location", "http://www.domena.pl/" ); response.setHeader( "Connection", "close" ); %> |
CGI PERL
1 2 | $q = new CGI; print $q->redirect("http://www.domena.pl/"); |
PERL
1 2 3 4 5 | #!/usr/bin/perl -w use strict; print "Status: 301 Moved Permanently\n"; print "Location: http://www.domena.pl\n\n"; exit; |
Ruby on Rails
1 2 3 4 | def old_action headers["Status"] = "301 Moved Permanently" redirect_to "http://www.domena.pl/" end |
Powyższe przykłady nie były sprawdzane przeze mnie w każdym z wymienionych języków, dlatego nie mogę dać 100% pewności na ich działanie. Jest to podstawowe przekierowanie 301 ze starej domeny na nową. Nie bierze pod uwagę przekierowania podstron starego serwisu. O zaawansowanych metodach wykonywania przekierowań (za pomocą .htaccess / PHP) wkrótce…
Przydatne informacje znajdziecie również pod odnośnikami:









