Do góry

robots.txt czyli zarządzanie indeksowaniem stron oraz przekierowania

czym jest seo

Często można spotkać się z sytuacją, że nie chcemy aby cała zawartość serwisu internetowego została zaindeksowana przez wyszukiwarkę. W takich sytuacjach pomocny bywa plik robots.txt. Jest to plik tekstowy umieszczony w głównym katalogu serwisu, gdzie umieszczone są wszystkie pliki serwisu. Szanowane roboty wyszukiwarek respektują zapisy tego pliku, natomiast trzeba tutaj zaznaczyć, że nie można tego traktować jako zabezpieczenie pewnych obszarów serwisu, a raczej jako sugestię. Istnieją roboty, które ignorują ten plik.
Struktura tego pliku jest dość prosta i składa się z 3 poleceń:

User-agent:
Disallow:
Allow:

User-agent – Przeglądarka/nazwa robota np. Googlebot dla robota wyszukiwarki Google. Jeśli chcemy aby obowiązywało dla wszystkich możemy wstawić ‚*’
Disallow – nie indeksuj
Allow – indeksuj (tylko dla niektórych robotów)

Przykładowa zawartość pliku robots.txt

User-agent: *
Disallow: /katalog

Do czego zatem możemy wykorzystać plik robots.txt?
Przede wszystkim to wskazania jakie strony/katalogi nie mają być indeksowane. Może to być katalog panelu administracyjnego serwisu np. ‚/administrator’.

User-agent: *
Disallow: /administrator

Wyłącznie indeksowania dla Ask.com i zezwolenie dla Googlebot’a:

User-agent: AskJeeves
Disallow: /nie_dla_ask_com

User-agent: Googlebot
Allow: /dla_googlebot

Dzięki robots.txt możemy również blokować powtarzające się treści, aby nie zostać posądzonym o powielanie treści w serwisie.

Przekierowanie 301

Przekierowanie 301 jest to sposób na przekierowanie użytkownika z jednego adresu na inny. Niby nic, bo można to zrobić inaczej, ale jest to najlepsze rozwiązanie z punktu widzenia pozycjonowania strony. Dzieje się tak dlatego, że ?siła?, jaką niesie za sobą jeden adres jest przekazywana drugiemu. Kod 301 oznacza Moved Permanently, czyli trwale przeniesiony. Przekierowanie 301 powinniśmy stosować w przypadku, gdy mamy kilka domen i wszystkie wskazują na tą samą stronę lub chcemy zmienić domenę na inną. Wtedy decydujemy, która domena jest naszą główną i pozostałe przekierowujemy na główną domenę. Stosując takie rozwiązanie wyszukiwarki typu Google czy Bing bez względu na domenę ?widzą? jedną stronę. Natomiast bez przekierowania 301 wyszukiwarki traktują treść znajdującą się pod poszczególnymi domenami jako różne strony, a siła linków jest rozproszona.

Najlepszym sposobem na przekierowanie 301 jest zapisanie odpowiednich reguł w pliku .htaccess. Za pomocą takiego przekierowania możemy przekierować cały ruch z jednej domeny na inną domenę. Poniżej przykład przekierowania z adresu www.domena1.com na www.domena2.com.

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.domena1.com(.*) [NC]
RewriteRule ^(.*)$ http://www.domena2.com/$1 [R=301,L]

Podobnie postępujemy, jeśli chcemy przekierować domenę bez www na www, bo należy pamiętać, że www.domena.com i domena.com to dla wyszukiwarki 2 różne strony. Przyjęło się, że przed nazwą domeny wstawiamy przedrostek www, ale w rzeczywistości nie jest on potrzebny. Dlatego warto zdecydować w jakiej formie wolimy przedstawiać nasz adres i taką stosować. Jeżeli decydujemy się na formę z www to należy przekierować adresy bez www na z www.
Przykład poniżej:

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

Możemy również przekierować adresy z www na bez www wtedy wpis w htaccess będzie wyglądał tak:

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

Kolejnym zastosowaniem takiego przekierowania jest zmiana struktury linków. Załóżmy, że do chwili obecnej mieliśmy strukturę: www.domena.com/strony/strona1.html i www.domena.com/strony/strona2.html.
Obecnie po modyfikacji mamy adresy www.domena.com/strona1.html oraz www.domena.com/strona2.html
Aby nie tracić już zaindeksowanych linków możemy pokazać, na jakie strony powinny wskazywać stare adresy. Realizacja zadania poniżej:

RewriteEngine On
RewriteRule ^strony/strona([0-9]{1,}).html$ strona$1.html [R=301,L]

 

Przekierowanie strony w JavaScript

Czasami zachodzi potrzeba przekierowania strony na inny adres. Najlepszym rozwiązaniem jest zastosowanie nagłówka header lub wykorzystanie do tego pliku .htaccess.
Ale co w sytuacji, gdy strona jest już załadowana? W tym wypadku pozostaje nam jedynie przekierowanie za pomocą JavaScritpt. Osiągnięcie takiego celu jest bardzo proste i wymaga jednej linii kodu. Do tego celu wykorzystamy właściwość location obiektu window:

