• Home
  • SEO i SEM
  • Kompleksowy poradnik o przekierowaniach 301 w .htaccess

Kompleksowy poradnik o przekierowaniach 301 w .htaccess

przekierowanie-301

Przekierowania 301 to jeden z najważniejszych elementów optymalizacji SEO, szczególnie podczas migracji stron, zmiany adresów URL czy konsolidacji treści. Chociaż temat był poruszany wielokrotnie, wciąż budzi wiele pytań u webmasterów i specjalistów SEO. W tym artykule przedstawię najważniejsze rodzaje przekierowań 301 w pliku .htaccess oraz praktyczne rozwiązania typowych problemów.

Czym jest plik .htaccess?

Plik .htaccess to plik konfiguracyjny serwera Apache, który pozwala na modyfikację ustawień serwera dla konkretnego katalogu. Jest niezwykle przydatny do implementacji przekierowań, zabezpieczeń, kontroli dostępu i wielu innych funkcji bez konieczności modyfikowania głównych plików konfiguracyjnych serwera.

Warto pamiętać, że:

  • Plik nie ma rozszerzenia – jego dokładna nazwa to „.htaccess”
  • Należy go umieścić w głównym katalogu strony (lub w katalogu, dla którego mają działać reguły)
  • Na początku pliku należy zawsze umieścić:
RewriteEngine On

lub czasem:

RewriteEngine On
RewriteBase /

Dlaczego przekierowania 301 są ważne dla SEO?

Przekierowanie 301 (permanent redirect) informuje wyszukiwarki, że strona została przeniesiona na stałe. Dzięki temu:

  • Przekazywana jest „moc SEO” ze starej strony na nową
  • Użytkownicy są automatycznie kierowani na właściwą stronę
  • Unikamy duplikacji treści, co mogłoby skutkować karami od Google
  • Zachowujemy pozycje w wynikach wyszukiwania podczas zmian w strukturze strony

Podstawowe przekierowania w .htaccess

Przekierowanie z domeny bez www na www

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

Przekierowanie z www na domenę bez www

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

Z perspektywy SEO nie ma znaczenia, którą wersję wybierzesz, ale ważne jest, aby konsekwentnie używać jednej z nich. Jeżeli masz już zaindeksowane obie wersje, zalecam wybór tej, do której prowadzi więcej linków zewnętrznych.

Przekierowanie całej domeny na inną domenę

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

Ten kod przekierowuje zarówno stronę główną, jak i wszystkie podstrony na dokładnie te same adresy pod nową domeną. Jest to szczególnie ważne podczas migracji całej witryny.

Przekierowanie z index.php lub index.html na stronę główną

RewriteCond %{REQUEST_URI} ^\/index\.php$
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)$ http://www.domena.pl/ [L,R=301]

Dla index.html:

RewriteCond %{REQUEST_URI} ^\/index\.html$
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)$ http://www.domena.pl/ [L,R=301]

Zapobiega to indeksowaniu duplikatów strony głównej pod adresami z dodatkowym „index.php” lub „index.html”.

Zaawansowane przekierowania

Przekierowanie nieistniejących podstron na stronę główną

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://www.domena.pl/ [L,R=301]

Uwaga: Ten kod może nie działać na wszystkich hostingach. Jeśli po jego dodaniu cały plik .htaccess przestaje działać, należy go usunąć.

Przekierowanie z HTTPS na HTTP (rzadko stosowane)

RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Obecnie rzadko się to stosuje, ponieważ HTTPS jest preferowanym protokołem. Jednak może być przydatne w przypadku migracji strony z powrotem do HTTP lub gdy mamy zaindeksowane wersje HTTPS, a strona nie obsługuje SSL.

Przekierowanie z HTTP na HTTPS (bezpieczniejsze)

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Jest to obecnie zalecane podejście, ponieważ Google preferuje strony zabezpieczone protokołem HTTPS.

Przekierowanie konkretnej podstrony na inną

