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

66677000000677887776600768688870000000000687768000000768776880000007887686600000086788
88687000000768668867600777778780000000000676876000000686668670000007787867700000066676
66700686768007667680000667876777877778600876600788768007678006766870076760078688700768
68800677866006886860000877666686678667600686600887677008866008766760078780078887600866
87700668776007768866700868676867687780076888700786868007776778886880067860068686700768
78600678687008878667600877787888776870066667800868787008877877668770077880077766800778
67600876687006788768800686786677766008688667700676877007787776800006876878700000000867
77600687887008876888600667888877767008666678600776688008877686600008787668600000000786
76800867867007766768600778676686700686886668600876668006887776888670067688868667700866
78600687778007886678600677776786700878678766700777676007678777777860066676687778600776
67800867667007878888600776668787700868876877700877886007678006786680066878868780077877
67700687786008787776800687666687600876886678600678678006766007776780077877677680088678
68868000000777668760000008788686800787668786687000000668677770000007688688800006786678
86766000000787786780000007878786600878666678867000000787877880000007888776600008886688