• 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:

66786860086688788760000007788666700000066887777000000677666778600007868867800000088886
88887870087888768680000007766768700000067886687000000668668768700006887677600000076768
87787000066768688008886670086770066887800888600686776008666860067767766860088687700667
86886000087867768008776760076870077866600678700786687008787870068787766680068877700877
66676880066688678007787880087770086888800788700677876007688007677768766860086887800667
66678860066786777008686770068770067866600767800886788006887007878788688780088687600767
67877760077688787860000000068676700000068867878000000868786000000008688867800000000688
87866680077788867870000000068788700000068777766000000767876000000008868767600000000768
87667660068677777668778670076660087867600886800877878008868006866880068676888887800786
76767780088687866776886670076760077676600668700787878006666007768870087876886876800678
87668780087777868788886008888880067866600786700776678006878006777770078688778860068666
78866780077777786776866008678770066667600786800687677008766008787880067878667760088888
66878000000777786670000878768868600000086687886000000886778860000006688778800008868786
77888000000676667760000787777677800000076687676000000688867780000007866767800007767888