Does Infinite Scroll Hurt AI Citation?
It can — if content only loads as the user scrolls via JavaScript, an AI crawler that doesn't scroll or run scripts never sees it, so anything below the initial load is invisible. The fix is to make that content reachable through real, crawlable links or server-rendered HTML, not just scroll events.
It can — if content only loads as the user scrolls via JavaScript, an AI crawler that doesn't scroll or run scripts never sees it, so anything below the initial load is invisible. The fix is to make that content reachable through real, crawlable links or server-rendered HTML, not just scroll events.
Quick answer
Yes, if it's JavaScript scroll-loaded. Crawlers generally don't scroll or run scripts, so content that appears only on a scroll event is never fetched. Back infinite scroll with real paginated URLs or server-rendered HTML so every item has a fetchable address — scroll as enhancement, links as the foundation.
Why does infinite scroll cause problems?
Because crawling isn't browsing. A person triggers more content by scrolling, but most AI crawlers just fetch the HTML the server returns and stop — they don't scroll, click, or wait for scroll-triggered scripts. So if your articles, products, or answers only appear as the user scrolls, the crawler sees just the first slice and everything below it is effectively unpublished to engines. It's an Access pillar leak — and even Google, which does render JavaScript, warns in its JavaScript SEO basics that content depending on user interaction may not be indexed.
How do I keep the content reachable?
Give every item a real, fetchable URL. Provide paginated links or a server-rendered archive so a crawler can walk to each piece without scrolling, and list those URLs in your sitemap. Use progressive enhancement: links that work with JavaScript off, with infinite scroll layered on top for humans. That way users get the smooth feed and bots get addressable content.
How do I know if it's hurting me?
Test what the crawler receives. Fetch the page with JavaScript disabled or as an AI user-agent and see how much content is actually present — if only the first batch returns, the rest is hidden. Lazy-loading images is generally safe, but lazy-loading core text or navigation behind scroll is the failure mode. Anything important belongs in the served markup, not behind an interaction.
Related questions
Does JavaScript break AI citation?
Often — most AI crawlers don't run JavaScript, so client-side-only content is invisible.
Read the full answer →How do I make a single-page app citable?
Server-render or pre-render the content so crawlers receive real HTML, not an empty shell.
Read the full answer →How do I check AI crawlers can read my site?
Fetch your pages as each bot's user-agent and confirm the full content returns.
Read the full answer →Frequently asked questions
- Does infinite scroll hurt AI citation?
- It can, when content is loaded only by scroll-triggered JavaScript. AI crawlers generally don't scroll or run scripts, so anything that appears only after a scroll event is never fetched and can't be cited. If your real content lives below an infinite-scroll boundary, engines may see just the first slice.
- How do I make infinite-scroll content crawlable?
- Back it with real URLs. Provide paginated links or a server-rendered archive that exposes every item at a fetchable address, so a crawler can reach content without scrolling. Progressive enhancement — links that work without JavaScript, scroll as a nicety on top — keeps both users and bots covered.
- Do crawlers scroll a page like a person?
- Generally not. Most AI crawlers fetch the HTML a server returns and stop there; they don't simulate scrolling, clicks, or other interactions. Googlebot renders more, but even it doesn't reliably trigger infinite scroll. Content gated behind interaction is unreliable to crawl.
- Is lazy loading bad for AEO?
- Lazy loading images is usually fine, but lazy-loading core text or links via scroll can hide them from crawlers. The test is simple — if the content isn't in the initial HTML and only appears on interaction, a non-scrolling crawler won't get it. Keep important content in the served markup.