AJAX zmniejsza wyszukiwalność?

Czy użycie AJAX'a może spowodować duży spadek wyszukiwalności? Witryna w Ajax'ie nie posiada unikalnych adresów URL co na pewno negatywnie wpływa na wyszukiwarki. Lepiej postawić na szybkość działania strony i kombinować z wyszukiwarkami, czy lepiej stosować AJAX jako dodatek?

Są jakieś sposoby aby prosta strona praktycznie zupełnie w Ajax'ie została zaakceptowana dobrze przez wyszukiwarkę? Na pewno używacie często takich rozwiązań, jak wrażenia i spostrzeżenia?

2 lata, 4 miesiące temu | edytowane przez: raphpl 13371727

  • No cóż, jeżeli cały content będziesz miał dostępny jedynie dynamicznie - generowany w locie przez javascript - to rzeczywiście wyszukiwalność takiego czegoś będzie znikoma.

    Jak to rozwiązać w praktyce aby wilk był syty i owca cała?

    Ano tak, żeby każdy stan Twojego interfejsu dało się osiągnąć URL-em. Jeżeli masz stronę ProductDescription.php, która sama z siebie zawiera niewiele więcej niż 5 zakładek Page1 ... Page5, które są ładowane po Ajaxie, to zrób inaczej:

    Stwórz sobie stronę ProductDescription.php przyjmującą parametr pageNo, np. w ten sposób: ProductDescription.php?pageNo=3. Kiedy po raz pierwszy wyświetlasz tą stronę, przekaż jej parametr pageNo=1 i statycznie załaduj zawartość pierwszej wyświetlanej zakładki - no bo przecież wiesz, że ją będziesz musiał i tak pokazać. Kliknięcia na kolejne zakładki powodują podmianę zawartości strony po AJAX-ie.

    I teraz zrób dwie rzeczy. Niech ProductDescription.php może wyświetlać statycznie (w sensie AJAX-owym oczywiście, dynamicznie po stronie serwera) dowolną z zakładek, na podstawie parametru pageNo.

    W tym momencie masz już załatwione dynamiczne zmiany po AJAX-ie, oraz dostępność każdej z zawartości na podstawie URL-a. Pozostaje to połączyć.

    Niech więc Twoje klikalne nagłówki zakładek będą tradycyjnymi linkami <a href="" />. Jeżeli użytkownik będzie miał wyłączony JavaScript, albo będzie korzystał ze screen readera dla niewidomych, albo będzie nim pająk Google - to będzie mógł "kliknąć" i przejść bezpośrednio pod URL kolejnej zakładki.

    Jeżeli zaś JavaScript będzie włączony, to kontrolę przejmie handler kliknięcia dołączony do takiego linku. Obsłuż w nim ładowanie treści po AJAX-ie, a następnie zwróc false - zdarzenie kliknięcia linku nie trafi do przeglądarki i ta nie będzie próbować przeładować całej strony.

    Takie coś dużo łatwiej zrobić, niż wydaje się na pierwszy rzut oka, jeżeli korzysta się z jakiegoś frameworka MVC. W tym przypadku będziesz zwracał te same widoki z tymi samymi danymi, niezależnie od metody wyświetlania treści (statycznie czy AJAX) - zmieni się jedynie użyty layout (w pierwszym przypadku to będzie cały szablon strony, w drugim - nic, albo prosty div jako wrapper).

    Co jeszcze... Są piedółki typowo realizowane po AJAXie - dodanie artykułu do ulubionych, ocena wpisu itd. Im też warto dać alternatywę server-side, bez użycia javascriptu - bo bez tego wspomniane już osoby korzystające ze sceen readerów na ogół mogą jedynie pomarzyć o użyciu danej aplikacji.

    Powodzenia, w razie wątpliwości pytaj dalej.

  • Szkielet, t.zn. <head> </head>, pozostaw normalnie. Metatag keywords, description, oraz tag <title> wykonaj w normalnym HTML. Te właśnie dane wpływają na wyszukiwanie.

  • Tak, niewłaściwe użycie Ajaxa może zmniejszyć wyszukiwalność i pozycję w indeksach. Aby temu zapobiec Google opublikowało zestaw reguł już w 2007 roku jak używać Ajaxa aby jego przeszukiwanie było dobre.

    Główne wskazówki to:

    1. Podadresy AJAXowe oznaczamy nie # a #!. Bot Google rozpozna że jest to podstrona a nie kotwica strony (odnośnik do miejsca w dokumencie). Jest gotowy mod_rewrite na wprowadzenie takiej zamiany w locie bez zmiany kodu strony.

    2. Oprogramowanie serwera WWW (Apache, Lighttd) tak aby zwrócił wynik requestów AJAXowych, które będą zawierać ?escapedfragment_=. Ciąg takich znaków zostanie użyty przez bota, aby odczytać treść z "podstrony" #!. Wtedy serwer musi odpalić swoją przeglądarkę wewnętrzną, która zwróci wynik requesta.

    Problem jak wspomniał michu polega na tym, że to podejście dalej nie rozwiązuje problemów przeglądarek mobilnych i spraw dostępności (czytniki stron dla osób niewidzących). W jakim więc kierunku pójść? Można prowadzić na raz stronę w wersji "ajaxowej" i "bezajaxowej". Jeżeli natomiast nie zależy CI na osobach niewidziących (a powinno Ci zależeć) i nie masz strony mobilnej / strona mobilna to oddzielna strona (tak jak przeważnie ma to miejsce) to możesz użyć rad Google.

    Ja osobiście jednak bym się wstrzymał do czasu wprowadzenia standardów rozwiązujących wszystkie problemy, tym bardziej że wymaga to dosyć dużej ingerencji w kod strony czy w serwer. Poza tym trzeba wziąć też pod uwagę to, czy i jak bardzo zależy Ci w Twoim projekcie na użytkownikach z wyszukiwarki. Jeżeli piszesz aplikację webową, narzędziową gdzie treści nie mają znaczenia, to możesz przecież bez problemu zignorować małą wyszukiwalność bo nie będzie Ci ona po prostu potrzebna. Więc problem dotyczy stron content-based.

    Więcej: http://searchengineland.com/googles-proposal-for-crawling-ajax-may-be-live-34411 http://webhosting.pl/Nowa.propozycja.systemu.indeksowania.stron.ajaksowych.wchodzi.juz.w.zycie

  • Tak samo jak w technologii FLASH, tak samo AJAX - jest możliwość stworzenia własnej sitemapy. Google zawsze próbuje czytać http://www.domena.pl/sitemap.xml - i dzięki temu Google próbuje indeksować strony :)

    Więc jeśli jest sposób na stworzenie takiej sitemapy to stwórz ją ;]

  • Korzystałam wiele razy z sitemap.xml - tak jak napisał to BlueMan. No, ale niestety, ale zasob musi byc dostepny przez GET.

    @michu - zgadza się. Sitemapa nie zagwarantuje zaindeksowania materiałów. Nie ma sposobu na zagwarantowanie tego. Nie mam dużego wpływu na to.

Zaloguj się, aby dodać swoją odpowiedź