Případová studie

Jak jsme dostali web do indexu a k proklikům díky jednoduchému technickému fixu

Crawler pred zdi s tlacitkem nacist dalsi a zelena cesta z cislovanych stranek do knihovny obsahu

Klient je SaaS služba, která v rámci marketingu klasicky produkuje velké množství obsahu. Spustil nový web a na něm rozsáhlou obsahovou sekci, řádově nižší tisíce stránek. Google ho ale nechtěl moc indexovat. Co s tím? To ukázal úvodní SEO audit.

K většině nového obsahu se Googlebot kromě XML sitemap neměl jak dostat. Rozeberu, o co přesně šlo, jak jsme to upravili a co to přineslo.

Proč JavaScriptové „načíst další” dusí indexaci

Crawler nepracuje jako člověk. Neklikne na tlačítko, nepočká, až se něco doposílá, a nepokračuje ve čtení. Googlebot čte “odkazy” ze zdrojového HTML kódu stránky. Hledá <a href="">, pošle je do seznamu k pozdějšímu procházení, následně je (někdy dřív, jindy později) projde je a pak se možná dostanou do indexu.

Když se další obsah načítá až po kliknutí JavaScriptem a v HTML přitom nejsou hotové odkazy na hlubší stránky, crawler nemá kam pokračovat. Vidí první obrazovku a konec. Vše, co je „za tlačítkem”, pro něj reálně neexistuje, i když to v databázi webu klidně je.

Tohle je jádro celého případu. Obsah technicky existoval. Pro crawl (procházení webu) byl ale neviditelný, protože k němu nevedla jediná pevná cesta v HTML. A když Google na obsah nechodí, nemá co indexovat. Indexace (zařazení stránky do vyhledávacího indexu) nezačne tím, že si Google všimne. Začne tím, že se k obsahu vůbec dostane.

Zadání: stránkování, které vidí i crawler

Vývojářům jsem připravil konkrétní zadání. Mám ve zvyku dávat k němu ukázku z reálného webu. Vývojář pak vidí přímo do kódu, jak to má vypadat, a nemusíme se dohadovat nad abstraktním popisem. Šetří to čas oběma stranám.

Jako vzor jsem zvolil stránkování na Favi, konkrétně kategorii sedacích souprav: favi.cz/…/sedaci-soupravy. Je tam přesně to chování, které jsem chtěl, a dá se na něm rovnou otestovat.

Samotné zadání mělo tři body:

  • JavaScriptové tlačítko „načíst další” zůstává. Uživatelské pohodlí (UX) je v pořádku a není důvod ho rušit. Lidem to vyhovuje.
  • Přidají se číslované odkazy na stránky. Plnohodnotné <a href=""> odkazy, které se renderují už na serveru (SSR – server-side rendering). To znamená, že jsou ve zdrojovém HTML hned, bez nutnosti spustit JavaScript.
  • Rozsah stránkování podle vzoru Favi. Odkaz na první stránku, odkaz na poslední stránku a mezi tím vždy nabídka okolo deseti stránek. Přesné chování ať vývojáři ověří přímo na Favi.

Smysl je jednoduchý. Dát Googlu pevné, server-renderované interní odkazy, po kterých se prokliká na všechny stránky obsahu. JS tlačítko slouží lidem, číslované SSR odkazy slouží crawlerům. Obojí vedle sebe, nic se navzájem neruší.

Jak se to projevilo

Vývoj jsem sledoval v Google Search Console, ve Statistikách procházení (Crawl stats) a v reportu Indexace. Opravu jsme nasadili v polovině dubna a další zhruba tři měsíce jsem koukal, jak se to vyvíjí. Šlo to podle plánu, v logické posloupnosti, kde jeden krok táhne další.

