← Back to Blog

When 80% Of Your Content Is Invisible To Google

When 80% Of Your Content Is Invisible To Google

E-commerce site has 4,000 products. Catalog page uses infinite scroll. Googlebot crawls it, sees the first 12 products, scrolls down to the IntersectionObserver trigger, fetches the next 12 via AJAX... wait, no it doesn't. Googlebot doesn't scroll. It renders the initial viewport and moves on.

The site indexes 12 of its 4,000 products via the catalog page. The product detail pages might still get indexed via sitemap, but the catalog signal — the fact that all 4,000 products belong to this category — gets lost.

This is one of the highest-impact, lowest-known SEO bugs in 2026. Almost every SaaS-built e-commerce template ships with infinite scroll by default and no fallback.

What the Infinite Scroll Crawl Audit does

You paste a page URL (typically a listing / catalog / feed page). The tool:

  1. Fetches the page through the proxy.
  2. Scans the HTML for infinite-scroll signals: IntersectionObserver, load-more JS hooks, data-page attributes, AJAX/fetch calls, scroll-position JS.
  3. Checks for paginated fallback signals: rel="next"/rel="prev", paginated ?page=N URLs, <noscript> blocks.
  4. Counts content items (article / li / div with item/card/product/post classes) in the initial HTML.
  5. Computes a crawl-friendly score (0-100).
  6. Emits an AI prompt with the exact rel="next" / <noscript> HTML to add.

What the score thresholds mean

90-100 — no infinite-scroll detected, or infinite-scroll with full paginated fallback. Crawler-friendly.

70-90 — infinite-scroll detected with rel="next" / paginated fallback URLs. Crawler can reach all content via the alternative path even though the initial viewport is partial.

50-70 — infinite-scroll detected with <noscript> fallback only. Bots without JS see the noscript content; bots with limited-JS budget (most including Googlebot) see only the first viewport.

Under 50 — infinite-scroll without any fallback. The first viewport is everything Google sees. If your catalog has 1000 items and the first viewport shows 12, you've effectively de-indexed 988 of them.

The four fix patterns, ranked

1. Switch to standard pagination. ?page=1, ?page=2, etc. Each page server-rendered. Slowest UX but cleanest crawl. Google's preferred pattern as of 2026.

2. Hybrid: infinite-scroll for users + rel="next" for crawlers. The page implements infinite scroll, but ALSO ships rel="next" / rel="prev" links in the head that point to traditional ?page=N URLs that the server can also render directly. Best of both. The audit checks for this exact pattern.

3. "Load more" button instead of scroll trigger. Button-triggered "load more" gets crawled by Googlebot more reliably than IntersectionObserver-triggered loads — but still not perfectly. Pair with <noscript> for safety.

4. <noscript> fallback only. Add a <noscript> block containing the first ~30 paginated links. This catches bots without JS but is the weakest of the four — Googlebot DOES execute JS, so it sees the empty list, not the noscript content.

The 14-day fix path

Day 1-3: Run the audit on every category / catalog / feed page. Identify which ones have infinite scroll without fallback.

Day 4-7: Pick option 2 (hybrid) for catalog pages with >50 items, option 1 (standard pagination) for smaller catalogs. Implement.

Day 8-10: Submit the new paginated URLs to GSC via sitemap. Verify crawl in GSC's URL Inspection tool.

Day 11-14: Monitor indexed-page count. Lift typically appears within 14-30 days as Google re-crawls.

What the audit can't catch

The tool reads the rendered HTML the proxy receives. Limitations:

  • JS that's executed client-side after fetch — the proxy doesn't run JS, so anything that depends on JS to load won't appear. Googlebot DOES run JS (most of the time), so the tool may underreport content compared to what Google actually sees.
  • Server-side rendered SPAs — if the SPA hydrates client-side but server-renders the initial state, the audit will see the SSR content correctly. If the SPA is fully client-rendered (rare in SEO-conscious sites), the audit will show ~0 content items.

For a closer-to-Googlebot view, run a tool that actually executes JS — Screaming Frog or Sitebulb's render mode.

Related reading

Fact-check notes and sources

  • Google guidance on infinite scroll: Google Search Central — Sliders and pagination
  • rel="next" / rel="prev" deprecation: Google removed support in 2019 but the pattern still helps Bing + provides paginated URL discovery for Googlebot
  • IntersectionObserver crawler behavior: synthesis of community testing 2020-2026; Googlebot evaluates IntersectionObserver but does not perform actual scroll events
  • Recovery timeline (14-30 days): pattern observation across SMB sites post-fix

This post is informational, not JS-SEO-consulting advice. Mentions of Google, Googlebot, Screaming Frog, Sitebulb are nominative fair use. No affiliation is implied.

← Back to Blog

Accessibility Options

Text Size
High Contrast
Reduce Motion
Reading Guide
Link Highlighting
Accessibility Statement

J.A. Watte is committed to ensuring digital accessibility for people with disabilities. This site conforms to WCAG 2.1 and 2.2 Level AA guidelines.

Measures Taken

  • Semantic HTML with proper heading hierarchy
  • ARIA labels and roles for interactive components
  • Color contrast ratios meeting WCAG AA (4.5:1)
  • Full keyboard navigation support
  • Skip navigation link
  • Visible focus indicators (3:1 contrast)
  • 44px minimum touch/click targets
  • Dark/light theme with system preference detection
  • Responsive design for all devices
  • Reduced motion support (CSS + toggle)
  • Text size customization (14px–20px)
  • Print stylesheet

Feedback

Contact: jwatte.com/contact

Full Accessibility StatementPrivacy Policy

Last updated: April 2026