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

87888688600677776000000000076778786770068877768000000867686660000006678787876680066887
87667877600776877000000000088678878770078776777000000867876880000008787676776780078666
78686860000766666687766680076776888000077877800886878007667008778760088866768000088786
76778880000878767866668780078686677000076767600676878007786007668880088767776000067686
78887008700686677778877007878666800660086868678787878006686006766770076667600870076776
77677008800676778876767008877676800680066787686776676006687008666780088687600680068767
87800667600868687877800776866870078860078688778780000777686670000007778670088870066867
66800778600687688788700878668680066760088786888880000886688670000006676860087870086887
76600000000007678860087866777770000000000876768006786786687007768780066870000000000767
66600000000006876880087687668680000000000778867006868878687008876780078870000000000786
86777766700666766860088687688668867780066776700886777687776006686770087868787870087867
78686788700686787770068766776666676870067666600877868887668008876860087678667860068878
77866668600868676780086777866786866780066876800000000007778860000007878777667670076677
68678668600877877670088887767678888770066667600000000008866860000006776766767660067767