window.location.href = "http://www.hadalawojciech.pl";

Korzystając z takiego przekierowania należy pamiętać, że użytkownik może wyłączyć obsługę JavaScript w przeglądarce i powyższy kod nie zadziała.

JavaScript pozwala na coś czego nie można zrobić za pomocą innego przekierowania. Mianowicie przekierowanie na inną stronę po kilku sekundach. Załóżmy, że chcemy wyświetlić użytkownikowi jakiś komunikat (np. o zmianie adresu strony) a następnie po kilku sekundach przekierować go na nowy adres.
Do tego celu dodatkowo musimy wykorzystać funkcję setTimeout() pozwalającą na wykonanie zadanej funkcji po określonej ilości milisekund. Funkcja ta ma konstrukcję:

setTimeout(funkcja,opóźnienie);

Gdzie funkcja może być nazwą funkcji lub funkcją anonimową. Opóźnienie podajemy w milisekundach. W naszym przypadku posłużymy się funkcją anonimową, a czas ustawimy ma 5 sekund (5000  milisekund).

<script type="text/javascript">
setTimeout(function(){
  window.location.href = "http://www.hadalawojciech.pl";
},
5000);
</script>

Jeśli podany kod wstawimy na stronie, to dana strona zostanie wyświetlona, a po 5 sekundach nastąpi przekierowanie.

Przekierowanie 301 w PHP

Przeczytaj również post Przekierowanie 301 jeśli nie wiesz co to przekierowanie 301.

Czasami zdarza się, że nie mamy możliwości dodania przekierowania 301 na poziomie .htaccess lub po prostu ilość stron, które chcemy przekierować jest duża i musimy skorzystać z tablicy mapowań adresów. W tym przypadku możemy wykorzystać PHP do przekierowania użytkownika na nowy adres. Najlepiej jeśli używamy mod_rewrite i każde żądanie przechodzi przez plik index.php. W takim wypadku wystarczy, że przekierowanie zaimplementujemy właśnie w pliku index.php.

Dla przekierowania ‚bez www’ na ‚www’ wklejamy poniższy kod na początku pliku index.php

<?php
if(substr($_SERVER['HTTP_HOST'], 0, 3)!='www') {
  header("HTTP/1.1 301 Moved Permanently");
  header("Location: http://www.hadalawojciech.pl".$_SERVER['REQUEST_URI']);
  header("Connection: close");
  exit;
}
?>

Dla przekierowania ‚z www’ na ‚ bez www wklejamy poniższy kod na początku pliku index.php

<?php
if(substr($_SERVER['HTTP_HOST'], 0, 3)=='www') {
  header("HTTP/1.1 301 Moved Permanently");
  header("Location: http://hadalawojciech.pl".$_SERVER['REQUEST_URI']);
  header("Connection: close");
  exit;
}
?>

Jeśli chcemy przekierować większą ilość adresów możemy stworzyć tablicę mapowań:

$map = array(
'/strona-1' => '/strona/1',
'/strona-2' => '/strona/2'
);

Teraz zamieniamy poniższy wpis:

header("Location: http://hadalawojciech.pl".$_SERVER['REQUEST_URI']);

na

header("Location: http://hadalawojciech.pl".$map[$_SERVER['REQUEST_URI']]);

Jeżeli mapowanie adresów jest bardziej skomplikowane możemy napisać funkcję, która będzie analizować adres wejściowy i przetłumaczy go na nowy adres.

Author avatar
Wojciech Hadała
https://hadalawojciech.pl
Na bieżąco śledzę trendy w SEO (optymalizacji pod kątem wyszukiwarek internetowych) i pozycjonowaniu (link building), ale interesuję się również social mediami, marketingiem dla urządzeń mobilnych oraz SXO (Search Engine Experience). Codziennie przekonuję się o tym, że praca może łączyć się z pasją, stając się tym samym ciekawym i pełnym wyzwań sposobem na życie.Teoria? Bardziej cenię sobie praktykę i wysoką efektywność działań. Dzięki doświadczeniu łączę w odpowiednich proporcjach SEO, User Experience oraz Web Performance, spełniając oczekiwania użytkowników poszukujących w sieci Twojego produktu lub usług.Więcej o posiadanych kwalifikacjach, certyfikatach i doświadczeniu dowiesz się na stronie O mnie. Szukasz wiedzy, inspiracji lub masz chwilę wolną i chcesz coś poczytać? Zapraszam na mój blog. Potrzebujesz pomocy lub porady w zakresie SEO / Link Building? Po prostu skontaktuj się ze mną.Polecam się do kontaktu w kwestiach technicznych oraz przy wytycznych do rozbudowy serwisu.

Zostaw komentarz, będę wdzięczny

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Używam plików cookie, aby zapewnić najlepszą jakość serwisu.