Sitemapy
17 lipca 2007
Właśnie generuję sitemapy dla moich wszystkich stron www więc pomyślałem, że napiszę parę słów o tym co to są te sitemapy. Może komuś się przyda
Na pomysł wpadło google. Chodzi o to aby podsunąć wyszukiwarce w jakiś strawny sposób linki do wszystkich podstron, które chcielibyśmy aby były zaindeksowane. Przy okazji możemy dodać kilka informacji o każdym linku, które przydadzą się wyszukiwarce.
Pomysł szybo się przyjął. Google, Microsoft i Yahoo dogadały się i razem pracują nad standardem sitemaps. Na głównej stronie projektu (http://www.sitemaps.org/) możemy przeczytać:
Mapy witryn zapewniają webmasterom prostą metodę informowania wyszukiwarek o dostępnych do zaindeksowania stronach witryn. Mapa witryny w najprostszej postaci to plik XML zawierający listę adresów URL w witrynie oraz dodatkowe informacje o każdym adresie URL (dacie ostatniej aktualizacji, częstotliwości zmian, ważności w porównaniu z innymi adresami URL w tej witrynie). Informacje te umożliwiają wyszukiwarkom inteligentniejsze zaindeksowanie witryny.
Roboty indeksujące zazwyczaj wykrywają strony za pomocą linków znajdujących się w indeksowanej witrynie oraz innych witrynach. Mapy witryn uzupełniają te dane, aby umożliwić robotom indeksującym, które obsługują protokół Sitemap, pobranie wszystkich adresów URL zawartych w mapie witryny i przeanalizowanie powiązanych z nimi metadanych. Użycie protokołu Sitemap nie gwarantuje umieszczenia stron internetowych w indeksach wyszukiwarek, ale znacznie ułatwia indeksowanie witryny robotom.
Jeżeli chcesz bawić się w pozycjonowanie stron www to praktycznie musisz generować sitemapy dla swoich witryn. Na szczęście nie musimy samodzielnie tworzyć plików z sitemapami. Wyręczą nas programy.
Jest wiele rozwiązań generujących sitemapy. Ja polecam dwa sposoby.
- Jeżeli mamy stronę, która jest oparta o jakieś popularne oprogramowanie np. blog na WordPress lub forum Internetowe IPB to w sieci z łatwością znajdziemy pluginy, które automatycznie wygenerują nam sitemapy.
- Można użyć jakiegoś programu, który zacznie przeglądać naszą stronę i wyszuka wszystkie linki tak jak to robią roboty wyszukiwarek.
Zaletą pierwszego rozwiązania jest fakt, że skrypty te łączą się bezpośrednio z bazą danych, pobierają stamtąd informacje i na ich podstawie generują linki. Nie stracimy więc dzięki temu tak cennego transferu. Zaleta drugiego sposobu to fakt, że zaindeksujemy w ten sposób wszystkie podstrony bez względu na to czy strona działa np. na jakimś popularnym cms’ie czy na naszym autorskim rozwiązaniu. Tak jest też wygodniej, nie musimy bawić się w dziesiątki różnych pluginów i wszystkie sitemapy mamy zgromadzone w jednym miejscu. Wadą jest to, że taki program musi odwiedzić nasze wszystkie podstrony i zje nam przy tym spore ilości transferu a cały proces trochę potrwa… Druga wada to fakt, że robot wejdzie na każdy możliwy adres i czasami indeksuje kilka razy jedną podstronę bo zmienia się np. tylko jakiś nieistotny parametr w adresie po „?”. Z mojego doświadczenia wynika jednak, że to może być zaleta
Tak jest przynajmniej w google. Gdy podsuniemy im taką sitemapę z zawyżoną ilością podstron to google może dać się nabrać i podskoczy nam wynik przy zapytaniu „site:twojadomena.pl”. A to jest bardzo istotne w systemach wymiany linków
Ja osobiście preferuję drugi sposób. Jest ten blog, jest też forum Tomaszowa i do tego są pluginy ale co z resztą? Mam różne strony postawione na różnym oprogramowaniu (także na autorskich skryptach) więc pluginami i tak nie załatwiłbym wszystkiego.
Używam GSiteCrawler, moim zdaniem najlepszy program tego typu do generowania sitemap. Można w nim znaleźć wiele opcji konfiguracyjnych, program radzi sobie z wieloma problemami występującymi podczas zbierania adresów. Zachęcam do przyjrzenia się opcjom konfiguracyjnym. Można banować konkretne strony, usuwać podane wzorce z adresów czy usuwać parametry, które występują w adresie po „?”. Można wszystko zautomatyzować do tego stopnia, że program sam będzie się martwił o generowanie sitemap, wysyłanie ich na ftp i powiadamianie o tym google! Cały czas możemy sobie przeglądać statystyki indeksowania
W tej chwili mam w tym programie dodanych 8 serwisów, które łącznie będą pewnie miały około 500 tys adresów. Wszystko działa wyśmienicie, raczej nie ma problemów ze stabilnością. GSiteCrawler sam generuje wszystkie pliki, sam martwi się o to aby nie przekroczyć limitów nałożonych przez protokół i potrafi skompresować pliki co znacznie skróci czas wysyłania ich na serwer (protokół sitemaps dopuszcza możliwość kompresji a nawet ją zaleca).
Wspomnę jeszcze o limitach. Jedna sitemapa może maksymalnie pomieścić 50 tys adresów i w postaci nieskompresowanej nie może przekroczyć 10MB. Limity te zostały nałożone aby ludzie nie musieli zapychać swoich serwerów ogromnymi plikami (niektóre, zwłaszcza darmowe konta hostingowe, mają limity wielkości plików przechowywanych na serwerze) i aby oszczędzić trochę transfer (po co za każdym razem ściągać np. 200 tys adresow skoro dochodzi tylko kilka/kilkanaście linków dziennie?). No dobrze, ale co zrobić jeżeli nie zmieścimy się w limitach? Trzeba stworzyć jeszcze jeden plik, indeks sitemap. Są w nim „wypisane” wszystkie sitemapy i wyszukiwarka ściąga sobie kolejne pliki. Indeks też ma limity: maksymalnie 1 tys adresów sitemap i do 10MB. Razem (zakładając, że adresy będą na tyle krótkie, że nigdy nie przekroczymy limitu 10MB na jeden plik i zawsze wykorzystamy pełen limit adresów) daje nam to 50 000 000 podstron. Raczej każdemu powinno to starczyć
Oczywiście, jak już wyżej wspomniałem, program GSiteCrawler sam martwi się o limity i generuje odpowiednie pliki.
Skoro piszę tak szczegółowo to dodam jeszcze, że dla wyszukiwarek adresy www.tarnaski.eu i tarnaski.eu to dwie różne strony. W sitemapach musimy się zdecydować na to czy stosować przedrostek czy nie (zalecam stosować i nie chodzi tu o same sitemapy ale o coś innego, kiedyś napiszę o co
). Do sitemapy nie dodamy też adresów z subdomenami czyli nie zostanie zaakceptowany np. adres www.blog.tarnaski.eu.
Ględzę cały czas o protokole, programach itd. a nadal nie napisałem co zrobić z tymi sitemapami żeby stały się użyteczne
Są trzy sposoby:
- Dodaj sitemapy do wyszukiwarek korzystając z ich wbudowanych systemów zarządzania sitemapami.
- Dodaj odpowiednią informację do pliku robots.txt np:
Sitemap: [miejsce]
Gdzie [miejsce] to pełen adres do pliku sitemapy np. http://www.tarnaski.eu/sitemap.xml.gz - Wysłać informację przez protokół HTTP czyli w uproszczeniu wywołać taki adres:
[adres wyszukiwarki]/ping?sitemap=http://www.tarnaski.eu/sitemap.xml.gz
Jeżeli chcemy tego dokonać programowo to należy pamiętać o odpowiednim zakodowaniu znaków występujących w adresie naszej sitemapy czyli:
[adres wyszukiwarki]/ping?sitemap=http%3A%2F%2Fwww.tarnaski.eu%2Fsitemap.xml.gz
Ja stosuję na razie pierwszy sposób bo zależy mi właściwie tylko na google (ich panel) ale chyba czas przejść na robots.txt.
Mam nadzieję, że ktoś skorzysta z tego co tu napisałem. Generowanie map jest już raczej obowiązkiem jeżeli poważnie podchodzimy do kwestii pozycjonowania swoich stron www. Wszystkie informacje o protokole można znaleźć na www.sitemaps.org. Miłego generowania!
Blog przede wszystkim o Internecie i mojej pasji jaką jest tworzenie stron www. Ale nie ograniczam się do jednej tematyki, piszę o wszystkim o czym mam ochotę :-)
jjj napisał: 23.07.07 o godzinie 21:39
sluchaj czy mozesz podac mi swoje gg..? bo mam do ciebie sprawe odnosnie osady bo mam problem z wyslaniem do ciebie emaila. wiem ze w opisie cos o mnie masz zeby nie pisac na gg ale byla bym wdzieczna… ALBO JAK CHCESZ WYSLIJ MI EMAILEM
MariuszT napisał: 24.07.07 o godzinie 21:46
Nawet tu mnie dosięgli… :/ :X
kwiatek napisał: 02.08.07 o godzinie 12:31
bywa i tak