Ako optimalizovať jednostránkové weby pre vyhľadávače

google-crawler

Keď Google a ostatné vyhľadávače indexujú stránky, nespúšťajú pri tom JavaScript. Toto spôsobuje, že jednostránkové weby (z ktorých väčšina spolieha práve na JavaScript) sú v obrovskej nevýhode v porovnaní s tradičnými webovými stránkami.

Nemať stránku na Googli môže znamenať koniec firmy – a práve toto môže zvádzať neinformovaných k tomu, aby opustili jednostránkové weby úplne.

Avšak – jednostránkové weby nedávno dostali výhodu oproti tradičným stránkam v optimalizácií pre vyhľadávače (SEO), pretože Google a ostatní rozpoznali problém. Vytvorili mechanizmus pre jednostránkové weby, ktorý nielenže indexuje ich dynamické stránky, ale taktiež ich optimalizuje špeciálne pre Crawlery (prehľadávacie roboty).

V tomto článku sa zameriame na Google – ale aj ďalšie veľké vyhľadávače ako Yahoo! a Bing podporujú rovnaký mechanizmus.

Ako Google prechádza jednostránkový web

Keď Google indexuje tradičnú webstránku, jeho crawler (nazývaný Googlebot) najskôr skenuje a indexuje obsah na najvyššej úrovni URI (napr.: www.mojastranka.sk). Akonáhle je tento proces dokončený , crawler prechádza všetky odkazy na danej stránke a tiež ich indexuje. Ďalej prechádza všetky odkazy na najsledujúcich stránkach, a tak ďalej. Nakoniec indexuje všetok obsah stránky a jej združených domén.

Keď sa Googlebot snaží o indexovanie jednostránkového webu, všetko čo vidí v HTML je jeden prázdny kontajner (zvyčajne prázdny div alebo body tag). To znamená, že na stránke nie je nič na indexovanie, žiadne odkazy na prechádzanie a teda ju aj adekvátne „indexuje“.

Ak by to končilo týmto, znamenalo by to koniec jednostránkových webov pre mnoho webových aplikácií a stránok. Našťastie si Google a ostatné vyhľadávače uvedomili dôležitosť jednostránkových webov a prišli s nástrojmi, ktoré umožňujú vývojárom poskytnúť informácie crawlerom (tie môžu byť ešte lepšie ako pri tradičných stránkach).

Ako spraviť jednostránkový web dostupný pre vyhľadávacie roboty?

Prvý krok k tomu, aby bola naša stránka prehľadávateľná crawlerom, je uvedomiť si, že náš server rozozná, či je požiadavka odoslaná crawlerom alebo človekom používajúcim webový prehliadač a dokáže podľa toho zareagovať. Keď je naším návštevníkom človek používajúci webový prehliadač, odpovedá bežne. Crawlerom ukazuje optimalizovanú stránku, na ktorej uvidí to čo chceme my, vo formáte, ktorý je pre neho jednoduchý na čítanie.

Ako teda vyzerá domovská stránka nášho webu, ktorá je optimalizovaná pre crawlera? Pravdepodobne obsahuje logo (alebo iný obrázok, ktorý chceme aby sa zobrazil vo vyhľadávaní), optimalizovaný text (SEO) vysvetľujúci o akú stránku ide a zoznam HTML odkazov na stránky, ktoré chceme aby boli indexované Googlom. Stránka však neobsahuje žiadnu CSS úpravu alebo žložité HTML štruktúry a taktiež nemá JavaScript alebo odkazy na oblasť stránky, ktorú nechceme aby Google indexoval (napr. Právne upozornenie). Nasledujúci obrázok ukazuje ako by mohla byť stránka zobrazená prehliadaču (vľavo) a crawlerovi (vpravo).

google-crawler-optimize

Prispôsobenie obsahu pre vyhľadávacie roboty – crawlery

