Discussion Technical SEO AI Crawlers

Jak si AI crawlery poradí s nekonečným scrollováním? Náš obsah se neindexuje

FR
FrontendDev_Marcus · Frontend Developer
· · 78 upvotes · 10 comments
FM
FrontendDev_Marcus
Frontend Developer · December 19, 2025

Postavili jsme moderní React stránku s nekonečným scrollováním pro náš blog. Skvělý uživatelský zážitek, ale náš obsah se v AI odpovědích vůbec nezobrazuje.

Google ho nakonec indexuje (po určité práci se SSR). Ale AI platformy většinu našeho obsahu přehlížejí.

Nastavení:

  • React SPA s nekonečným scrollováním
  • SSR pro úvodní načtení stránky
  • Další obsah se načítá přes JavaScript při scrollování
  • 500+ blogových příspěvků, jen cca 50 je dostupných pro AI

Otázky:

  • Spouštějí AI crawlery vůbec JavaScript?
  • Je nekonečné scrollování zásadně nekompatibilní s AI viditelností?
  • Jaký je nejlepší technický přístup pro přístupnost crawlerům?
  • Máme celé stránkování předělat?

Má někdo z frontend vývojářů s tímto zkušenosti?

10 comments

10 komentářů

CE
CrawlerTech_Expert Expert Technical SEO Consultant · December 19, 2025

Rozepíšu, jak různé AI crawlery pracují s JavaScriptem:

Podpora JavaScriptu u AI crawlerů:

CrawlerJS renderingSimulace scrolluČekací doba
GPTBotOmezeně/žádnýNeMinimální
Google-ExtendedDobrá (jako Googlebot)NeStandardní
ClaudeBotOmezeněNeMinimální
PerplexityBotRůznéNeOmezené
Common CrawlŽádnýNeŽádná

Hlavní problém:

Nekonečné scrollování vyžaduje:

  1. Spuštění JavaScriptu
  2. Vyvolání události scroll
  3. Další HTTP požadavky
  4. Vykreslení nového obsahu

Většina AI crawlerů selže už v kroku 1 nebo 2.

Proč SSR nestačí:

SSR naservíruje úvodní stránku. Ale obsah z nekonečného scrollu není „úvodní“ – načítá se až po interakci. SSR neřeší závislost na interakci.

Zásadní problém:

Nekonečné scrollování je v současnosti zásadně nekompatibilní se schopnostmi AI crawlerů. Je potřeba zvolit alternativní řešení.

FM
FrontendDev_Marcus OP · December 19, 2025
Replying to CrawlerTech_Expert
Takže to musíme celé předělat? Jaký postup doporučujete?
CE
CrawlerTech_Expert Expert · December 19, 2025
Replying to FrontendDev_Marcus

Doporučené přístupy (podle přívětivosti pro AI):

Varianta 1: Tradiční stránkování (nejlepší pro AI)

/blog/page/1
/blog/page/2
/blog/page/3
  • Každá stránka má svou URL
  • Obsah je v úvodním HTML
  • Sitemap zahrnuje všechny stránky
  • AI crawlery mají přístup ke všemu

Varianta 2: Hybridní řešení

  • Nekonečné scrollování pro uživatele
  • ALE zároveň poskytovat stránkované URL
  • Sitemap odkazuje na stránkované verze
  • Použít canonical kvůli duplicitám
<!-- Stránka s nekonečným scrollováním -->
<link rel="canonical" href="/blog/page/1" />

<!-- Stránkování vždy dostupné -->
<nav>
  <a href="/blog/page/1">1</a>
  <a href="/blog/page/2">2</a>
</nav>

Varianta 3: Prerender pro AI crawlery

  • Detekovat AI user-agenty
  • Poskytnout prerenderované HTML
  • Kompletní obsah v úvodní odpovědi

Každá možnost má své kompromisy. První varianta je nejsnazší a nejspolehlivější pro AI. Druhá zachová váš UX a přidá přístupnost pro AI.

RS
ReactDev_Sarah React Developer · December 19, 2025

Řešili jsme přesně tento problém. Naše řešení:

Implementace hybridního přístupu:

// Struktura URL
/blog              // Nekonečný scroll (výchozí pro uživatele)
/blog/archive/1    // Stránkované (přístupné pro crawlery)
/blog/archive/2

