Posiadając stronę czy też sklep internetowy, bardzo często napotykamy na sytuacje, w których z różnych względów konieczna jest zmiana adresu lub wielu adresów URL na inne. W przypadku gdy zmieniamy adres podstrony lub całej domeny, która generuje już pewien ruch w wyszukiwarce, istotne jest wykonanie tzw. przekierowania 301.

 

Czym jest przekierowanie 301 i w jakim celu się je stosuje?

Przekierowanie 301 jest specjalną instrukcją dla serwera oraz dla robotów wyszukiwarek, która wskazuje, że stary adres URL uległ zmianie (i że zmiana ta jest stała). Co istotne, z perspektywy pozycjonowania, przekierowanie umożliwia przeniesienie autorytetu danej podstrony (czy też domeny) na nowy adres. Dzięki temu po zmianie adresów zachowamy wypracowane dotychczas efekty pozycjonowania. Z perspektywy użytkownika, dzięki zastosowaniu przekierowania, osoby korzystające ze starego adresu URL trafią na nową podstronę.

 

Kiedy stosujemy przekierowanie 301?

Jednym z podstawowych zastosowań przekierowania 301 jest ustawienie tzw. kanonicznej wersji domeny. Dla wyszukiwarki adresy http://nazwadomeny.pl oraz http://www.nazwadomeny.pl są dwoma oddzielnymi „bytami”. Dlatego też, aby uniknąć niekorzystnego zjawiska duplikacji treści zaleca się przekierowanie wszystkich wersji adresu witryny do jednej (wybranej) postaci kanonicznej.

Którą wersję powinniśmy wybrać? Przeważnie tą, która w większej części jest już zaindeksowana w wyszukiwarce.

Aby wykonać przekierowanie strony z adresów z przedrostkiem www na adresy bez www należy dodać odpowiednią regułę w pliku .htaccess na serwerze, na którym znajduje się nasza strona:

RewriteCond %{HTTP_HOST} ^www.domena.pl [NC]
RewriteRule ^(.*)$ http://domena.pl/$1 [L,R=301]

 

Analogicznie, jeśli chcemy aby kanoniczną wersją naszego adresu była wersja z www powinniśmy użyć poniższej reguły:

RewriteCond %{HTTP_HOST} ^domena.pl [NC]
RewriteRule ^(.*)$ http://www.domena.pl/$1 [L,R=301]

 

Alternatywnie przekierowanie strony możemy również wykonać np. za pomocą skryptu PHP. Przekierowanie z wersji „z www” na „bez www” będzie miało w takim wypadku następującą postać:

<?php

if(substr($_SERVER['HTTP_HOST'], 0, 3)!='www')

{

header("HTTP/1.1 301 Moved Permanently");

header("Location: http://www.domena.pl".$_SERVER['REQUEST_URI']);

header("Connection: close");

exit;

}

?>

 

W przypadku przekierowania w drugą stronę, kod wygląda następująco:

<?php

if(substr($_SERVER['HTTP_HOST'], 0, 3)=='www')

{

header("HTTP/1.1 301 Moved Permanently");

header("Location: http://vestigio.pl".$_SERVER['REQUEST_URI']);

header("Connection: close");

exit;

}

?>

 

Jak zrobić przekierowanie 301 ze starej domeny na nową

Przekierowanie 301 możemy też wykorzystać w sytuacji kiedy zmianie ulega domena, pod którą dostępna będzie nasza strona lub sklep. Aby przekierować starą domenę na nową należy skorzystać z następującej reguły w pliku .htaccess:

RewriteEngine on

RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,L]

 

Przekierowanie 301 pojedynczej strony:

W przypadku gdy chcemy przekierować konkretną podstronę na nowy adres, możemy skorzystać z następującej reguły:

Redirect 301 /stara-podstrona.php /nowa-podstrona.php

 

 

Jak sprawdzić rodzaj i poprawność przekierowania?

Aby sprawdzić rodzaj przekierowania, wystarczy skorzystać z dowolnego narzędzia analizującego nagłówki wysyłane do przeglądarki. Przykładem takiego narzędzia jest testuri.org.

W polu Page URI/URL wystarczy wpisać adres podstrony, którą chcemy sprawdzić, a następnie kliknąć przycisk Check page.

testuri

 

Po chwili zobaczymy wyniki testu razem z kodem odpowiedzi serwera.

testuri-wynik

 

Podsumowanie

Przekierowanie 301 jest niezwykle istotną instrukcją wykorzystywaną wtedy gdy zmianie ulegają adresy URL podstron w obrębie danego serwisu. Dzięki zastosowaniu przekierowania strony nie tylko zyskujemy pewność, że użytkownicy odwiedzający naszą stronę trafią pod właściwy adres, ale również umożliwiamy przepływ mocy (autorytetu) ze starego adresu na nowy.

Jeśli zmieniacie adresy ważnych podstron w obrębie swojej strony, zawsze pamiętajcie więc o wykonaniu odpowiedniego przekierowania.

8 odpowiedzi

  1. Do sprawdzania poprawności przekierowań polecam również HTTP Status Code Checker. Fajne i wygodne w użyciu narzędzie 🙂

  2. Jeśli chcesz przekierować daną podstronę na stronę główną (w obrębie tej samej domeny) to wystarczy tak:

    Redirect 301 /stara-podstrona.html http://nazwadomeny.pl/

    lub tak:

    RewriteEngine on
    RewriteRule ^stara-podstrona.html$ / [R=301,L]

  3. Czy ktoś pomoże w kwestii kodu do przekierowania kilkunastu stron aby działało w poniższy sposób (bez /produkty/?

    https://www.strona.pl/produkt/strona1
    https://www.strona.pl/produkt/strona1/strona1a
    https://www.strona.pl/produkt/strona2
    https://www.strona.pl/produkt/strona2/strona2a/strona2b
    …..

    przekierowanie na
    https://www.strona.pl/strona1
    https://www.strona.pl/strona1/strona1a
    https://www.strona.pl/strona2
    https://www.strona.pl/strona2/strona2a/strona2b

    Pewnie należy zmienić kod z postu wcześniejszego jednak nie jestem biegły w tych sprawach. Będę zobowiązany

  4. Co do końcowego ukośnika (slasha) w adresie URL domeny… przekierowywać na adresy Z ukośnikiem, czy BEZ?

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *