Content without JavaScript

Most agents read the HTML your server sends and do not run JavaScript. Whatever is not in that HTML does not exist to them.

Standard
Established

Who supports it

  • ClaudeNot supported

    Undated · last checked 9 Oct 2026: Claude API docs: Web fetch toolVerbatim: 'The web fetch tool currently does not support websites dynamically rendered with JavaScript.' It points to the separate browser-use tool for pages that need rendering. The latest tool version is web_fetch_20260318.

  • Claude CodeNot supported

    Undated · last checked 9 Oct 2026: Claude Code docs: Tools reference, WebFetch tool behaviorDocs say WebFetch 'fetches the page and converts the response to Markdown when the server returns HTML'. There is no rendering step. The docs do not literally say 'no JavaScript'; this reading is inferred from the documented pipeline.

  • GitHub CopilotSupported (announced)

    Published 11 Aug 2026 · last checked 9 Oct 2026: microsoft/vscode: webPageLoader.ts (fetch tool page loader)The VS Code fetch tool used by Copilot Chat loads the page in an offscreen Electron BrowserWindow with webPreferences javascript: true, then pulls content from the accessibility tree. This covers Copilot in VS Code, not necessarily other Copilot surfaces. The date is the file's last commit.

  • CCBotNot supported

    Published 11 Aug 2026 · last checked 9 Oct 2026: Common Crawl FAQVerbatim: 'Currently, JavaScript is not executed and Cookies are not used.' The page has no explicit updated date; 2026-08-11 is the date on the IP-range information it shows.

  • ApplebotSupported (announced)

    Published 4 Sept 2026 · last checked 9 Oct 2026: About Applebot (Apple Support)Verbatim: 'Applebot may render the content of your website within a browser. If javascript, CSS, and other resources are blocked via robots.txt, it may not be able to render the content properly.'

18 others: no evidence yet. 4 not applicable. See every agent and browser

What it checks

The extension fetches the page’s HTML as the server sends it and measures the visible text in it, ignoring scripts and styles. It also looks for an <h1>.

If the raw HTML has at least 500 characters of text, the page has enough server-rendered content and the result depends only on whether an <h1> is present.

If the raw HTML has less than that, a short page is not automatically a problem. The extension compares the raw text with the text on the rendered page in your browser. The page counts as depending on JavaScript when the rendered page has at least 500 characters and more than twice the text of the raw HTML.

Results

Status When
Pass The raw HTML has at least 500 characters of text and an <h1>
Warn The raw HTML has at least 500 characters of text but no <h1>
Warn The page has little text either way, raw or rendered
Fail The rendered page has at least 500 characters and more than twice the raw HTML’s text
Unmeasured The HTML could not be fetched, or the raw HTML is thin and the rendered page could not be read to compare it

How to fix

Render the page’s content on the server, so it is in the HTML response rather than added by scripts after load. Most frameworks support this through server-side rendering or static generation (for example Next.js, Nuxt, Astro, or SvelteKit with SSR or prerendering turned on).

Give the page a single <h1> that names what it is about, and enough text for an agent to tell what the page is for. An <h1> and a few hundred characters is a reasonable minimum.

You can see what an agent sees by fetching the page without a browser:

curl -s https://example.com/page | less

If the content you expect is missing from that output, agents cannot read it either.

Support by agent and browser

Announced means the vendor’s own docs or announcement say so. Published is the date on the vendor’s own page, where it has one. Checked is the last time our weekly research found that page still saying so.

AgentStatusSource
AI assistants
Claude AnthropicNot supported

no Claude API docs: Web fetch tool Undated · Checked Verbatim: 'The web fetch tool currently does not support websites dynamically rendered with JavaScript.' It points to the separate browser-use tool for pages that need rendering. The latest tool version is web_fetch_20260318.

Coding agents
Claude Code AnthropicNot supported

no Claude Code docs: Tools reference, WebFetch tool behavior Undated · Checked Docs say WebFetch 'fetches the page and converts the response to Markdown when the server returns HTML'. There is no rendering step. The docs do not literally say 'no JavaScript'; this reading is inferred from the documented pipeline.

GitHub Copilot GitHubSupported (announced)

microsoft/vscode: webPageLoader.ts (fetch tool page loader) Published · Checked The VS Code fetch tool used by Copilot Chat loads the page in an offscreen Electron BrowserWindow with webPreferences javascript: true, then pulls content from the accessibility tree. This covers Copilot in VS Code, not necessarily other Copilot surfaces. The date is the file's last commit.

AI crawlers
CCBot Common CrawlNot supported

no Common Crawl FAQ Published · Checked Verbatim: 'Currently, JavaScript is not executed and Cookies are not used.' The page has no explicit updated date; 2026-08-11 is the date on the IP-range information it shows.

Applebot AppleSupported (announced)

About Applebot (Apple Support) Published · Checked Verbatim: 'Applebot may render the content of your website within a browser. If javascript, CSS, and other resources are blocked via robots.txt, it may not be able to render the content properly.'

No evidence yet18
  • ChatGPT
  • Gemini
  • Perplexity
  • Copilot
  • Meta AI
  • ChatGPT Atlas
  • Comet
  • Dia
  • Gemini in Chrome
  • Edge Copilot Mode
  • Cursor
  • Codex
  • Windsurf
  • Amazonbot
  • Bytespider
  • Cohere
  • Mistral
  • DuckAssist
Not applicable4

Browsers show pages to a person after running their JavaScript, and don't read pages on their own, so whether the content is in the server's HTML makes no difference to them.

  • Chrome
  • Edge
  • Firefox
  • Safari

