Skip to content
FORKOFF

Per our own AI-Overview audit of 1,026 buyer queries (June 2026), 879 returned an AI Overview and 233 of those cited FORKOFF.

FORKOFF · Tools

AEO Checker: is your page AEO-ready?

Paste a URL. Get a 6-dimension scorecard of AEO signals AI crawlers (Perplexity, Claude, ChatGPT-Bing) look for in the static HTML: schema density, FAQ structure, definitional opener, content-signal headers, meta + canonical, AEO-extra signals. Page-level audit, no LLM queries. Want per-brand citation share across LLMs instead? Use AI Search Visibility Checker.

URL to AEO readinessFORKOFF AEO · v1

Full URL including https://

Embed snippet
<iframe
  src="https://forkoff.xyz/tools/aeo-checker/embed"
  width="100%"
  height="1100"
  frameborder="0"
  loading="lazy"
  title="AEO Checker by FORKOFF"
></iframe>
Blog post (WordPress / Ghost / Hashnode)

Paste into a Custom HTML block.

Notion page

Use /embed and paste the iframe src URL.

Webflow or static site

Drop into an Embed element. Lazy-loaded by default.

Default height 1100px (adjust to fit)Free, no attribution requiredCC BY 4.0
How it works

Six signals decide the static-HTML AEO score.

This checker fetches one URL and scores six dimensions read straight from the static HTML: schema density, FAQ structure, definitional opener, content-signal headers, meta and canonical, and AEO-extra signals (llms.txt, JSON-LD alternate link, HTTPS). No LLM is queried. It answers whether the page's markup is structured the way an AI crawler expects, not whether ChatGPT currently cites the brand. The single highest-leverage fix for most sites is structured data, which our guide to schema markup for AEO covers signal by signal. If you are still deciding which surface to optimize first, the AEO vs GEO guide draws the extraction-versus-generative line. To read live citation share across five LLMs instead of parsing one page's markup, run the AI visibility checker.

Static-HTML AEO score

One score from six signals in a page's HTML.

The score sums six weighted dimensions read from the page's static markup: schema density (25 pts), FAQ structure (20), definitional opener (20), content-signal headers (15), meta and canonical (10), and AEO-extra signals (10). No LLM is called. The checker returns the composite 0-100 score, an A-F grade, and the finding behind every point lost.

Coverage

6 signals

Coverage

100 pts

Max composite score

Signal 010-25 pts
10 KNOWN AEO SCHEMA TYPES4 FOUND

Schema density.

3 points per JSON-LD block on the page (capped at 10), plus 2 points for every AEO-relevant schema type detected (FAQPage, Article, Organization, SoftwareApplication, Product, HowTo, WebPage, Service, LocalBusiness, VideoObject), capped at 15. FAQPage schema is the single strongest signal here.

Signal 020-20 pts
SCHEMA Q&A<DETAILS><DT>/<DD>SIGNAL SOURCES, NOT ONE METRIC

FAQ structure.

Counts FAQPage schema Q&A pairs (up to 14 points) plus raw <details>/<dt> HTML patterns (up to 4 points), with a 2-point bonus at five or more total FAQ signals. Schema alone, HTML alone, or both all count.

Signal 030-20 pts
NO MATCH0PARTIAL10FULL MATCH20FIRST 200 CHARS OF BODY TEXT

Definitional opener.

Scans the first 200 characters of visible body text for a '{Brand} is {noun} for {ICP}' sentence. A full match scores 20, a partial 'X is...' without an ICP clause scores 10, no match scores 0. The cheapest fix on this checker.

Signal 040-15 pts
17 PTS · H135 PTS · H223 PTS · H3

Content-signal headers.

Rewards exactly one H1 (7 points), two or more H2s (5 points), and any H3 (3 points). A hidden H1 (opacity-0 in the markup) is penalized 5 points, a pattern AI crawlers read as a manipulation attempt.

Signal 050-20 pts
Title 30-65 charsMeta description 130-165 charsCanonical uses HTTPSJSON-LD alternate linkllms.txt / llms-full.txtPage served over HTTPS4 OF 6 PASS

Meta, canonical & AEO-extra.

Title length (30-65 chars), meta description length (130-165 chars), and an HTTPS canonical tag score up to 10 points. A further 10 points come from a JSON-LD alternate link, an llms.txt / llms-full.txt reference, and HTTPS on the page itself.

The audit

Three inputs in. Three outputs out.

Inputs · what the checker needs

Input 01

Input 01

A single page URL. The one input the audit needs. Every other field is optional.

Input 02

Input 02

Optional: audit after JavaScript render. For client-rendered SPAs where a raw static fetch returns an empty shell, this mode hydrates the page first before scoring.

Outputs · what the checker returns

Output 01

Output 01

Composite score and grade. A 0-100 score summing all six weighted dimensions (schema 25, FAQ 20, opener 20, headers 15, meta/canonical 10, AEO-extra 10), mapped to an A-F grade.

