Modul 1 · 1.2
Slovenčina
Crawling: ako vyhľadávač nájde váš web
Modul 1: Ako fungujú vyhľadávače · Čas čítania: 11 minút
Cieľ lekcie: Po tejto lekcii dokážete opísať, ako crawler objavuje nové stránky, na aké stavové kódy naráža a čo znamenajú, a čo crawlerovi bráni v práci.
Kľúčové pojmy: crawler (Googlebot, Bingbot), sledovanie odkazov, sitemap, stavový kód HTTP (200, 301, 302, 404, 410, 429, 5xx), presmerovanie, crawl budget, JavaScript a vykresľovanie, osirelá stránka, robots.txt
Čo je crawler
Crawler (nazývaný aj spider alebo bot) je program, ktorý načítava webové stránky podobne ako váš prehliadač, ale automaticky a v obrovskom rozsahu. Google má Googlebot, Bing má Bingbot. Vyžiadajú si adresu, dostanú späť HTML, prečítajú si, aké odkazy obsahuje, a tieto nové adresy si zaradia do zoznamu na neskoršie načítanie.
Google uvádza, že Googlebot navštevuje web v priemere nie častejšie než raz za niekoľko sekúnd a že väčšina požiadaviek prichádza od verzie pre smartfóny Googlebotu. Google teda váš web vidí hlavne tak, ako ho vidí telefón. K tomu sa vrátime v lekcii 4.2.
Crawler sa môže za Googlebot aj vydávať: názov (user-agent) sa dá ľahko napodobniť. Google odporúča podozrivú návštevu overiť spätným vyhľadaním IP adresy v DNS. To sa hodí, keď v serverovom logu uvidíte „Googlebot“, ktorý robí zvláštne veci.
Ako crawler nájde nové stránky
Google uvádza tri spôsoby:
- Opätovná návšteva stránok, ktoré už pozná. Tam vidí zmeny a nové odkazy.
- Sledovanie odkazov. Odkaz zo stránky, ktorú Google už pozná, na novú stránku je najdôležitejší spôsob, ako byť nájdený. Platí to pre odkazy v rámci vášho vlastného webu (vaše menu, odkaz v texte) aj pre odkazy z iných webov.
- Zoznam, ktorý dodáte vy: sitemap. Sitemap je súbor s adresami vašich stránok. Odošlete ho v Search Console alebo ho uvediete v robots.txt (lekcia 3.4). Podľa Google sitemap nie je povinná, ale je užitočná, najmä pre nové weby s malým počtom odkazov, veľké weby a stránky ukryté hlboko v štruktúre webu.
Odkazy musia byť skutočné odkazy
Google dokáže odkaz sledovať, len ak ide o bežný prvok <a> s atribútom href:
<a href="/bruidsboeketten">Bruidsboeketten</a> <!-- správne -->
<span onclick="ga('/bruidsboeketten')">Bruidsboeketten</span> <!-- pre Google to nie je odkaz -->Tlačidlo, ktoré na inú stránku preskočí iba pomocou JavaScriptu, nie je pre crawler odkaz. Stránka, na ktorú nevedie odkaz odnikiaľ, sa nazýva osirelá stránka (orphan page). Crawler ju nájde len cez sitemap a aj návštevníci ju hľadajú ťažko. Na novú stránku by preto mal vždy viesť odkaz z vášho menu alebo z nejakého textu.
JavaScript: najprv načítať, neskôr spustiť
Mnohé moderné weby skladajú stránku pomocou JavaScriptu až v prehliadači. Google to zvládne: spúšťa JavaScript v aktuálnej verzii Chromium, na ktorom je postavený prehliadač Chrome. Tomu sa hovorí vykresľovanie (rendering). Google to pri takýchto stránkach opisuje ako tri fázy: crawling, vykreslenie a indexovanie. Stránky so stavom 200 sa zaradia do frontu na vykreslenie.
Dva dôsledky:
- Obsah, ktorý sa na stránke objaví až po spustení JavaScriptu, Google uvidí neskôr než to, čo je priamo v HTML.
- Nie každý crawler spúšťa JavaScript. Uvádza to aj samotný Google. Text, titulky a odkazy priamo v HTML sú preto najbezpečnejšie pre všetky vyhľadávače. HTML generované na serveri Google označuje za „stále dobrý nápad“.
Automatické kontroly v tomto kurze čítajú HTML tak, ako ho posiela server, bez JavaScriptu. To, čo vidíte v prehliadači, sa od toho môže líšiť.
Stavové kódy: čo odpovedá server
Pri každej stránke server pošle aj stavový kód. Na obrazovke ho neuvidíte, ale crawler ho číta ako prvý:
| Kód | Význam | Čo s ním robí Google |
|---|---|---|
| 200 | OK, tu je stránka | Obsah postupuje do indexovania (zaradenie nie je zaručené) |
| 301 / 308 | Natrvalo presunuté na inú adresu | Silný signál, že nová adresa je tá správna |
| 302 / 307 | Dočasne inde | Slabý signál; stará adresa často zostáva hlavnou adresou |
| 404 / 410 | Neexistuje (už) | Predtým zaradená adresa vypadne z indexu; Google ju navštevuje čoraz menej často |
| 429 | Príliš veľa požiadaviek | Google dočasne spomalí crawling |
| 5xx | Chyba na serveri | Google dočasne spomalí crawling; ak adresa vracia chybu servera opakovane, nakoniec vypadne z indexu |
Pozor na soft 404: stránku, ktorá zobrazuje „nenájdené“, ale vracia stav 200. Pre crawler vyzerá ako skutočná stránka, pre návštevníka nie. Search Console takéto stránky hlási samostatne. Odstránená stránka by preto mala vracať skutočný kód 404 alebo 410, alebo presmerovať kódom 301 na náhradu.
Reťazec presmerovaní (z http na https, na www a na novú stránku) Google sleduje, približne do desiatich krokov, ale každý krok stojí čas. Lekcia 4.1 ukazuje, ako to urobiť jedným krokom.
Čo crawlerovi bráni
Google ako príčiny, prečo sa stránka neprehľadá, uvádza problémy so serverom, problémy so sieťou a pravidlá v robots.txt, ktoré Googlebotu zakazujú prístup. V praxi sa okrem toho stretnete s týmito prípadmi:
- web je stále v „režime údržby“ alebo je chránený heslom;
- vo WordPresse zaškrtnuté políčko, ktoré odrádza vyhľadávače (v anglickom rozhraní „Discourage search engines from indexing this site“) a nastaví noindex (to je krok 2, ale výsledok je rovnaký: stránka sa nedá nájsť);
- zabezpečenie alebo firewall, ktorý neznáme boty odmietne kódom 403 alebo 429;
- web, v ktorom sa dá pohybovať len cez tlačidlá v JavaScripte.
Súbor robots.txt má vlastnú lekciu (3.3). Zatiaľ stačí vedieť, že ide o textový súbor na adrese https://www.example.com/robots.txt, ktorý určuje, ktoré časti vášho webu crawler nesmie načítať.
Crawl budget: pre väčšinu webov žiadna starosť
Na internete sa veľa píše o crawl budgete: koľko stránok vášho webu chce a dokáže Google načítať. Google uvádza, že jeho príručka k tejto téme je určená pre veľké weby, zhruba s viac než miliónom stránok alebo s viac než desiatimi tisícami stránok, ktoré sa denne menia. Ak sa vaše nové stránky načítajú už v deň zverejnenia, nemusíte sa tým zaoberať. Pre web, akým je Bloemenatelier Lotte (kvetinový ateliér) s tridsiatimi stránkami, to nie je téma. Stačí aktuálna sitemap a občasný pohľad do prehľadu indexovania stránok (Page indexing).
V praxi: váš serverový log
V DirectAdmin a podobných paneloch si môžete pozrieť prístupový log svojho webu. Vyhľadajte „Googlebot“ alebo „bingbot“ a uvidíte, ktoré stránky si vyžiadali a aký stavový kód dostali. Ak tam vidíte veľa kódov 404 alebo chýb 5xx, viete, kde začať. U iných poskytovateľov nájdete logy v zákazníckom paneli zvyčajne pod podobným názvom.
Zhrnutie
- Crawler načítava stránky a nové adresy nachádza cez odkazy a cez vašu sitemap.
- Sledujú sa len skutočné odkazy
<a href>; stránka, na ktorú nevedie žiadny odkaz, je osirelá. - Google spúšťa JavaScript, ale neskôr; iné crawlery často vôbec. Dôležitý obsah patrí do HTML.
- Stavový kód určuje, čo crawler urobí: 200 spracovať, 301 presunúť, 404/410 odstrániť, pri 5xx a 429 spomaliť crawling.
- Crawl budget zohráva úlohu len pri veľmi veľkých alebo veľmi rýchlo sa meniacich weboch.
Kvíz
Úloha
Úloha A1.2: Čo vidí crawler na vašej domovskej stránke? Zadajte adresu svojho webu (alebo www.wikipedia.org, ak vlastný web nemáte). Potom vyplňte, čo očakávate: stavový kód výslednej stránky, adresu, na ktorej skončíte po presmerovaní, a či je na nej nastavený noindex. Program načíta domovskú stránku ako crawler, bez JavaScriptu, a zobrazí reťazec presmerovaní, stavový kód, počet skutočných odkazov na váš vlastný web v HTML a to, či je text stránky čitateľný aj bez JavaScriptu.
Čítajte ďalej
Postupy v týchto článkoch platia pre panely WebOké; u iných poskytovateľov to funguje podobne.
- Návod na DirectAdmin 4.7: Presmerovania stránok: presmerovanie domény alebo stránky
- Návod na DirectAdmin 17.2: Súhrnné štatistiky a logy: záznam chýb a záznam prístupov
- Povinne presmerovať návštevníkov na https
- Google, Ako stavové kódy HTTP a chyby siete ovplyvňujú Vyhľadávanie Google: https://developers.google.com/search/docs/crawling-indexing/http-network-errors
- Google, Základy SEO pre JavaScript: https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics
- Google, Crawl budget pre veľké weby: https://developers.google.com/crawling/docs/crawl-budget
