JavaScript SEO

JavaScript SEO for the bots that never run your JavaScript

JavaScript SEO used to mean making sure Googlebot could render your pages. AI search adds bots that often read only the raw HTML. WriteWorks fetches every page twice, once as plain HTML and once fully rendered, and measures how much of the main content is there before any script runs. Pages that depend on JavaScript are flagged, ranked by how much they lose, and listed with the fix.

7-day trial · Cancel anytime

Pages flagged because their main content needs JavaScript, each showing how much content is in the HTML before scripts run, with a Fix button (sample data).Pages flagged because their main content needs JavaScript, each showing how much content is in the HTML before scripts run, with a Fix button (sample data).
The platform

See WriteWorks in Action

This is the working product, not a mockup: the same visibility scores, briefs and published content your team would be looking at. Start a free trial and point it at your own domain, or take the tour of what sits behind the screen.

Get started
Surge45
Home
Ask AI
Opportunities128
Research
Create
Measure
AI visibility
AI discoverabilityNew
AI crawlers
Reports
Context
Support
Settings
Sign out
SCSam Cartersam@example.com
WRITEWORKS
Measure/AI discoverability
New
1.2M (62%) leftAsk AI
AI discoverability
Measure
Overview
Issues
Pages
Bots
Settings
All issuesPage size exceeds 2 MB crawl limit3Main content requires JavaScript rendering37Product page missing Product schema46Slow server response for AI crawlers21Schema present but invalid9Missing or stale dateModified118Indexable page blocked from some AI search bots41Changed pages not submitted to IndexNow27FAQ page missing FAQPage schema14
Issues
Every check AI Discoverability runs, with how many indexable pages fail it and how that changed since the comparison crawl.
The challenge

Why JavaScript hides pages from AI search

What a browser shows and what a bot reads are not the same page.

The page looks fine in a browser

A single-page app or a client-rendered template shows the full article to every visitor, and an empty shell to a bot that doesn't execute scripts.

Rendering tests check one URL

Inspecting a page in a testing tool tells you about that page. It doesn't tell you that every blog post on one template has the same problem.

Partial rendering is hard to spot

Often the heading is in the HTML but the body, the FAQ or the product details load later. The page isn't blank, it's just missing the part worth citing.

Mentions never reach the pipeline

Brand mentions inside AI answers rarely surface in analytics, so the work can't be tied back to revenue.

The solution

How the JavaScript rendering SEO audit works

Fetch twice, compare the content, rank the gap, fix it.

Each page's main content in the server HTML is compared with the rendered version, giving the share an AI bot can read without running scripts. Under 30% is flagged as content that requires JavaScript rendering; 30% to 79% as content that partly requires it.

◆How the JavaScript rendering SEO audit worksLIVE
WriteWorks Access, JavaScript and top issues. Close-up: Four breakdown cards with segmented bars (sample data).WriteWorks Access, JavaScript and top issues. Close-up: Four breakdown cards with segmented bars (sample data).
Success story

What real brands fixed with WriteWorks

What each brand fixed, measured before and after with the same audit, in their own words.

Job pages AI can read 5% → 100%

“Our job pages used to reach AI crawlers as a "Loading jobs..." placeholder. One rendering fix later, the share AI crawlers can read has gone from 5% to 100%, and every job page now names itself with a proper heading.”

Capabilities

What the audit measures

Rendering, plus the speed and size checks that sit beside it.

Raw versus rendered

Two fetches per page: plain HTML and fully rendered.

Content without JavaScript filter

Filter the Pages explorer to the pages that depend on scripts.

Schema after JavaScript

Structured data that only appears once scripts run, recorded separately.

Server response time

Each page timed with an AI user agent; over 0.8 seconds is flagged.

Page size

Pages over the 2 MB crawl limit flagged as an error.

Affected URL export

Every page with the issue, ready for a ticket.

Time savings

What changes

From spot tests to every page, every crawl.

TaskBeforeWith WriteWorksTime saved
Find pages that need JavaScriptTest URLs one at a timeEvery page measured each crawlDays of spot checks
Prioritise the templates to fixGuess from the URL patternRanked by pages affected and points lostTriage
Brief the developersWrite it up by handCopy the fix briefPer page
Confirm the rendering fixRe-test a sampleCompare two auditsCertainty
Included

What's included

JavaScript checks inside AI discoverability.

Raw HTML and rendered fetch for every crawled page
Share of main content readable without JavaScript, per page
Content requiring JavaScript (under 30%) flagged as a warning
Content partly requiring JavaScript (30% to 79%) flagged as a notice
Schema that only appears after JavaScript recorded separately
Server response time with an AI user agent, and page size
Issues ranked by pages affected and points lost
Scheduled crawls render at no AI token cost
Built for

Who uses it

The people who own how pages are built.

Technical SEO

JavaScript rendering SEO at site scale, for AI bots as well as Googlebot.

Developers

A clear target, the affected URLs and how to verify the fix.

Teams on JavaScript frameworks

Find the templates where client rendering hides the content.

Featured story

“We're a booking marketplace, so listings are everything. Since the fixes, pages fully readable without JavaScript went from 84% to 98%, our sitemap dates finally mean something, and our full llms.txt file is real. Over a third of our audited category pages now list their businesses as structured data, with the remaining markets up next.”

Fhresh team

Read the full story
72% → 98%
Pages answering crawlers in under 0.8 s
84% → 98%
Pages fully readable without JavaScript
29% → 58%
Key pages with the schema AI expects
FAQ

Frequently asked questions

Everything teams typically ask before getting started.

What is JavaScript SEO?+
JavaScript SEO is the work of making sure content that a site builds with JavaScript can still be found, read and indexed. Traditionally that meant checking how Googlebot renders a page. For AI search it also means checking what bots see in the raw HTML, because many AI crawlers and answer fetchers don't run scripts at all.
Do AI crawlers render JavaScript?+
Many don't, or don't reliably. A bot that reads only the server HTML sees whatever is there before scripts run. That is why WriteWorks measures the share of each page's main content present in the raw HTML rather than assuming a bot will render it.
How does WriteWorks measure JavaScript rendering?+
Each page is fetched as plain HTML and again fully rendered. The main content of the two versions is compared to give the share readable without JavaScript. Under 30% is reported as main content requiring JavaScript rendering, and 30% to 79% as part of the main content requiring it.
How do I fix pages that need JavaScript?+
Get the main content into the HTML the server sends: server-side rendering, static generation or pre-rendering, depending on your framework. Each affected page's fix brief sets out the target and how to check it, and the next crawl confirms whether it worked.
Does rendering use AI tokens?+
Not on scheduled crawls: rendering on the weekly or monthly crawl is included. A manual crawl uses plan AI tokens for rendering, and if tokens run out mid-crawl it carries on without rendering rather than stopping.
Is this the same as a Googlebot rendering test?+
No. It complements one. This audit reports what an AI bot can read without running scripts, across every page in the crawl, and folds the result into your AI readiness score alongside bot access, schema and freshness.
Reading the result

Three readings, three actions

Under 30% in the HTML

Main content requires JavaScript rendering. The page loses most of its bot access score; fix the template first.

30% to 79%

Part of the main content requires JavaScript. Often a body, FAQ or product block loaded after the page shell.

80% or more

The main content is in the server HTML, which is what an AI bot reading the raw page needs.

See what AI bots read before your JavaScript runs

A JavaScript visibility ratio for every page, ranked by impact, with the fix brief for each one.