Serve the essential content in the HTML, without waiting for JavaScript
Description
This criterion checks what a crawler that does not run JavaScript can read. iPand compares the HTML sent by your server with the page displayed after scripts run, using the same extractor.
The raw HTML must already contain the title (and the H1 if the page has one), at least 80% of the words of the main text, at least 80% of the internal links, the same JSON-LD structured data types, and the visible contact details: phone, email or address.
Why it matters for AI engines
Google says it plainly: not all bots can run JavaScript. Even Google, which does, puts pages in a queue before rendering them, which can take time. Content written in the served HTML is readable by any crawler that reaches the page, from its first visit.
- Text added by scripts can stay invisible to crawlers that do not run them: the page looks empty or incomplete to them.
- Google only discovers links written as <a> elements with an href attribute; a button that changes page through a script is not followed.
- For its AI features, Google recommends making important content available in textual form.
How to fix it
- 1 Render the main text on the server If your site is a JavaScript application (React, Vue, Angular…), turn on server-side rendering, or prerender pages at publication time: the server then sends a page that is already filled in. The main frameworks offer it. This is the point that weighs most in the criterion.
- 2 Write the title and the H1 in the HTML The <title> tag and the H1 heading must be in the HTML sent by the server, not added by a script after loading.
- 3 Serve links as a href links Navigation links and links to your internal pages must be <a href="…"> elements present in the HTML. A button or clickable element that changes page through a script is not a link for a crawler.
- 4 Put the JSON-LD and contact details in the served HTML Write the <script type="application/ld+json"> blocks directly in the HTML, rather than injecting them with a tag manager. Do the same for phone, email and address: written as text in the page, not loaded by a widget.
- 5 Compare with and without JavaScript View the page’s source code (Ctrl+U in most browsers) or turn JavaScript off, then check that the text, links, JSON-LD and contact details are there. This is what a crawler that does not run scripts reads.
Key takeaway
Anything that only appears after scripts run may stay invisible to some crawlers. Serve everything AI needs to read in the HTML: title, text, links, structured data and contact details.