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

86768760000688876760000008786768800000086676876000000688767870000007667878600000077766
76887880000886877870000008766886700000087687888000000767866770000008788776700000087766
76777007676687866007767870077860077678700686700886878006788008887680068780087767700867
86778007678886687007678880078680086767800666700887768008868006687760086870087688800888
88600766877786788008778870087778776677800667800888868008677007886770068760078677800876
77700687777867878007777880077876677876700788700677886008688006778670077680067767800877
88600000000788886880000000086778776000077788686000000007676660000008777770076667800887
68600000000678886660000000076887767000067668776000000008786870000006678670067778600886
86700878787007666666767670076776800776788867768666877007688008676880067780066766600886
67700877877007877788668770066888800786776787678876878008868006876670076660067866800778
87800778678006766887688006786880067787676866686677800767677007888860066680076776600867
77700888868006866887676008866780067777877668888777800668886006886770067880087677600767
77876000000677767770000877676860000000000876768000078767667860000007766666800000076688
77686000000688676660000676678770000000000786866000086667787860000006687667800000068787