▶  Technical SEO · S6E128 · 1:01:15 · July 20, 2026

Why JavaScript isn’t the problem – Rendering Is with Giacomo Zecchini

Guest: Giacomo Zecchini, R&D Director at Merj
Hosts: Jon Clark & Joe DeVita

Play episode
0:00 1:01:15

about this episode

Giacomo Zecchini has spent years injecting tracking beacons into Google’s rendering service to replace industry folklore with data. His research with Vercel found that virtually every indexable page crawled by Googlebot gets rendered — so the “rendering budget” most SEOs plan around doesn’t behave the way the industry assumes. The real failures live in implementation: APIs timing out mid-render, lazy-loaded content that never fires under Google’s viewport expansion, and hero images that shove main content thousands of pixels down the page. Do AI crawlers render JavaScript? Some can — but none do it consistently. Giacomo’s testing shows bots like ClaudeBot, Mistral, and DuckAssistBot sometimes render and sometimes fetch raw HTML using the same user agent, which is why Answer Engine Optimization (AEO) starts with content that survives a no-render fetch. He also makes the case for serving Markdown to bots via the Accept HTTP header (a web standard) instead of .md URLs, and shows how one swapped ARIA label made ChatGPT’s agent click Cancel instead of Save — turning accessibility into an agentic-web requirement, not a nice-to-have.

In This Episode

  • Why “JavaScript problems” are really rendering and implementation problems
  • The rendering budget myth, tested against live Googlebot data
  • How does Google’s viewport expansion handle lazy loading and infinite scroll?
  • Auditing rendering backwards: from rendered page to rendering tree
  • Which AI crawlers actually render JavaScript — and why it changes per fetch
  • Serving Markdown via the Accept header vs. .md URLs vs. llms.txt
  • Why bad ARIA labels make AI agents take the wrong action on your site A masterclass in the infrastructure layer of search visibility — what machines can actually access, interpret, and act on.

Connect with Giacomo Zecchini

Giacomo’s Website
Giacomo on LinkedIn
Giacomo on Slideshare
Giacomo on SpeakerDeck
Giacomo on Mastodon
Giacomo on X
Giacomo on Bluesky

Chapters

  • 0:00

    Episode Intro: Rendering as Infrastructure

  • 2:29

    Meet Giacomo Zecchini of Merj

  • 5:52

    Foundations First at Google Search Central

  • 9:12

    Busting the Rendering Budget Myth

  • 12:24

    Why JavaScript Isn’t the Problem

  • 17:12

    How the DOM and Rendering Tree Work

  • 21:04

    Lazy Loading and Viewport Expansion

  • 26:21

    Auditing Rendering From the End Backwards

  • 31:24

    Do AI Crawlers Actually Render?

  • 37:03

    Accept-Language Shortcuts in AI Bots

  • 40:06

    Should You Serve Markdown to LLM Bots?

  • 47:32

    Is llms.txt Worth Implementing?

  • 48:48

    AI Agents, ARIA Labels, and Accessibility

  • 56:30

    Rapid Fire: Crawlers and Log Files

  • 1:00:12

    Where to Find Giacomo

Resources mentioned

  • Merj

    Merj Official Site

  • Article

    Google JS Rendering Capabilities Research with Vercel

  • Article

    AI Cralwer’s Accept Language Research

  • Article

    Merj’s take on serving Markdown Files