Klíčové implementační detaily:

  1. Sitemap obsahuje pouze stránkované URL

    • AI crawlery najdou stránky /blog/archive/*
    • Tyto stránky renderují plný obsah na serveru
  2. Stránka s nekonečným scrollováním načítá stejný obsah

    • Na pozadí využívá stránkovací API
    • Lepší UX pro lidi
  3. Interní odkazy vedou na jednotlivé články

    • Ne na konkrétní pozici v nekonečném scrollu
    • Každý článek má vlastní URL
  4. robots.txt doporučení:

# Nechte crawlery zaměřit se na jednotlivé články
# Ne na kontejner s nekonečným scrollováním
Sitemap: /sitemap.xml

Výsledky:

  • Uživatelský zážitek zůstává (nekonečný scroll)
  • AI crawlery přistupují ke všem archivním stránkám
  • Všechny články jsou indexovány
  • Míra citací se po implementaci zvýšila 4x
NK
NextJSDev_Kevin · December 18, 2025

Next.js konkrétní řešení:

Využití getStaticPaths + getStaticProps:

// pages/blog/page/[page].js
export async function getStaticPaths() {
  const totalPages = await getTotalPages();
  const paths = Array.from({ length: totalPages }, (_, i) => ({
    params: { page: String(i + 1) }
  }));
  return { paths, fallback: false };
}

export async function getStaticProps({ params }) {
  const posts = await getPostsForPage(params.page);
  return { props: { posts, page: params.page } };
}

Výhody:

  • Statické stránky pro každou stránku stránkování
  • Kompletní obsah v HTML už při buildu
  • AI crawlery získají všechen obsah
  • Rychlé načítání (statické)

Nekonečný scroll poté přidat jako vylepšení:

  • Na straně klienta využívá stejné API
  • Progresivní enhancement
  • Funguje i bez JS

Tím získáte to nejlepší z obou světů.

PS
Prerender_Specialist Expert · December 18, 2025

Přidávám možnost prerenderingu:

Prerenderovací služby pro AI crawlery:

Můžete detekovat AI crawler user-agenty a poskytnout jim prerenderovaný obsah:

// middleware
if (isAICrawler(req.headers['user-agent'])) {
  return servePrerenderedVersion(req.url);
}

Detekce AI crawlerů:

const aiCrawlers = [
  'GPTBot',
  'ChatGPT-User',
  'Google-Extended',
  'ClaudeBot',
  'PerplexityBot',
  'anthropic-ai'
];

function isAICrawler(userAgent) {
  return aiCrawlers.some(crawler =>
    userAgent.includes(crawler)
  );
}

Možnosti prerenderingu:

  • Prerender.io
  • Rendertron
  • Custom řešení na bázi Puppeteer
  • Prerendering při buildu

Pozor:

Ne všechny AI crawlery se jasně identifikují. Některé tak mohou být přehlédnuty. Toto je doplňkový přístup, ne náhrada za správné stránkování.

SL
SEODevOps_Lisa · December 18, 2025

Testovací metodika pro přístupnost AI crawlerům:

Manuální testy:

  1. Test s vypnutým JavaScriptem:

    • Otevřete blog v prohlížeči
    • Vypněte JavaScript
    • Jaký obsah je vidět?
    • Přibližuje se pohledu crawleru bez JS
  2. Test zobrazení zdrojového kódu:

    • Zobrazte zdrojový kód stránky (ne inspektor)
    • Je váš obsah v HTML?
    • Nebo jsou tam jen JS placeholdery?
  3. Test s curl:

    curl -A "GPTBot/1.0" https://yoursite.com/blog/
    
    • Obsahuje odpověď skutečný obsah?

Automatizované testy:

  1. Google Search Console:

    • Nástroj pro kontrolu URL
    • „Zobrazit vykreslenou stránku“ ukáže, co vidí Googlebot
    • (Ne AI crawlery, ale podobné zpracování JS)
  2. Lighthouse audit:

    • Zkontrolujte kategorii „SEO“
    • Upozorní na problémy s procházením

Co chcete vidět:

  • Obsah v úvodní HTML odpovědi
  • Odkazy na všechny stránky jsou dohledatelné
  • Pro zobrazení obsahu není potřeba JS
E
EcommerceDevSEO · December 17, 2025

Pohled e-commerce:

Máme 10 000+ produktů s funkcí „načíst více“. Naše řešení:

Struktura kategorie:

/category/shoes                    # Prvních 24 produktů + načítání dalších
/category/shoes?page=2            # Produkty 25-48
/category/shoes?page=3            # Produkty 49-72

Implementace:

  1. Úvodní stránka vždy obsahuje stránkovací odkazy

    • I když je povoleno nekonečné scrollování
    • Ve footeru jsou odkazy na stránky 1, 2, 3…
  2. ?page= parametry jsou canonical

    • Každá stránka je unikátní obsah
    • Ne duplikát hlavní stránky
  3. Sitemap obsahuje všechny stránkované URL

    • Nejen základní URL s nekonečným scrollováním
  4. Produkty mají vlastní URL

    • Stránkování kategorie slouží k objevování
    • Produkty jsou hlavní obsah

Výsledek:

AI platformy citují naše produktové stránky, které objeví díky stránkované struktuře kategorií.

FM
FrontendDev_Marcus OP Frontend Developer · December 17, 2025

Tohle bylo neskutečně užitečné. Plán implementace:

Přístup: Hybridní stránkování

Fáze 1: Přidat stránkované cesty (Týden 1-2)

  • Vytvořit /blog/archive/[page] cesty
  • SSR pro plný obsah v HTML
  • Přidat stránkovací navigaci
  • Aktualizovat sitemapu

Fáze 2: Úprava stávajícího nekonečného scrollu (Týden 3)

  • Nekonečný scroll ponechat na /blog
  • Jako datový zdroj využít archivní stránky
  • Canonical z /blog na /blog/archive/1

Fáze 3: Testování a ověření (Týden 4)

  • Testovat s vypnutým JS
  • curl testy pro AI user-agenty
  • Sledovat míru citací AI

Technická implementace:

/blog                 → Nekonečný scroll (pro lidi, canonical na archive/1)
/blog/archive/1       → Stránkované (pro crawlery, canonical na sebe)
/blog/archive/2       → Stránkované (pro crawlery)
/blog/[slug]          → Jednotlivé články (hlavní obsah)

Klíčové principy:

  • Obsah dostupný i bez JavaScriptu
  • Každý obsah má přímou URL
  • Sitemap obsahuje všechny stránky s obsahem
  • Nekonečný scroll je vylepšení, ne podmínka

Děkuji všem za detailní technické rady.

Have a Question About This Topic?

Get personalized help from our team. We'll respond within 24 hours.

Frequently Asked Questions

Umí AI crawlery zpracovat obsah s nekonečným scrollováním?
Většina AI crawlerů má omezené možnosti vykreslení JavaScriptu. Obsah, který se načítá až po interakci uživatele (scrollování), je pro AI systémy často neviditelný. Doporučuje se server-side rendering nebo hybridní přístup.
Jaký je nejlepší způsob stránkování pro AI crawlery?
Tradiční stránkování s unikátní URL pro každou stránku je nejpřístupnější pro AI. Každá stránka by měla být dostupná přímo přes URL, zahrnutá v sitemapě a neměla by vyžadovat JavaScript pro zobrazení obsahu.
Renderují AI crawlery JavaScript?
Schopnosti vykreslování JavaScriptu u AI crawlerů se výrazně liší. GPTBot má omezenou podporu JS. Některé crawlery vidí pouze počáteční HTML. Pro AI viditelnost by měl být klíčový obsah v prvotní serverové odpovědi, ne načítaný přes JavaScript.
Jak mohu otestovat, zda mají AI crawlery přístup k mému obsahu?
Vypněte JavaScript a zobrazte si stránku – tím se přiblížíte pohledu mnoha AI crawlerů. Zkontrolujte také robots.txt, aby AI crawlery nebyly blokovány, a ověřte, že se obsah nachází v počátečním HTML kódu.

Sledujte viditelnost svého obsahu pro AI

Zjišťujte, které vaše stránky jsou objevovány a citovány AI platformami. Identifikujte problémy s crawlingem, které ovlivňují vaši viditelnost.

Zjistit více