JavaScript a SEO: kdy robot obsah uvidí a kdy ne
Google JavaScript spustí, ale ne hned a ne vždycky. Seznam s ním pracuje omezeně a roboti jazykových modelů většinou vůbec. Praktický závěr: obsah, na kterém stojí návštěvnost z vyhledávání, musí být v HTML, které přijde ze serveru.
Jak Google zpracovává stránku
- Stažení. Robot si vezme HTML tak, jak ho server pošle.
- První zpracování. Z tohoto HTML se vytáhnou odkazy, titulek, kanonická adresa a text.
- Fronta na vykreslení. Stránka čeká, až bude volná kapacita. Odstup je od minut po dny.
- Vykreslení. Spustí se skripty, stránka se poskládá a teprve teď se vidí obsah dodaný JavaScriptem.
Mezi druhým a čtvrtým krokem existuje okno, ve kterém vyhledávač zná jen to, co bylo v původním HTML. Když je v něm prázdná stránka, může se do indexu dostat prázdná stránka.
Co v HTML musí být vždycky
- Titulek, popisek a kanonická adresa.
- Hlavní text stránky a nadpisy.
- Odkazy v navigaci a ve výpisech, jako značky
a href. - Ceny a dostupnost u e-shopu.
- Strukturovaná data.
Co může doplnit JavaScript
- Recenze načítané po kliknutí.
- Doporučené zboží.
- Filtry, které jen mění pohled na už načtená data.
- Mapy, kalkulačky a interaktivní prvky.
Vzory, které indexaci rozbíjejí
| Vzor | Co se stane | Řešení |
|---|---|---|
Odkaz jako span s posluchačem události |
Robot cíl nenajde, stránka je osamocená | Použít a href se skutečnou adresou |
| Obsah po kliknutí na Zobrazit více | Text není v HTML, do indexu nejde | Text mít v HTML a jen ho skrývat stylem |
Adresa s křížkem, například /#/produkt |
Vše za křížkem se na server neposílá | Používat běžné cesty přes History API |
| Kanonická adresa vkládaná skriptem | Při prvním zpracování chybí | Vypsat ji na serveru |
| Nekonečné načítání bez odkazů | Robot vidí jen první dávku položek | Doplnit klasické stránkování |
Jak si to ověřit za pět minut
- V prohlížeči vypněte JavaScript a otevřete nejdůležitější stránku webu. Co zůstane, vidí každý robot.
- Otevřete zdrojový kód klávesovou zkratkou pro zobrazení zdroje. Není to totéž co inspektor prvků, který ukazuje stav po vykreslení.
- Vyhledejte v něm větu z hlavního textu. Když tam není, přišla ze skriptu.
- V Search Console si stránku načtěte nástrojem Kontrola adresy URL a porovnejte vykreslené HTML se zdrojovým.
Co s tím, když už web na JavaScriptu stojí
Nejde o volbu technologie, ale o to, kde se stránka skládá. Použitelná řešení jsou dvě.
- Vykreslování na serveru. Server pošle hotové HTML a skripty ho pak jen oživí. Podporují to všechny běžné nástavby.
- Předgenerování při sestavení. Stránky se vyrobí dopředu a servírují se jako statické soubory. Hodí se u obsahu, který se často nemění.
Dřívější řešení, kdy se robotům posílala jiná verze než lidem, se dnes nedoporučuje. Je náročné na údržbu a hranice mezi ním a maskováním obsahu je tenká.
Časté dotazy
Google přece JavaScript umí. Proč to tedy řešit?
Umí, ale ve dvou krocích. Nejdřív stáhne HTML a teprve později, když má volnou kapacitu, stránku vykreslí. Odstup bývá hodiny až dny. U webu, kde se obsah často mění, to znamená, že vyhledávač pracuje se zastaralou verzí. A především: Seznam ani většina robotů jazykových modelů takhle daleko nejdou.
Jak zjistím, co robot skutečně vidí?
Nejrychleji tak, že si v prohlížeči vypnete JavaScript a stránku načtete znovu. Co zůstane, uvidí každý robot. Přesnější je nástroj Kontrola adresy URL v Search Console, kde je vidět vykreslené HTML i snímek stránky. Rozdíl mezi oběma pohledy ukáže, co závisí na skriptech.
Musím kvůli SEO přepsat web z Reactu?
Ne. Stačí, aby server posílal hotové HTML. Všechny běžné nástavby to umí, jde o vykreslování na serveru nebo o předgenerování stránek při sestavení. Rozdíl je ve způsobu nasazení, ne v použité technologii.
Související návody
Stránkování výpisů: jak ho udělat, aby se produkty indexovaly
Druhá a další strana výpisu je jediná cesta, kudy se robot dostane k produktům na konci. Většina chyb ve stránkování je proto přeindexováním naopak.
Stavové kódy HTTP: co který znamená pro vyhledávač
Kód odpovědi je první věc, kterou robot uvidí. Rozhoduje, jestli stránku vůbec zpracuje a jestli si má pamatovat starou adresu.
Noindex a nofollow: kdy je použít a kdy si jimi ublížíte
Noindex vyřadí stránku z výsledků, nofollow zruší předání váhy odkazem. Většina webů je používá na místech, kde nemají co dělat.
Pojmy z tohoto textu
- JSON-LD Formát zápisu strukturovaných dat. Vkládá se jako samostatný blok a nemíchá se do značek obsahu.
- Blokující zdroj Soubor, který musí prohlížeč stáhnout a zpracovat, než začne stránku vykreslovat. Typicky styly a skripty v hlavičce.
- Duplicitní obsah Tentýž nebo velmi podobný text na víc adresách. Není to postih, ale vyhledávač si vybere jednu verzi a ostatní potlačí.
- Smíšený obsah Stav, kdy se stránka načte přes HTTPS, ale některé její části se stahují přes nešifrované HTTP.
- llms.txt Textový soubor v kořeni webu, který jazykovým modelům shrnuje, co na webu je a kde to najdou.
- INP Doba mezi klepnutím a viditelnou reakcí stránky. Nahradilo starší měřítko FID a je mnohem přísnější.
Nevíte, jestli se vás to týká?
Pusťte kontrolu na svůj web a uvidíte, jestli tenhle problém máte. Trvá to necelou minutu.