Indexace AJAX pomocí hashbang

Veškerý obsah stránek vytvořený pomocí technologie AJAX se načítá dynamicky na straně klienta a je pro robota (crawlera) neviditelný. S použitím techniky hashbang lze stránky napsané v AJAX indexovat.

Důležité pojmy

Hash fragment: Všechny znaky v URL po #. Tyto fragmenty se tradičně používají k označení jedné části statického HTML dokumentu. Nic za znakem #“ není crawleru dostupné.

Pretty URL: Jakákoliv adresa obsahující hash fragment začínající „!“. Například www.example.com?parametr=1#!klic1=hodnota1&klic2=hodnota2

Ugly URL: Jakákoliv adresa obsahující parametr s klíčem „_escaped_fragment_“. Například www.example.com?parametr=1&_escaped_fragment_=klic1=hodnota1%26klic2=hodnota2. Parametr s klíčem _escaped_fragment_ musí být uveden jako poslední parametr URL.

Přehled řešení

Aby měl crawler dostupný obsah stránky napsané v AJAX a to v jejím jakémkoliv stavu, potřebuje vždy načítat stránku se statickým obsahem. U techniky hashbang se toto řeší pomocí pretty URL a ugly URL.

Když crawler nalezne pretty URL a bude ji chtít indexovat, vyšle na server požadavek na obsah URL v upravené podobě (ugly URL). Úkolem webového serveru je vrátit statickou stránku, která odpovídá svým obsahem stránce napsané v AJAX. Tuto upravenou stránku indexuje crawler a ve výsledcích vyhledávání ji zobrazuje pod pretty URL. Uživatel tedy vždy pracuje s URL s hash fragmentem, nikoliv s upravenou adresou.

Transformace z pretty URL na ugly URL

1.       Hodnoty URL za znaky „#!“ převést na parametr dotazu s klíčem „_escaped_fragment_“ a „#!“ vynechat

2.       Escapovat speciální znaky v klíči „_escaped_fragment_“ (například „&“)

Indikace podpory schématu pro indexovaní AJAX

1.       URL adresa s hash fragmentem začínajícím "!". Například www.example.com?parametr=1#!klic1=hodnota1&klic2=hodnota2

2.       Použitím speciálního meta tagu <meta name="fragment" content="!"> na URL bez hash fragmentu. Jediná možná hodnota atributu „content“ je „!“. Pokud crawler nalezne URL www.example.com (bez hash fragmentu) a bude obsahovat ve zdrojovém kódu tento meta tag, pošle vašemu serveru požadavek na obsah URL www.example.com?_escaped_fragment_=.

Sitemapy

Do sitemapy vkládáme URL s hash fragmentem (stejné, jako jsou ve výsledcích vyhledávání).

Obecné informace

Obecně tuto techniku pro weby s velkým počtem stránek nedoporučujeme, protože robot musí navštívit dvakrát více URL a stažení stránek tak může trvat déle.