SEO i .htaccess – przydatne tricki dla pozycjonera

Plik .htaccess i jego zawartość potrafią doprowadzić niejedną osobę do obłędu. Nie zmienia to jednak faktu, że dzięki .htaccess możemy zdziałać prawdziwe cuda z naszą stroną internetową. Wiedza o składni .htaccess i mod_rewrite daje duże możliwości w optymalizacji i modyfikacji naszej strony pod kątem SEO. Poniżej przedstawiam kilka najważniejszych tricków w .htaccess, które powinien znać każdy pozycjoner i webmaster.

Przekierowanie 301 starych podstron na nowe

Częsty przypadek – z różnych powodów trzeba zmienić adres URL podstrony. Do tego świetnie nadaje się .htaccess i mod_rewrite. Oto fragment kodu dla pojedynczych przekierowań:

Redirect 301 /stara-podstrona /nowa-podstrona

Powyższy kod po prostu wykonuje przekierowanie 301 adresu starego na nowy. Aby przekierować wiele podstron jednocześnie można skorzystać z wyrażenia regularnego:

RewriteRule ^stary/(.*) nowy/$1 [L,R=301]

Taki kod przekieruje 301 wszystko z folderu stary do nowy. Oczywiście można tu zastosować o wiele bardziej wyrafinowane wyrażenie regularne, dostosowane do potrzeb.

Przekierowanie na nową domenę

Zmiana domeny na nową najczęściej ma miejsce przy zmianie nazwy firmy. Przekierowanie 301 domeny na nową może też być ucieczką od filtra, który posiada stara domena. Jest to też świetny sposób na uniknięcie duplicate content gdy domena ma drugi alias. Możliwości jest wiele, ja najbardziej lubię poniższe rozwiązanie:

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

Istotny jest znak wykrzyknika (!). Powyższy kod działa tak: Jeżeli host inny niż www.domena.pl, przekieruj 301 wszystkie podstrony na www.domena.pl/$1

Ten kod przy okazji rozwiązuje poniższy problem kanoniczności domeny, czyli www i bez www.

Przekierowanie www bez www (kanoniczność domeny)

Działanie strony zarówno pod adresem domena.pl jak i www.domena.pl jest bardzo częstym błędem optymalizacyjnym spotykanym podczas audytów SEO na wielu stronach. Łatwo to wyeliminować stosując poniższą regułę:

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

Działanie jest proste: Jeżeli host domena.pl to przekieruj 301 na www.domena.pl. Dbając o kanoniczność domeny pamiętaj także o konsekwencji linków www/bez www w kodzie strony oraz w mapie witryny sitemap.xml

Przekierowanie w drugą stronę, czyli z www na bez www jest równie proste:

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

W artykule Z WWW czy bez WWW? – Adres strony i .htaccess opisałem dokładniej dlaczego kanoniczność domeny jest ważna.

Indeks plików w folderach

Dobrym nawykiem jest taka konfiguracja serwera, aby uniemożliwiał on listowanie zawartości folderów. Jeżeli jednak z jakiegoś powodu chcemy umożliwić listowanie plików w folderze, posłuży nam do tego poniższa dyrektywa w .htaccess:

Options All +Indexes

Aby ukryć pliki w folderach należy zmienić na:

Options All -Indexes

W artykule Lista plików na serwerze i htaccess opisałem dodatkowe dyrektywy, które można tu wykorzystać.

Folder na hasło

Dzięki plikom .htaccess i .htpassword można zabezpieczyć hasłem folder na serwerze. Jest to przydatne przy różnych testach i przed wdrożeniem nowej wersji strony :) Nie jest to zbyt zaawansowane zabezpieczenie, dlatego nie polecam go do ważnych rzeczy.

W artykule Hasło poprzez .htaccess i .htpasswd opisałem dokładnie jak to zrobić.

Zabezpieczenie przed hotlinkowaniem

Jeżeli transfer jest problemem dla Twojego serwera i nie chcesz aby ktoś wyświetlał Twoje multimedia na swojej stronie, rozwiązaniem może być zabezpieczenie przed hotlinkowaniem w .htaccess. W artykule Plik .htaccess w walce przeciw z hotlinking opisałem to dosyć dokładnie z przykładami.

Przy okazji dodam, że hotlinkowanie może być jedną z taktyk SEO dla Twojej strony, dlatego zastanów się czy warto bronić się przed tym zjawiskiem :)

Dedykowane strony błędów

Możliwość ustawienia własnych stron błędów serwera to chyba najprostsza czynność w .htaccess. O ile większość CMSów potrafi samodzielnie obsłużyć błąd 404 Nie znaleziono, o tyle pozostałe popularne błędy 403, 410, 500, 503 itp często pozostają domyślne z serwera, brzydkie i odstraszające użytkowników.

Tutaj kod jest prosty i nie wymaga dodatkowego komentarza. Wystarczy ustawić wcześniej przygotowane pliki błędów jak w przykładzie poniżej:

ErrorDocument 403 /403.html
ErrorDocument 500 /500.html

Blokowanie adresów IP

Blokowanie dostępu do strony potrafi być bardzo przydatne, szczególnie w sytuacjach kryzysowych. Miałem już kilka sytuacji, w których jakiś serwer „męczył” mój hosting lub spamował formularze na potęgę. W takiej sytuacji wydajność naszego serwera można ocalić blokując adres IP atakującego delikwenta:

Order Allow,Deny
Allow from all
Deny from 12.148.209.196
Deny from 87.207.112.205

Podałem tu dwa przykładowe IP, lista może być dłuższa.

Generator pliku .htaccess

Jeżeli składnia plików .htaccess jest dla Ciebie skomplikowana lub ciężko Ci ją zapamiętać, w sieci znajduje się wygodny generator .htaccess. Znajdziesz go na stronie www.htaccesseditor.com opisywałem go także w artykule Edytor plików .htaccess.

Testowanie przekierowań

Ponieważ testowanie poprawności przekierowań i statusów HTTP potrafi być czasem kłopotliwe, jako bonus podaje bardzo proste i użyteczne narzędzie do podglądu nagłówków oraz źródła strony. Na co dzień w tym celu wykorzystuję narzędzie web-sniffer.net. Dostępne są także wtyczki do przeglądarek, które potrafią to samo, jednak to jest najprostsze dostępne narzędzie, nie wymagające instalacji.

Powyższa lista jest także niejako ściągawką dla mnie samego, ponieważ na co dzień wykorzystuje wszystkie opisane tu tricki w pliku .htaccess. Czy pominąłem coś istotnego?