Modul 1 · 1.2
Procházení (crawling): jak vyhledávač najde Váš web
Modul 1: Jak fungují vyhledávače · Doba čtení: 11 minut
Cíl lekce: Po této lekci dokážete popsat, jak crawler objevuje nové stránky, na jaké stavové kódy narazí a co znamenají, a co crawleru brání v práci.
Klíčové pojmy: crawler (Googlebot, Bingbot), sledování odkazů, sitemap, stavový kód HTTP (200, 301, 302, 404, 410, 429, 5xx), přesměrování, crawl budget, JavaScript a vykreslování, osiřelá stránka, robots.txt
Co je crawler
Crawler (také spider nebo bot) je program, který stahuje webové stránky stejně jako Váš prohlížeč, jen automaticky a v obrovském měřítku. Google má Googlebot, Bing má Bingbot. Vyžádají si adresu, dostanou zpět HTML, přečtou si, jaké odkazy obsahuje, a nové adresy si zařadí na seznam, aby je stáhly později. V Česku je vedle Googlu důležitým vyhledávačem také Seznam.cz, který má vlastního crawlera.
Google uvádí, že Googlebot navštěvuje web v průměru nejvýše jednou za několik sekund a že většina požadavků přichází od verze Googlebotu pro chytré telefony. Google tedy Váš web vidí především tak, jak ho vidí telefon. K tomu se vrátíme v lekci 4.2.
Crawler se také může za Googlebot vydávat: jeho název (user-agent) se dá snadno napodobit. Google doporučuje podezřelou návštěvu ověřit zpětným vyhledáním IP adresy v DNS. To se hodí, když v protokolu serveru uvidíte „Googlebot“, který dělá podivné věci.
Jak crawler najde nové stránky
Google uvádí tři způsoby:
- Opakované návštěvy stránek, které už zná. Na nich vidí změny a nové odkazy.
- Sledování odkazů. Odkaz ze stránky, kterou Google už zná, na novou stránku je nejdůležitějším způsobem, jak být nalezen. Platí to pro odkazy v rámci Vašeho webu (menu, odkaz v textu) i pro odkazy z jiných webů.
- Seznam, který dodáte Vy: sitemap. Sitemap je soubor s adresami Vašich stránek. Odešlete ho v Search Console nebo ho uvedete v souboru robots.txt (lekce 3.4). Podle Googlu sitemap není povinná, ale je užitečná, hlavně pro nové weby s malým počtem odkazů, pro velké weby a pro stránky schované hluboko ve struktuře webu.
Odkazy musí být skutečné odkazy
Google dokáže odkaz sledovat jen tehdy, když jde o běžný prvek <a> s atributem href:
<a href="/bruidsboeketten">Bruidsboeketten</a> <!-- správně -->
<span onclick="ga('/bruidsboeketten')">Bruidsboeketten</span> <!-- pro Google to není odkaz -->Tlačítko, které na jinou stránku přejde jen pomocí JavaScriptu, není pro crawler odkaz. Stránka, na kterou nikde nevede žádný odkaz, se nazývá osiřelá stránka (orphan page). Crawler ji najde jen přes sitemap a i návštěvníci ji hledají těžko. Na novou stránku by proto vždy měl vést odkaz z menu nebo z některého textu.
JavaScript: nejdřív stáhnout, spustit až později
Mnoho moderních webů sestavuje stránku pomocí JavaScriptu až v prohlížeči. Google to zvládá: spouští JavaScript v aktuální verzi Chromia, na kterém je založený prohlížeč Chrome. Tomu se říká vykreslování (rendering). Google to u takových stránek popisuje jako tři fáze: procházení, vykreslení a indexování. Stránky se stavem 200 se zařadí do fronty k vykreslení.
Dva důsledky:
- To, co se na stránce objeví až po spuštění JavaScriptu, Google uvidí později než to, co je přímo v HTML.
- Ne každý crawler spouští JavaScript. Google to sám uvádí. Text, titulky a odkazy, které jsou přímo v HTML, jsou proto nejbezpečnější pro všechny vyhledávače. HTML generované na serveru Google označuje za „stále dobrý nápad“.
Automatické kontroly v tomto kurzu čtou HTML tak, jak ho posílá server, bez JavaScriptu. To, co vidíte ve svém prohlížeči, se od toho může lišit.
Stavové kódy: co server odpoví
Ke každé stránce server posílá stavový kód. Na obrazovce ho nevidíte, ale crawler ho čte jako první:
| Kód | Význam | Co s tím Google udělá |
|---|---|---|
| 200 | OK, tady je stránka | Obsah postupuje k indexování (zařazení není zaručeno) |
| 301 / 308 | Trvale přesunuto na jinou adresu | Silný signál, že správná je nová adresa |
| 302 / 307 | Dočasně jinde | Slabý signál; hlavní adresou často zůstává ta stará |
| 404 / 410 | Neexistuje (už) | Dříve zařazená adresa vypadne z indexu; Google ji navštěvuje stále méně často |
| 429 | Příliš mnoho požadavků | Google dočasně zpomalí procházení |
| 5xx | Chyba na serveru | Google dočasně zpomalí procházení; pokud adresa vrací chybu serveru stále, nakonec z indexu vypadne |
Pozor na soft 404: stránku, která zobrazuje „nenalezeno“, ale vrací stav 200. Pro crawler vypadá jako skutečná stránka, pro návštěvníka ne. Search Console takové stránky hlásí zvlášť. Odstraněná stránka by proto měla vracet skutečnou chybu 404 nebo 410, nebo přesměrovat pomocí 301 na náhradní stránku.
Řetězec přesměrování (z http na https, pak na www a pak na novou stránku) Google sice sleduje, zhruba do deseti kroků, ale každý krok stojí čas. Lekce 4.1 ukazuje, jak to udělat jedním krokem.
Co crawleru brání
Google uvádí jako příčiny, proč se stránka neprochází: problémy se serverem, problémy se sítí a pravidla v souboru robots.txt, která Googlebotu zakazují přístup. V praxi se navíc setkáte s tímto:
- web je ještě v „režimu údržby“ nebo je chráněný heslem;
- ve WordPressu je zaškrtnuté políčko v nastavení Viditelnost pro vyhledávače (Search engine visibility), které nastaví noindex (to je až krok 2, ale výsledek je stejný: web nejde najít);
- zabezpečení nebo firewall odmítá neznámé boty kódem 403 nebo 429;
- webem se dá procházet jen pomocí tlačítek v JavaScriptu.
Soubor robots.txt má vlastní lekci (3.3). Prozatím stačí vědět, že jde o textový soubor na adrese https://www.example.com/robots.txt, který říká, které části Vašeho webu crawler nesmí stahovat.
Crawl budget: pro většinu webů žádná starost
Na internetu se hodně píše o crawl budgetu: kolik stránek na Vašem webu chce a může Google stáhnout. Google uvádí, že jeho návod k tomuto tématu je určený pro velké weby, zhruba s více než milionem stránek nebo s více než deseti tisíci stránkami, které se mění každý den. Pokud se Vaše nové stránky stahují už v den zveřejnění, nemusíte se tím zabývat. Pro web, jako je ten květinářství Bloemenatelier Lotte s třiceti stránkami, to není téma. Stačí aktuální sitemap a občasný pohled do přehledu indexování.
V praxi: protokol Vašeho serveru
V DirectAdminu a podobných panelech si můžete prohlédnout přístupový protokol (access log) svého webu. Vyhledejte „Googlebot“ nebo „bingbot“ a uvidíte, které stránky si vyžádaly a jaký stavový kód dostaly. Pokud tam vidíte hodně chyb 404 nebo 5xx, víte, kde začít. U jiných poskytovatelů najdete protokoly obvykle pod podobným názvem v zákaznickém panelu.
Shrnutí
- Crawler stahuje stránky a nové adresy nachází přes odkazy a přes Vaši sitemap.
- Sledují se jen skutečné odkazy
<a href>; stránka, na kterou nevede žádný odkaz, je osiřelá. - Google spouští JavaScript, ale až později; jiné crawlery často vůbec. Důležitý obsah patří do HTML.
- Stavový kód určuje, co crawler udělá: 200 zpracovat, 301 přesunout, 404/410 odstranit, 5xx a 429 procházet pomaleji.
- Crawl budget hraje roli jen u velmi velkých nebo velmi rychle se měnících webů.
Kvíz
Úkol
Úkol A1.2: Co vidí crawler na Vaší domovské stránce? Zadejte adresu svého webu (nebo www.wikipedia.org, pokud vlastní web nemáte). Potom vyplňte, co očekáváte: stavový kód výsledné stránky, adresu, na které po přesměrování skončíte, a zda je nastaven noindex. Program stáhne domovskou stránku jako crawler, bez JavaScriptu, a ukáže řetězec přesměrování, stavový kód, počet skutečných odkazů na Váš vlastní web v HTML a zda je text stránky čitelný i bez JavaScriptu.
Další čtení
Postupy v těchto článcích platí pro panely WebOké; u jiných poskytovatelů to funguje podobně.
- Příručka k DirectAdmin 4.7: Přesměrování webu: jak přesměrovat doménu nebo stránku
- Příručka k DirectAdmin 17.2: Souhrn webu a logy: log chyb a log přístupů
- Povinné přesměrování návštěvníků na https
- Google, Jak stavové kódy HTTP a chyby sítě ovlivňují Vyhledávání Google: https://developers.google.com/search/docs/crawling-indexing/http-network-errors
- Google, Základy SEO pro JavaScript: https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics
- Google, Crawl budget pro velké weby: https://developers.google.com/crawling/docs/crawl-budget