Adoption on the top 100 sites

79 of 84 measured sites implement it

Scanned 23 Oct 2026 with the Sitebulb Labs extension, against the Tranco list (tranco-56Z8N). 16 sites couldn’t be measured (bot challenge or timeout) and are left out of the share.

9 Oct 2026: 93%12 Oct 2026: 93%23 Oct 2026: 94%
9 Oct 2026 93% → 23 Oct 2026 94%
Sites implementing it79
  1. #1 google.com
  2. #2 cloudflare.com
  3. #3 aws.amazon.com (via amazonaws.com)
  4. #9 microsoft.com
  5. #12 apple.com
  6. #16 x.com (via twitter.com) (with warnings)
  7. #18 linkedin.com
  8. #24 azure.microsoft.com (via azure.com)
  9. #26 m365.cloud.microsoft (via office.com)
  10. #27 outlook.live.com (via live.com) (with warnings)
  11. #32 github.com
  12. #33 wikipedia.org
  13. #37 fastly.com (via fastly.net)
  14. #39 whatsapp.com (via whatsapp.net)
  15. #42 bing.com
  16. #43 netflix.com
  17. #44 triplinkintl.com
  18. #48 gandi.net
  19. #50 marketingplatform.google.com (via doubleclick.net)
  20. #52 uk.pinterest.com (via pinterest.com)
  21. #53 icloud.com (with warnings)
  22. #55 wordpress.org
  23. #56 teams.live.com (via skype.com)
  24. #57 cloudflare.net
  25. #60 digicert.com
  26. #61 adobe.com
  27. #63 tiktok.com (with warnings)
  28. #67 domains.google (via googledomains.com) (with warnings)
  29. #68 zoom.com (via zoom.us)
  30. #69 uk.yahoo.com (via yahoo.com) (with warnings)
  31. #71 endpoints.news
  32. #72 api.whatsapp.com (via wa.me)
  33. #76 opera.com
  34. #77 open.spotify.com (via spotify.com) (with warnings)
  35. #80 baidu.com (with warnings)
  36. #83 ya.ru (via yandex.net) (with warnings)
  37. #84 nginx.org
  38. #85 ntp.org (with warnings)
  39. #87 qq.com (with warnings)
  40. #90 vimeo.com
  41. #91 primevideo.com (via amazonvideo.com) (with warnings)
  42. #93 bunny.net (via b-cdn.net) (with warnings)
  43. #94 blogger.com (via blogspot.com) (with warnings)
  44. #95 mozilla.org
  45. #96 f5.com
  46. #98 telegram.org (via t.me) (with warnings)
  47. #99 store.epicgames.com (via epicgames.com)
  48. #101 wordpress.com
  49. #103 reddit.com (with warnings)
  50. #106 sentry.io
  51. #107 letsencrypt.org (via lencr.org)
  52. #109 ui.com
  53. #110 european-union.europa.eu (via europa.eu)
  54. #112 chatgpt.com
  55. #116 bitly.com (via bit.ly)
  56. #117 ipify.org
  57. #119 nic.ru (with warnings)
  58. #120 samsung.com
  59. #122 intuit.com
  60. #127 openai.com (with warnings)
  61. #128 one.one.one.one (via cloudflare-dns.com)
  62. #130 registrar-servers.com (with warnings)
  63. #131 pages.github.com (via github.io)
  64. #132 dropbox.com
  65. #133 skybridge.click (with warnings)
  66. #135 discord.com (via discord.gg)
  67. #136 developer.adobe.com (via adobe.io)
  68. #139 apache.org
  69. #140 android.com
  70. #144 vk.ru (with warnings)
  71. #147 reg.ru (with warnings)
  72. #150 t-online.de
  73. #151 archive.org (with warnings)
  74. #153 webex.com
  75. #154 snapchat.com
  76. #156 godaddy.com
  77. #158 kaspersky.co.uk (via kaspersky.com)
  78. #159 firebase.google.com (via crashlytics.com)
  79. #160 tumblr.com (with warnings)

Overview

8/9

Established

Widely supported and widely deployed.

How this rating is worked out8 of 9 points
FactorPointsWhy
Vendor support2 / 32 vendors supporting, 0 partly or planned
Top-100 adoption3 / 394% of measured sites
Spec maturity3 / 3Published standard

8 or more points is Established, 5 to 7 is Gaining traction, 2 to 4 is Speculative and under 2 is Stalled. A feature is also Stalled when more vendors have said no than yes. Read the spec.

Community insights

  • Mixed

    OAI-SearchBot (search) and GPTBot (training) stopped just fetching HTML and started running JavaScript and rendering pages.

    Hisashi SpaceDeveloper of @SOHOOn their blog, 30 Sept 2026XWebsite
  • In favour

    So over a year later, AI Search platforms still cannot render JavaScript-based content. Therefore, I would still be very careful with how you leverage JavaScript-based content on your site.

    Glenn GabeSEO consultant, G-Squared InteractiveOn their blog, 19 Oct 2026XBlueskyWebsite
  • In favour

    The data indicates that while ChatGPT and Claude crawlers do fetch JavaScript files (ChatGPT: 11.50%, Claude: 23.84% of requests), they don’t execute them. They can’t read client-side rendered content.

    Giacomo ZecchiniR&D Director, MERJOn their blog, 17 Dec 2024X

Quotes are from public posts, checked against the original before they appear here. Suggest an insight, or ask for yours to be removed.