Jednostránkové weby obvykle používajú vo svojich odkazoch anchor (#!), keď odkazujú na rozličný obsah. Crawlery a ľudia otvárajú tieto odkazy rozličným spôsobom.

Ak by na našom jednostránkovom webe vyzeral odkaz na stránku používateľa (user page) takto : /index.htm#!page=user:id,123, crawler by videl znak #! a vedel by, že má hľadať stránku s URI /index.htm?_escaped_fragment_=page=user:id,123. Keď teda vieme, že crawler bude nasledovať vzor a bude hľadať toto URI, môžme naprogramovať server, aby na túto požiadavku reagoval HTML snapshotom verzie stránky tak, ako by vyzerala v prehliadači vyrenderovaná pomocou JavaScriptu.

Snapshot stránky bude indexovaný Googlom, ale hocikto, kto klikne na náš odkaz v google vyhľadávaní bude presmerovaný na /index.htm#!page=user:id,123. JavaScript jednostránkového webu potom vyrenderuje stránku podľa očakávania.

Toto poskytuje vývojárom jednostránkových webov možnosť upraviť svoje stránky do podoby špeciálne pre Google a špeciálne pre používateľov. Namiesto písania textu, ktorý bude zreteľný a zaujímavý pre používateľov a zároveň zrozumiteľný crawlerom môžu byť stránky jednoducho optimalizované na oboje. Spôsob, akým crawler prechádza našu stránku môžme kontrolovať. Toto nám poskytuje možnosť nasmerovať používateľov z Google vyhľadávania na určité vstupné stránky. Bude za potreby viac práce zo strany programátora, ale môže to mať veľké výhody pokiaľ ide o pozíciu vo výsledkoch vyhľadávania a zachovania zákazníkov.

Odhalenie webového crawlera Googlu

Googlebot sa sám ohlasuje serveru vytvorením požiadavky s reťazcom user-agent Googlebot/2.1 (+http://www.googlebot.com/bot.html). Aplikácia Node.js dokáže overiť tento reťazec a poslať spať optimalizovanú stránku pre crawlera, ak sa tento reťazec zhoduje. Ak sa to nepodarí, môžme požiadavku vybaviť obvyklým spôsobom.

Zdá sa, že by to bolo obtiažne otestovať, pretože nevlastníme Googlebot. Avšak Google poskytuje služby, ktoré sú verejne dostupné pre vývojárov stránok ako súčasť jeho Google Webmaster Tools, ale jednoduchší spôsob otestovania je imitovať náš reťazec user-agent. V minulosti bolo potrebné použiť príkazový riadok, ale nástroje pre vývojárov v Google Chrome to robia ešte jednoduchším.

  • Kliknite v Google Chrome na ikonku troch vodorovných čiar (vpravo od panelu s adresou), potom vyberte z menu ďalšie nástroje a kliknite na nástroje pre vývojárov.
  • Vpravo dole sa nachádza ikona ozubeného kolieska, kliknite na ňu a uvidíte pokročilé vývojarske možnosti ako napríklad vypnutie cache.
  • V druhom okienku (Overrides), začiarknite menovku User Agent a vyberte akékoľvek číslo user agentov z drop-dpwn menu v Chrome, do Firefoxu, Internet Exploreru, Ipadu, a ďalších. Googlebotov agent nie je predvolené nastavenie. Ak ho chcete použiť, vyberte Ostatné a skopírujte reťazec user-agent do poskytnutého vstupu.
  • Teraz, keď sa okno imituje ako Googlebot, otvorte akékoľvek URI a mali by ste vidieť stránku pre crawlera.

Na záver

Je zrejmé, že rôzne aplikácie budú mať odlišné potreby ohľadom toho, čo robiť s crawlermi, ale mať vždy jednu stránku vracajúcu sa Googlebotu pravdepodobne nestačí. Taktiež sa budeme musieť rozhodnúť, ktoré stránky chceme odhaliť a poskytnúť spôsoby pre našu aplikáciu aby zmapovala _escaped_fragment_=key=value URI k obsahu, ktorý chceme ukázať.

Možno sa s tým budete chcieť vyhrať a nasmerovať odpoveď zo servera na frond-end framework, ale často sa používajú jednoduché spôsoby vytvorením si vlastných stránok pre crawlery uložením do osobitných súborov určených pre crawlery.

Existuje omnoho viac oprávnených crawlerov, takže keď upravíme náš server pre Google crawler, môžeme ho rozšíriť a zahrnúť aj ostatné.