Output 02

Output 02

Six per-dimension scores with findings. Each dimension (schema density, FAQ structure, definitional opener, content-signal headers, meta and canonical, AEO-extra signals) reports its own score against its own max, plus a human-readable finding for every point gained or lost.

Output 03

Output 03

Remediation queue. One concrete fix per underperforming dimension, ordered by point value recoverable.

Definition

What is an AEO checker, and what does it measure?

This AEO checker is a static-HTML structural audit. Paste one URL and it fetches the raw page markup, then scores six signals AI crawlers read to decide whether a page is worth citing: schema density, FAQ structure, a definitional opener sentence, content-signal headers, meta and canonical tags, and AEO-extra signals like llms.txt. No LLM is queried. It answers whether the page's markup gives an answer engine what it needs, not whether ChatGPT already cites the brand today. Those are different questions with different tools: for live citation share across ChatGPT, Perplexity, Claude, Gemini, and Grok, use the AI Search Visibility Checker instead.

Scenarios

Four sample audits across page types.

Each card is a real AEO pattern the checker sees often. Single audits diagnose; quarterly cadences fix.

Scenario 01

A-

Well-structured comparison page

A /compare/ page with FAQPage schema, a clear one-sentence definitional opener, and a clean H1-H2-H3 outline.

Composite score

88/100

  • Schema densityPass
  • FAQ structurePass
  • Definitional openerPass

Recommendation

Structurally sound. Hold this pattern on every new comparison page shipped.

Scenario 02

C

Long-form blog post, thin structured data

A blog post with real prose depth and good headers, but no JSON-LD beyond the site-wide Organization schema, and no FAQPage block.

Composite score

54/100

  • Schema densityFail
  • FAQ structureFail
  • Definitional openerMixed

Recommendation

Add FAQPage schema (up to 20 pts) and tighten the opening sentence into a direct definitional statement (up to 20 pts).

Scenario 03

B

Service page with rich schema, no FAQ

A /services/ page with Service and Organization JSON-LD, strong header structure, but zero FAQ content.

Composite score

71/100

  • Schema densityPass
  • FAQ structureFail
  • Definitional openerPass

Recommendation

Add an FAQ section with FAQPage schema, the single highest-leverage gap on this page type.

Scenario 04

D

Thin landing page, no structured data

A minimal launch page with hero copy and a CTA, no JSON-LD, no FAQ, no definitional sentence in the first 200 characters.

Composite score

12/100

  • Schema densityFail
  • FAQ structureFail
  • Definitional openerFail

Recommendation

Foundational gaps across every dimension. Add basic Organization or Service schema, an FAQ block, and a direct opening sentence before anything else.

Six dimensions · one static-HTML fetch

100 points. Zero LLM calls.

Every point in the composite score traces to a fixed, published rule across six dimensions: schema density, FAQ structure, a definitional opener, content-signal headers, meta and canonical, and AEO-extra signals. Fixing the lowest-scoring dimension first recovers the most points per unit of effort.

Comparison

Why a static-HTML structure audit is a different tool from a citation checker.

A schema validator checks syntax. A live citation checker queries an LLM. This tool sits between them: it scores whether a page's markup gives an AI crawler the structure it needs, without the cost or latency of a live LLM call.

← scroll horizontally to see more →

FeatureFORKOFF AEO checkerSingle-URL static-HTML structure auditAI Search Visibility CheckerLive multi-LLM citation audit (a different FORKOFF tool)Classic SEO rank trackersAhrefs · Semrush · MozManual schema validatorsGoogle Rich Results Test and similar
Scores structured data (JSON-LD schema types and density)
Scores FAQ structure and FAQPage schemapartial
Scores a definitional opener sentence in body text
Scores content-signal headers (H1/H2/H3 structure)partial
Measures whether an LLM actually cites the brand today
Requires no LLM calls, runs in under 10 seconds
Best for tracking organic Google rank over time
Fit map

Who the AEO checker is built for.

If your decision lands in the left column, the checker is the right surface. If it lands in the right, use a different tool.

Built for this

  • ·Checking whether a page's markup gives an AI crawler what it needs before publishing or re-publishing it.
  • ·Finding the single highest-leverage structural fix on an existing page (usually FAQPage schema or a clearer opener sentence).
  • ·A pre-publish or content-refresh checklist item, run in under 10 seconds with no LLM cost.
  • ·Comparing the structural readiness of a handful of pages against each other before deciding what to fix first.
  • ·A first, cheap pass before running the AI Search Visibility Checker to see whether the structural fixes actually move live citation share.