Krok 1 – zvýšil se počet requestů. Jakmile se v HTML objevily nové interní odkazy, Googlebot dostal kam chodit. Před opravou se křivka žádostí o procházení (requestů) držela nízko, po nasazení se zvedla na běžně několik set denně se špičkami přes 600. Za sledované období GSC napočítalo 11,8 tis. žádostí mobilního Googlebota.

Graf žádostí o procházení v Google Search Console, nárůst po nasazení opravy stránkování
Žádosti o procházení (mobil). Šipka označuje nasazení opravy v polovině dubna. Před ní klid, po ní setrvalý růst.

Krok 2 – rostl podíl requestů na „Nalezení” nového obsahu. Nešlo jen o víc procházení dokola po stejných URL. Rostl počet žádostí s účelem Nalezení, tedy objevování nových, dosud neviděných adres. Před opravou byly spíš sporadické, po doplnění stránkování jich začalo přibývat. Crawler se konečně dostával do hloubky obsahové sekce.

Graf žádostí o procházení s účelem Nalezení nového obsahu v Google Search Console
Žádosti o procházení s účelem „Nalezení”. Po doplnění stránkování místo JS eventu jich přibývá.

Krok 3 – indexace skočila nahoru. Co Google najde a uzná za hodnotné, to zařadí do indexu. Počet zaindexovaných stránek (zelené sloupce) rostl z nějakých tří set k devíti stům, indexováno jich nakonec bylo 889. Spolu s tím vystřelila zobrazení (modrá křivka) ke 15 tis.

Graf počtu zaindexovaných stránek a zobrazení v Google Search Console
Indexováno 889 stránek. Zelené sloupce jsou zaindexované stránky, modrá křivka zobrazení. Obojí se po opravě rozjíždí.

Krok 4 – traffic šel nahoru. Zaindexované stránky začaly nabírat organický traffic. Za tři měsíce 7,75 tis. kliknutí a 334 tis. zobrazení, průměrná pozice 7,3 a CTR (míra prokliku) 2,3 %. Na grafu je skok kliknutí i zobrazení od konce dubna dobře vidět. Konec řetězce: z neviditelného obsahu se stal obsah, který přivádí návštěvníky.

Graf organického trafficu, kliknutí a zobrazení v Google Search Console
Výkon ve vyhledávání za tři měsíce. Po nasazení opravy rostou kliknutí (světlá) i zobrazení (tmavá).

Jak dlouho to trvalo

Není to přes noc a nikomu bych to tak nesliboval. První pohyb v crawlu šel vidět během prvních jednoho až dvou týdnů od nasazení, jakmile si Googlebot začal nové odkazy procházet. Skutečný zlom v indexaci a trafficu ale přišel zhruba po pěti až šesti týdnech, na přelomu května, a v době posledního měření dál rostl. Od opravy k znatelnému trafficu to bylo řádově měsíc a půl až dva měsíce.

Crawler musí nejdřív odkazy objevit, projít je, obsah zpracovat, zařadit do indexu a teprve pak se stránky začnou ukazovat ve výsledcích a sbírat prokliky. Každé to patro něco trvá a sčítá se to. Proto u podobných oprav počítám výsledek v týdnech až měsících, ne ve dnech.

Bohužel v tomto případě nemám zatím access logy a musím pracovat s daty, která má Google Search Console.

Co si z toho odnést

Load more (tlačítko „načíst další”) sám o sobě k indexaci nestačí. Pro uživatele je fajn, pro crawler je to slepá ulička. Pokud za tlačítkem visí obsah, ke kterému nevede pevný odkaz ve zdrojovém HTML, počítejte s tím, že ho Google z velké části nezaindexuje.

Řešení nebývá v rušení pohodlného UX, ale v jeho doplnění. Vedle JavaScriptového tlačítka stačí přidat číslované, server-renderované odkazy na stránky. Lidé používají tlačítko, crawler jde po odkazech.

Napište komentář

Vaše e-mailová adresa nebude zveřejněna. Povinná pole jsou označená.