RewriteRule ^stara-podstrona\.html$ http://www.domena.pl/nowa-podstrona/ [R=301,L]

Przekierowanie całego katalogu na inny

RewriteRule ^stary-katalog/(.*)$ http://www.domena.pl/nowy-katalog/$1 [R=301,L]

Pakiet startowy dla nowej strony

Dla nowych stron warto wdrożyć podstawowy pakiet przekierowań już na początku:

apache

RewriteEngine On
RewriteBase /

# Przekierowanie z domeny bez www na www
RewriteCond %{HTTP_HOST} ^domena\.pl$ [NC]
RewriteRule ^(.*)$ http://www.domena.pl/$1 [R=301,L]

# Przekierowanie z index.php na stronę główną
RewriteCond %{REQUEST_URI} ^\/index\.php$
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)$ http://www.domena.pl/ [L,R=301]

# Przekierowanie z HTTP na HTTPS (opcjonalnie, jeśli masz SSL)
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Częste problemy z przekierowaniami

1. Przekierowanie nie działa

Możliwe przyczyny:

  • Błąd w składni kodu
  • Serwer nie obsługuje mod_rewrite
  • Plik .htaccess jest ignorowany przez serwer
  • Konflikt z innymi regułami w .htaccess

Rozwiązanie: Sprawdź logi serwera, upewnij się, że mod_rewrite jest włączony, a plik .htaccess ma odpowiednie uprawnienia.

2. Pętla przekierowań

Jeśli przypadkowo ustawisz przekierowanie strony A na stronę B, a strony B na stronę A, utworzysz nieskończoną pętlę.

Rozwiązanie: Dokładnie sprawdzaj reguły przekierowań przed ich wdrożeniem.

3. Utrata parametrów URL

Niektóre przekierowania mogą gubić parametry GET z adresu URL.

Rozwiązanie: Użyj flagi QSA (Query String Append):

RewriteRule ^stara-strona\.php$ http://www.domena.pl/nowa-strona/ [R=301,L,QSA]

Podsumowanie

Odpowiednie przekierowania 301 to jeden z fundamentów dobrej optymalizacji SEO. Warto je wdrożyć już na początku istnienia strony lub podczas jej przebudowy, aby uniknąć duplikacji treści i utraty mocy SEO. Pamiętaj, że:

  • Każda strona powinna być dostępna pod jednym adresem URL
  • Wszelkie zmiany adresów URL powinny być obsługiwane przez przekierowania 301
  • Przekierowania powinny prowadzić do najbardziej odpowiadających treścią stron, a nie zawsze na stronę główną
  • Po wdrożeniu przekierowań warto zweryfikować ich działanie za pomocą narzędzi jak Screaming Frog czy plugin Redirect Path

Prawidłowe przekierowania pozwolą zachować wartość SEO Twojej strony i zapewnią dobre doświadczenia użytkownikom.

Leave a Reply

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

Przepisz SZARE cyfry:

68877000000786778680000006787688766008676887800000000006688660000008888686800000066777
86886000000687778870000008877668676008786666800000000008666670000006677878700000078876
87600876788006787007677860077778700006668866700867787878687007766660087680067686700666
78700866667008768006778860066676600007767787800866687678886008677660066760068876700786
86676678777006878768666880078668668006778886800000000767687006667870077760078887800768
86666776786006676668766770088886788007687667600000000786667008667680088880066888600767
78786880000787878676600008866776766007677786867767778008876860000000066666700000000667
67688680000876687886800006768668877007768686678777766007768660000000077766800000000666
77878676788008766860078786868768776006787876678666878007677886667880067767668778700768
66887866766007686680076788877886887008688678687766876006888866687770076887666688700788
86600888778006888007877886686767768006767787600676876007766786687007866867888670077667
86800868877008667006676888768776668006767877700767678006876668878008686688778870088876
87786000000677776000000000086677700000076767766000000788787880000678678767700008878888
78877000000877776000000000078788700000077677768000000868868770000687866776600007867786