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


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.
What a browser shows and what a bot reads are not the same page.
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.
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.
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.
Brand mentions inside AI answers rarely surface in analytics, so the work can't be tied back to revenue.
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.
Content that needs JavaScript is one of the heaviest deductions in the bot access pillar, and pages that earn more search clicks count for more in the score, so the template that hurts most rises to the top.
Open the issue to see every affected URL and the percentage of pages it touches, export the list, or open a page's fix brief and copy it for a developer.
After a move to server-side rendering or static generation, compare audits shows which pages were resolved and whether any regressed.


What each brand fixed, measured before and after with the same audit, in their own words.
“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.”
Rendering, plus the speed and size checks that sit beside it.
Two fetches per page: plain HTML and fully rendered.
Filter the Pages explorer to the pages that depend on scripts.
Structured data that only appears once scripts run, recorded separately.
Each page timed with an AI user agent; over 0.8 seconds is flagged.
Pages over the 2 MB crawl limit flagged as an error.
Every page with the issue, ready for a ticket.
From spot tests to every page, every crawl.
JavaScript checks inside AI discoverability.
The people who own how pages are built.
JavaScript rendering SEO at site scale, for AI bots as well as Googlebot.
A clear target, the affected URLs and how to verify the fix.
Find the templates where client rendering hides the content.
“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 storyEverything teams typically ask before getting started.
Main content requires JavaScript rendering. The page loses most of its bot access score; fix the template first.
Part of the main content requires JavaScript. Often a body, FAQ or product block loaded after the page shell.
The main content is in the server HTML, which is what an AI bot reading the raw page needs.
Related solutions, adjacent use cases, and platform features.
A JavaScript visibility ratio for every page, ranked by impact, with the fix brief for each one.