← Free tools

JavaScript Dependency Checker

The JavaScript Dependency Checker fetches the raw HTML of a page, the way a crawler that does not run JavaScript sees it. It counts the words and headings that are in that HTML, checks for an empty app shell, and measures how much of the markup is script. You get a pass, warning or fail for each check.

Updated

Free, no account needed.

How to read the result

Many AI crawlers do not run JavaScript, and support varies by crawler. They read the HTML the server sends. If your content is added by scripts after the page loads, those crawlers may see an empty page.

The checker fetches your page without running any scripts and shows what is left.

What each check looks at

The four checks use the raw HTML only.

CheckPasses when
Readable text in the HTML300 or more words (120 to 299 is a warning)
Headings in the HTML2 or more headings
Not an empty app shellNo empty mount element like root, app or __next
Markup is mostly contentUnder 50% of the HTML is inside script tags (50% to 75% is a warning)

Fixing a page that needs JavaScript

The fix is to get the content into the HTML the server sends. Server-side rendering and static generation both do that. A framework that renders on the server can still show as hydrated here, and passes when the text is in the markup.

Serving crawlers a separate prerendered copy of the page is cloaking and can cause problems with search engines.

  1. Find the content that is missing from the raw HTML, usually the headline, the main answer, pricing and key links.
  2. Render those parts on the server, or generate the page at build time.
  3. Keep real headings in the HTML so the outline is there.
  4. Deploy, then run the checker again.

Then check access

A crawler that is blocked never gets the HTML at all. The AI crawler checker shows which crawlers your robots.txt lets in.

Common questions

Many do not, and support varies by crawler. The safe approach is to put the content you want read into the HTML.
Only if the content is added in the browser. A Next.js page rendered on the server has its text in the HTML and passes. A client-rendered React app often ships an empty root element and fails.
It helps a little. Most crawlers read the main document, so the content belongs there.

Related study: Which AI Crawlers Do the Sites ChatGPT and Google Cite Block?

Track your AI visibility every week

Peak Answer runs checks like these every week, then writes the content and gets the placements.

Start 7 day trial