Napisane przez :
dnia: wtorek, 13 lis, 2007
6

Crawler Google w świecie Ajax

Post na Google Webmaster Central opowiedział nam odrobinę o problemach GoogleBota z indeksowaniem stron w technologii Ajax i trudnościach, jakich przysparza im zrozumienie struktury linków.

Web 2.0 jest bardzo szerokim pojęciem, jednak jedną z charakterystycznych rzeczy dla niego pod względem webdesignu jest użycie technologi Ajax. Fajna rzecz – Ajaksowa witryna ożywa na oczach użytkowników. Funkcjonalności implementowane w ten sposób często ułatwiają nawigację na stronach, polepszając tym samym user experience. Zaoszczędza nam odświeżania strony przy każdym kliknięciu i przyśpiesza przeglądanie witryny. Jednak mimo tego, że serwisy Web 2.0 rozrosły i rosną jak grzyby po deszczu oraz napisano wiele na ten temat, to jednak są 2 istoty, którym nie podoba się owo ulepszenie. Jedną z nich jest użytkownik, który z wielu powodów nie używa JavaScirptu przy przeglądaniu zasobów Sieci. Drugą natomiast są rzesze crawlerów pracujących dla wyszukiwarek. Roboty te znane są z dwóch własności: poszukują nowych stron i aktualizują witryny już im znane oraz nie lubią języka JavaScript. Z kolei Ajax to nic innego jak Asynchronous JavaScript and XML.

Roboty nie lubią języka JavaScript

O ile robot Google świetnie sobie radzi z rozumieniem i podążaniem za linkami o strukturze HTML jednak ma trudności z JavaScript. Google odwołuje się nie tylko do tych, którzy nie używają JavaScript, ale także do ludzi korzystających ze screenreaderów (czytników ekranowych) oraz z urządzeń mobilnych. Jeżeli webmaster dopiero zaczyna tworzyć swój serwis, Google radzi rozpocząć swój projekt od używania wyłącznie HTML. Natomiast dopiero po ukończeniu struktury linków i umieszczeniu zawartości podrasować wygląd oraz nawigację Ajaksem. Boty Googla wtedy będą sobie wesoło hasać po serwisie, a użytkowicy cieszyć się z dobrodziejstw JavaScirpt.

Google także pokazuje jak konstruować linki, które będą zrozumiałe dla botów i jednocześnie wykorzystywały możliwości Ajax. Sekret tkwi w tym, aby konstruować link jak normalny odnośnik HTML i jednocześnie korzystać z funkcji ajaksowych. Dzięki temu linki są statyczne, więc wyszukiwarki potrafią poprawnie je rozpoznać.

 <a href=”ajax.htm?foo=32” onClick=”navigate('ajax.html#foo=32'); return false”>foo 32</a> 

Mimo, że zainteresowanie Google użytkownikami używającymi screenreaderów i korzystającymi z urządzeń mobilnych może być dyskusyjne, to jednak deweloperzy pracujący z Ajaksem uzyskali jasną wskazówkę jak uczynić linki możliwymi do indeksowania.
Inne dobre źródła:

Komentarzy 6

  1. Riddle pisze:

    Jeśli mogę dodać coś do posta, to najlepiej konstruować linki bez JavaScriptu i dodawać go w zewnętrznych plikach. HTML:

    Foo 32

    JavaScript (tutaj jQuery):

    $('a.navigate').click(function(e) { navigate(this.href); e.preventDefault(); });
    

    :)

  2. Super, bardzo cenna uwaga – dzięki!

  3. marek pisze:

    Mam pytanie – pobralem niedawno wtyczne jquery do paginacji stron. Wszystko byloby w porzadku gdyby nie fakt ze gdy sprawdzam zrodlo strony (korzystam z Mozilli Firefox) tabele z linkami sie nie wyswietlaja. I w zwiazku z tym mam pytanie ? Czy roboty Googla zindeksuja zawartosc takiej strony ? pozdrawiam

  4. Marku,
    ciężko cokolwiek powiedzieć nie dysponując adresem witryny. Jeśli nie chcesz publikować go w komentarzu – prześlij korzystając z formularza kontaktowego.

  5. marek pisze:

    http://www.lolkowato16.cba.pl/Filmy/Rundown/Filmy_Rundown.php to jest ten link:) problem dotyczy paginacji ktora wysuwa sie po nicisnieciu buttona rozwin wczesniej korzystalem z pagnacji ktora jest umieszczona na samym dole ale z nia nie mam problemu:D PS jesli zainteresuje kogos moja strona to prosze korzystac z lewego menu gdyz rowijane menu nie jest jeszcze podlinkowane. Strona ogolnie jest jeszcze w budowie – bedzie pod zupełnie inna domena . Dziekuje za szybka odpowiedz na poprzedniego posta i jeszcz raz pozdrawiam

  6. Bartek Krzemień pisze:

    Marku,
    tabelka z paginacją się nie wyświetla, ponieważ znajduje się wewnątrz diva z domyślnie przypisanym stylem display:none; Problem jednak leży gdzie indziej – sama tabelka wewnątrz diva istnieje, ale jest niestety pusta. Nie zagłębiałem się w kod Twojej paginacji, nie mniej wygląda że to właśnie on odpowiada za wypełnienie tabeli linkami.

    Aby poprawić paginację powinieneś upewnić się, że zawartość tabeli nie jest generowana przez JavaScript, lecz trafia do przeglądarki (czy robota) jako statyczna zawartość dokumentu HTML. Dysponując wypełnioną tabelką zastosuj jakąś metodę z popularnej biblioteki JS (jQuery się nada jak najbardziej) w celu wykonania efektu zwijania i rozwijania.

    Ważne jest stosowanie znanego kodu – znanego w sensie popularności. Inżynierowie wyszukiwarek uczą je rozpoznawać zastosowanie JS zaczynając od najpopularniejszych bibliotek. A to, że np. Googlebot rozumie JS możesz przeczytać w tekście Mendaksa lub między wierszami w tym video.

Dodaj Komentarz

XHTML: Możesz użyć następujących tagów: <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">