Not the right fit

  • ·Measuring whether ChatGPT, Perplexity, Claude, Gemini, or Grok actually cite the brand today. Use the AI Search Visibility Checker for that, a different tool that queries those engines directly.
  • ·Tracking Google blue-link rankings over time. Use Ahrefs or Semrush for that surface.
  • ·Auditing multiple pages in one pass. This tool grades one URL at a time.
  • ·Reporting toxic answers, hallucinations, or prompt-injection attacks. Those go through the LLM provider's safety surface, not a markup audit.
  • ·Client-rendered pages without turning on the JavaScript-render mode first, a plain static fetch will under-score them.
FAQ

AEO checker. Questions answered.

What does this AEO checker actually score?

It fetches one page's static HTML and scores six structural signals against fixed rules: schema density (up to 25 points), FAQ structure (up to 20), a definitional opener sentence in the first 200 characters of body text (up to 20), content-signal headers like H1/H2/H3 structure (up to 15), meta and canonical tags (up to 10), and AEO-extra signals like llms.txt and a JSON-LD alternate link (up to 10). No LLM is queried at any step.

Does this tool tell me if ChatGPT already cites my brand?

No. This tool never queries an LLM, it only reads static HTML. For live citation share across ChatGPT, Perplexity, Claude, Gemini, and Grok, use the AI Search Visibility Checker instead, a separate FORKOFF tool built for exactly that question.

How is this different from a classic Rich Results or schema validator?

A schema validator checks whether your JSON-LD is syntactically valid. This checker goes further: it scores whether the RIGHT schema types are present for AEO purposes, whether FAQ content exists in either schema or HTML form, whether the page opens with a machine-extractable definitional sentence, and whether the header structure and meta tags support extraction. It is an AEO-readiness score, not a syntax validator.

What is a definitional opener and why does it score 20 points?

It is a sentence early in the page's body text, checked in the first 200 characters, that states plainly what the brand or product is and who it is for, in a pattern like '{Brand} is {noun} for {ICP}'. Answer engines extract this kind of sentence directly when a user asks 'what is X'. A page that buries its definition three paragraphs down scores lower on this dimension even if the content is otherwise strong.

Why does FAQ structure matter for AEO?

FAQPage schema and clearly marked question-and-answer HTML patterns (using <details>/<dt> or equivalent) give an answer engine a pre-formatted, directly citable question-and-answer pair. The checker counts both the schema entries and raw HTML FAQ patterns, since not every page uses structured schema for its FAQ content.

What counts toward schema density?

The checker counts JSON-LD blocks (3 points each, capped at 10) and gives a bonus (2 points each, up to 15) for AEO-relevant schema types specifically: FAQPage, Article, Organization, SoftwareApplication, Product, HowTo, WebPage, Service, LocalBusiness, and VideoObject, including types nested inside an @graph. Generic or off-topic schema types do not earn the bonus.

Does the checker work for any page type?

Yes, the scoring rules are page-type-agnostic; the same six dimensions apply to a blog post, a service page, a comparison page, or a landing page. What differs is which dimension is the realistic highest-leverage fix: a long-form blog post often has strong header structure already and is missing FAQ schema, while a thin landing page is often missing structured data entirely.

How long does an audit take?

Under 10 seconds for a standard static-HTML fetch. Client-rendered single-page apps that need the JavaScript-render mode take longer, since the page has to hydrate before the checker can read the final markup.

Which dimension weighs the most in the composite score?

Schema density and FAQ structure carry the two highest maximums (25 and 20 points), followed by the definitional opener (also 20). Content-signal headers (15) and meta/canonical plus AEO-extra (10 each) round out the composite. Fixing the lowest-scoring high-max dimension first usually recovers the most points per unit of effort.

How does this connect to a FORKOFF AEO engagement?

This free single-URL checker exposes the same six-dimension scoring logic FORKOFF uses when auditing a page before a managed Answer Engine Optimization engagement. It is a fast, no-cost first pass; a managed engagement adds the live multi-LLM citation measurement (via the AI Search Visibility Checker) and an execution plan, not just a diagnosis.

Will the score change if I rerun the audit tomorrow?

Only if the page's markup changes. Because this is a static-HTML structural audit with fixed scoring rules, not a live LLM query, the score is stable across reruns unless you edit the page, add schema, or change the header structure in between.

Can I audit more than one page at once?

Not on this page, it grades one URL per run. To compare several pages, run each one separately and read the per-dimension breakdowns side by side.

Is this AEO checker free?

Yes, the single-URL static-HTML audit on this page is free with no signup. A managed FORKOFF AEO engagement builds on this diagnostic with live multi-LLM citation tracking and an execution plan; talk to a strategist if you want that.

What does a low score mean for a page?

A low composite score means the page's markup is missing structural signals an AI crawler can extract and cite, not that the page's content is bad. The remediation queue names the specific gaps: usually missing FAQPage schema, a buried or missing definitional sentence, or thin JSON-LD coverage. Fixing those is a markup change, not a content rewrite.

The brand line

Optimize before the answer engine forgets you.

Multi-LLM AEO scorecard · weekly cadence · sub-30% to 65% inside two quarters.

See how it works