Home / Blog / seoscore.tools Report: False Positives Explained
Site Audit

seoscore.tools Report: False Positives Explained

25 October 2026 · By John Carlsson
seoscore.tools graded the aiwebpageseo.com home page 88, grade A, with 28 issues. Checked against the live page, five findings were false: the 45.4 KB it called inline JavaScript is JSON-LD structured data, which browsers do not run; the site does use IndexNow; it is not built on Drupal; a single JSON-LD block cannot be consolidated; and the page has 30 labelled form controls, not 0. Its warning of 2 render-blocking scripts was overstated: there is one, which it also lists separately.

What happened

On 25 October 2026 we ran seoscore.tools, a free SEO, AEO and GEO audit with 260+ checks, on the aiwebpageseo.com home page. It scored the page 88, grade A, and listed 28 issues. We checked the issues against the live page from our own server. Five were false positives and one was overstated. This post covers those six, with the evidence for each.

The short version

False positive 1: "Inline JS: 45.4 KB — too much, use external scripts"

What the report said. A warning that the page has 45.4 KB of inline JavaScript and should move it to external scripts.

What the page has. We measured every <script> element on the page. Inline executable JavaScript: 0.0 KB. The only inline script block is the page's JSON-LD structured data:

<script type="application/ld+json"> ... </script>   45.3 KB

A script element with type="application/ld+json" is a data block. Browsers do not run it, so it does not block rendering or need to move to an external file. The same report gives the same 45.4 KB figure for the schema in its next warning, which shows it counted the structured data twice: once as schema and once as JavaScript.

What the rule says. The HTML Standard treats a script element whose type is not a JavaScript type as a data block, which the browser does not execute. Google's structured data documentation recommends JSON-LD placed in exactly this kind of script element.

Who complies. Our page complies. It has no inline JavaScript; its Content Security Policy does not allow any.

False positive 2: "No IndexNow integration"

What the report said. "No IndexNow integration — optional: speeds up Bing/Yandex indexing only."

What the site has. An IndexNow key file in the site root, and IndexNow submissions for every new page. On the day of this scan, every submission from our server returned status 200. IndexNow works by the site sending changed URLs to the search engines; nothing about it has to appear in the page HTML, so a scan of the home page cannot tell whether a site uses it.

What the rule says. The IndexNow documentation asks for a key file hosted on the site and for URLs to be submitted to the IndexNow endpoint when they change. It does not ask for any tag in the page.

Who complies. Our site complies. The scanner reported something it had no way to see.

False positive 3: "Detected: SaaS (Drupal)"

What the report said. "Detected: SaaS (Drupal) — 57% confidence."

What the page has. No Drupal generator tag and no Drupal code. The word "Drupal" appears four times, all in our own text, where we list the website platforms our audits are tested on. The detector read a mention in the page text as the platform the site is built on.

False positive 4: "Schema may be excessive: 1 JSON-LD blocks … consider consolidating"

What the report said. "Schema may be excessive: 1 JSON-LD blocks, 45.4 KB total — consider consolidating."

Why it is wrong. There is already only one JSON-LD block. One block cannot be consolidated any further. The same report passes "All schema types have required properties" and "All 1 JSON-LD block(s) have valid syntax". Google does not set a size limit on structured data, and a page that describes the website, the organisation, the author, the tools and a set of questions and answers will naturally carry more of it.

False positive 5: "All 0 form input(s) have labels or aria-labels"

What the report said. A pass: "All 0 form input(s) have labels or aria-labels."

What the page has. 30 form controls: the Plain English and Technical switches on each audit card, every one with its own label. WAVE from WebAIM counted the same 30 form labels on the same day. The pass is right that nothing is unlabelled, but a check that found no inputs on a page with 30 did not test them.

Overstated: "2 render-blocking scripts"

What the report said. "2 render-blocking scripts — add defer or async attribute", and separately "1 render-blocking script(s) in head — add defer or async".

What the page has. The scripts in the page head:

<script src="/index-head.js">
<script src="/gdpr-consent.js" defer>
<script type="application/ld+json">
<script src="/pwa-register.js" defer>

One script without defer or async: /index-head.js. The others are deferred, and the JSON-LD block is data. The report lists the same script under two warnings, one of which counts it as two.

How to check a report like this yourself

Our Combined Audit runs SEO, AEO, schema, security and accessibility checks on the live page and shows the evidence behind each result.

The full reports

The seoscore.tools report and our live server checks are published in full and unedited. See the full reports.

Sources

Frequently asked questions

Is seoscore.tools accurate?

Mostly, but not entirely. On our home page it passed most checks correctly, yet five findings were false and one was overstated. It counted 45 KB of JSON-LD structured data as inline JavaScript, said the site had no IndexNow integration when it does, detected Drupal on a site that does not use it, advised consolidating a single schema block, and found 0 form inputs on a page with 30. Check its warnings against your page source before acting on them.

Does JSON-LD count as inline JavaScript?

No. JSON-LD sits inside a script element with the type application/ld+json, which makes it a data block. Browsers do not run it, so it does not slow rendering or count as inline JavaScript for performance or Content Security Policy purposes. Google recommends JSON-LD for structured data in exactly this form. An audit that adds its size to your inline JavaScript total is counting data as code. Check the script type before moving anything into an external file.

Can an SEO audit tell whether my site uses IndexNow?

Not from the page itself. IndexNow works by your site sending changed URLs to the search engines, using a key file hosted on your site. Nothing about it needs to appear in your HTML, so a scan of a page cannot see it. If an audit says you have no IndexNow integration, check for your key file and your own submission logs before believing it. Bing, Yandex and other engines that support IndexNow confirm each submission with a status code.

Is a large JSON-LD block a problem?

Not in itself. Google sets no size limit on structured data, and what matters is that the markup is valid, accurate and describes what is on the page. A home page that describes the website, the organisation, the author, its products or tools and a set of questions and answers will naturally have more structured data than a simple article. Remove anything that does not match the visible page, but do not cut valid markup just because it is long.

What is a render-blocking script?

A script in the page head without the defer or async attribute. The browser stops building the page until it has downloaded and run that script, which delays the first paint. Adding defer lets the page keep loading and runs the script once the HTML is parsed. Scripts at the end of the body, deferred scripts and JSON-LD data blocks are not render-blocking, so count only the ones that really are.

💬 Got a problem?

aiwebpageseo.com is a data-driven SEO and AEO platform providing a free suite of technical website tools.