aidirecto · AI tools, inspected.Sun, 1 Nov 2026Free tool · SEO checker
aidirecto
Free · no sign-up

Free SEO checker that shows its working.

Paste a URL. We fetch the page the way Google and AI crawlers do, run 32 checks, and give you a score out of 100 — with the measured value, the reason and the fix for every point we take off.

32 checks7 areas20 checks an hour, freeScoring rules
Sample reportacme-notes.example/pricing
77/100
Checked
31 Oct 202614:02 UTC
200 · 412 ms · 86 KB
B
22 passed6 warnings2 failed
Indexability
20/20
Title & headings
11/15
Content
10/15
Structured data
6/10
Social preview
9/10
AI search readiness
11/20
Technical basics
10/10
Example pageHow it is scored

How the page looks in search

Google resultTitle cut at 600px
Acme Notes
acme-notes.example › pricing
Acme Notes Pricing — AI Meeting Notes for Teams, Plans from $8 …
Compare Acme Notes plans. Free for personal use, Pro from $8 per seat with unlimited transcripts, speaker labels and Slack summaries.
title 83 chars · ≈764pxdescription 133 chars
Shared link · X / LinkedIn / SlackHas image
Share image preview
acme-notes.example
Acme Notes Pricing — Plans from $8
Free for personal use, Pro from $8 per seat.

Every check, with the fix

Indexability

20 pts20 / 20
  • Pass

    Page answers 200

    Search engines only index pages that load successfully.

    HTTP 200
  • Pass

    No redirects

    Each hop costs crawl time and a little link equity. One redirect (http → https, or adding www) is normal.

  • Pass

    No noindex

    Neither the robots meta tag nor the X-Robots-Tag header blocks indexing.

    no robots meta, no X-Robots-Tag
  • Pass

    Canonical points to this page

    The page names itself as the version to index.

    https://acme-notes.example/pricing
  • Pass

    robots.txt allows Googlebot

    Google may crawl this path.

    allowed
  • Pass

    Sitemap found

    A sitemap is how search engines find new and deep pages quickly.

    https://acme-notes.example/sitemap.xml · lists this page

Title & headings

15 pts11 / 15
  • Warn

    Title is longer than Google shows

    Google cuts titles at about 600px (roughly 60 characters). Whatever comes after is not seen.

    Move the important words to the front and shorten to about 60 characters.

    83 chars · ≈764px — Acme Notes Pricing — AI Meeting Notes for Teams, Plans from $8 a Month for Startups
  • Warn

    Heading levels are skipped

    Headings are the outline crawlers and screen readers use. Jumping from H2 to H4 breaks it.

    Use the next level down (H2 → H3), styling it however you like.

    H2 → H4 (“Personal”)
  • Pass

    Meta description length is right

    Fits in the snippet under the title.

    133 chars — Compare Acme Notes plans. Free for personal use, Pro from $8 per seat with unlimited transcripts, speaker labels and Slack summaries.
  • Pass

    Exactly one H1

    One H1 names the page topic clearly.

    Simple pricing for every team

Content

15 pts10 / 15
  • Warn

    291 words in the HTML

    Thin pages rarely rank: there is little for a search engine to match a query against.

    Add useful copy: what it does, who it is for, how it works, FAQs. If the text exists but is rendered by JavaScript, render it on the server.

    291 words before JavaScript runs
  • Warn

    1 of 3 images lack alt

    Alt text is how image search and screen readers know what an image shows. alt="" is fine for decoration.

    Add alt text to meaningful images and alt="" to decorative ones.

    2/3 with an alt attribute
  • Pass

    4 internal links

    Internal links let crawlers reach the rest of the site and tell them which pages matter. Links added only by JavaScript are not counted.

    4 unique internal · 0 external
  • Pass

    Language declared (en)

    The lang attribute tells search engines and screen readers which language the page is in.

    en

Structured data

10 pts6 / 10
  • Fail

    1 JSON-LD block does not parse

    A block with a JSON syntax error is ignored completely.

    Fix the JSON (trailing commas and unescaped quotes are the usual cause) and test with Google’s Rich Results Test.

    1/2 valid JSON
  • Pass

    2 JSON-LD blocks

    Structured data tells search engines and AI assistants what the page is — a product, an app, an article — in a form they do not have to guess.

  • Pass

    Uses schema.org types search engines read

    Only some types produce rich results or are used by assistants; custom types are ignored.

    SoftwareApplication, Offer

Social preview

10 pts9 / 10
  • Warn

    No twitter:card

    X shows a small card by default; summary_large_image gives the full-width image.

    Add <meta name="twitter:card" content="summary_large_image">.

  • Pass

    og:title and og:description set

    Slack, LinkedIn, X and iMessage build the link card from Open Graph tags; without them the card falls back to whatever they can scrape.

    og:title — Acme Notes Pricing — Plans from $8 og:description — Free for personal use, Pro from $8 per seat.
  • Pass

    Share image loads

    Shared links will show this image.

    https://acme-notes.example/og.png · 200 image/png

AI search readiness

20 pts11 / 20
  • Fail

    PerplexityBot blocked

    These crawlers fetch pages so ChatGPT search, Claude and Perplexity can cite and link them. Blocked, the page cannot be a source.

    Allow the search crawlers in robots.txt. You can still block training crawlers like GPTBot separately.

    PerplexityBot: Disallow: /
  • Warn

    No /llms.txt

    llms.txt is a short markdown index of your key pages for AI assistants. It is a proposal, not a standard, so missing it costs little.

    Publish /llms.txt starting with "# Your product", a one-line summary, then links to pricing, docs and features.

    https://acme-notes.example/llms.txt · 404 text/html
  • Pass

    Content readable without JavaScript

    Most AI crawlers do not run JavaScript. What is not in the server HTML does not exist for them, and Google renders it later, if at all.

    291 words in the server HTML
  • Pass

    Snippets allowed

    Search engines may quote the page in snippets and AI answers.

  • Info

    Training crawlers blocked: GPTBot

    GPTBot, ClaudeBot, Google-Extended and CCBot collect training data. Blocking them is your call and does not affect search, so it is not scored.

    1 of 4 blocked

