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í „!“.
- Ugly URL: Jakákoliv adresa obsahující parametr s klíčem „_escaped_fragment_“. Parametr s klíčem „_escaped_fragment_“ musí být uveden jako poslední parametr URL.
Příklad pretty URL
www.example.com?parametr=1#!klic1=hodnota1&klic2=hodnota2
Příklad ugly URL
www.example.com?parametr=1&_escaped_fragment_=klic1=hodnota1%26klic2=hodnota2.
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
- Hodnoty URL za znaky „#!“ převést na parametr dotazu s klíčem „_escaped_fragment_“ a „#!“ vynechat.
- Escapovat speciální znaky v klíči „_escaped_fragment_“ (například „&“).
Indikace podpory schématu pro indexovaní AJAX
- URL adresa s hash fragmentem začínajícím „!“.
- 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_.
Příklad URL adresy s hash fragmentem
www.example.com?parametr=1#!klic1=hodnota1&klic2=hodnota2
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.