Technical basics

10 pts10 / 10
  • Pass

    Served over HTTPS

    HTTPS is a ranking signal and browsers mark plain HTTP pages as not secure.

    https
  • Pass

    Mobile viewport set

    Google indexes the mobile version of pages. Without a viewport tag phones render a shrunken desktop page.

    width=device-width, initial-scale=1
  • Pass

    Character set declared

    Without a declared charset, accented and non-Latin text can come out garbled.

    text/html; charset=utf-8
  • Pass

    Favicon declared

    Google shows the favicon next to your result on mobile and desktop.

    https://acme-notes.example/favicon.svg
  • Pass

    HTML is 86 KB

    Large HTML is slow on mobile, and Google stops reading a file after 15 MB.

    86 KB
  • Pass

    Responded in 412 ms

    A slow server delays everything else on the page and slows crawling. Measured once from our server, so treat it as a rough number.

    412 ms from our server, redirects included
  • N/A

    Single language (no hreflang)

    Each language version must list itself and the others, or Google ignores the set.

How the SEO score works

PointsAreaWhat it measures
20IndexabilityStatus 200, at most one redirect, no noindex, a self-referencing canonical, Googlebot allowed in robots.txt, a sitemap we can find.
15Title & headingsTitle 30–60 characters, meta description 70–160, exactly one H1, no skipped heading levels.
15ContentWords in the HTML the server sends, alt text on images, internal links, a lang attribute.
10Structured dataJSON-LD present, every block parses, and it uses a schema.org type search engines act on.
10Social previewog:title and og:description, an og:image that actually loads, a twitter:card.
20AI search readinessAI search crawlers (OAI-SearchBot, Claude-SearchBot, PerplexityBot) allowed, content readable without JavaScript, snippets allowed, /llms.txt.
10Technical basicsHTTPS, mobile viewport, charset, favicon, HTML under 500 KB, response under 800 ms, hreflang that references itself.

The rules

  1. Each check carries a weight inside its area. Pass earns all of it, warn half, fail none.
  2. Checks that do not apply — hreflang on a one-language site, alt text on a page without images — are skipped, and the area is scored on what is left.
  3. A page that cannot be indexed (not 200, noindex, or Googlebot blocked) is capped at 40: one blocker matters more than ten polish items.
  4. Blocking AI training crawlers is reported but never scored — that is your call. Blocking AI search crawlers is scored, because it removes you from cited answers.
  5. Nothing we cannot measure from one fetch gets weight: backlinks, rankings, Core Web Vitals.
A90+
B75–89
C60–74
D40–59
F<40

What this SEO checker looks at

01

Can Google index it?

Status code, redirect chain, robots meta, X-Robots-Tag, canonical and sitemap.

02

Title and meta tags

Length in characters and in pixels, with a preview of the Google result.

03

Heading structure

One H1, and H2 → H3 order without skipped levels.

04

Content and links

Words before JavaScript, image alt text, internal links, the lang attribute.

05

Schema markup

Every JSON-LD block parsed, and its schema.org types listed.

06

Open Graph and X cards

The card people see when your link is shared, with the image actually fetched.

07

AI crawlers and llms.txt

Which AI search and training bots robots.txt lets in, and whether /llms.txt exists.

08

Speed and basics

Response time, HTML weight, HTTPS, mobile viewport, charset, favicon, hreflang.

What it can’t see

  • Content that only appears after JavaScript runs — we read the HTML your server sends, which is also what most AI crawlers read.
  • Core Web Vitals, backlinks and rankings. PageSpeed Insights and Google Search Console cover those.
  • Pages behind a login or a bot challenge. The report says when we were turned away instead of guessing.
Built an AI tool?

Get it in front of people looking for it.

Every listing on aidirecto is checked before it goes live and re-checked every week.

Submit your tool →

SEO checker FAQ

Is this SEO checker free?

Yes. No account and no email. Each address can run 20 checks an hour, which keeps the tool fast for everyone; a repeat check of the same URL within ten minutes reuses the last report.

Why is my score different from other SEO checkers?

Every tool weighs things differently. This one puts 20 of 100 points on AI search readiness and caps any page that cannot be indexed at 40. The full rules are on this page, so you can see exactly where each point went.

Does a higher score mean better rankings?

No. The score measures whether search engines and AI assistants can read, index and present the page. Rankings also depend on links, search intent and competition, which one fetch of one page cannot measure.

Should I block GPTBot and other AI crawlers?

Blocking training crawlers such as GPTBot, ClaudeBot or Google-Extended is a policy choice and does not change your score. Blocking the search crawlers — OAI-SearchBot, Claude-SearchBot, PerplexityBot — keeps your pages out of AI answers that cite and link sources, so that does cost points.

Can I check a page that renders with JavaScript?

Yes, but only what is in the HTML your server sends is scored. If the body is empty until JavaScript runs, the report says so. That is also what most AI crawlers see.

Do you store the pages I check?

No. The report is kept in a short-lived cache for ten minutes so a shared link opens instantly, then it is gone. Nothing is written to a database.