Technical SEO & AI readiness

Machines read your page before customers do.Make sure they can.

SEOAST reads the HTML your server actually returned, runs 32 practical checks across six sections, and hands back a ranked action plan — not generic SEO advice. Every verdict shows the measurement behind it.

10 audits a day with no account, 100 a day on a free API key. No credit card in either case.

Example audit
engine 2.7.1
60/ 100

Overall score

Yellow — measurable value left on the table

98 of 162 weight earned, no indexability cap applied.

Checks measured

26/32

7 failing · 9 to improve · 6 not measurable

Ranked actions

16

1 critical first, then by impact, confidence, scope and effort.

Section scores

out of 100

  • Indexability and crawl control

    82

    1 failing · 3 to improve · 5 passing

  • Search appearance

    29

    2 failing · 2 to improve · 0 passing

  • Content and structure

    53

    1 failing · 3 to improve · 1 passing

  • Machine readability

    22

    3 failing · 1 to improve · 1 passing

  • AI-search readiness

    100

    0 failing · 0 to improve · 3 passing

  • Business trust and legitimacy

    n/a

    not measurable · excluded from the score, not counted as zero

Coverage
  • 1 page audited
  • JavaScript not rendered
  • robots.txt read
  • 1 sitemap · 2 URLs
  • llms.txt none published

Search is no longer one search engine.

  • Google
  • Google AI Overviews
  • Bing
  • ChatGPT
  • Perplexity
  • Gemini

Every one of them reaches your page the same way: one HTTP request for the markup your server returns. SEOAST measures whether what comes back can be fetched, parsed and understood — and it is careful about what that does and does not tell you.

What SEOAST audits

What comes back

A report is only useful if someone can act on it without a follow-up meeting. Three things make that possible.

How it works

Four steps, no account

  1. Step 1

    Enter your URL

    Choose page audit (one URL) or full-site scan (up to your tier limit). No account, nothing installed.

  2. Step 2

    SEOAST runs the checks it can

    It fetches the page, then that origin’s robots.txt, sitemap and llms.txt. A coverage line states exactly what came back, and anything it could not read is reported as unmeasured — never as a pass.

  3. Step 3

    Read the six section scores

    Indexability, search appearance, content, machine readability, AI-search readiness and business trust, each scored on published weights you can check on this page.

  4. Step 4

    Work the ranked plan

    Findings are ordered by impact, confidence, scope and effort — each with what was measured, what to change, who changes it and what should improve.

What SEOAST will not tell you is how much traffic a fix will produce. Nothing in one page of HTML supports that claim, so no number here pretends to.

What you get back

A real report, not a mockup

The report below was produced by running the audit engine against a sample page at build time. Every score, section and action in it is genuine output — if a weight changes or a check is added, this preview changes with it. That is the same reason the check list further down is imported from the engine rather than retyped.

Example report — real output from the audit engineengine 2.7.1

1 page audited · response headers read · JavaScript not rendered · robots.txt fetched · sitemap read (2 URLs, found via robots.txt) · llms.txt not published · Google Business Profile not checked

https://example.com/services/commercial-roof-repair

60

1 critical issue is holding this page back. 10 of the 16 can be done in minutes.

Do these first

  1. 01 Viewport meta tag

    critical · 6

    Found: No <meta name="viewport"> tag was found.

    Improves: Makes the page usable on mobile, which is the index Google ranks from.

    Minutes · This template · Developer

  2. 02 Meta description

    high · 2

    Found: No <meta name="description"> tag was found.

    Improves: Raises click-through on the ranking you already have. Does not affect ranking itself.

    Minutes · This page · Content or copywriter

  3. 03 Canonical URL

    high · 2

    Found: No <link rel="canonical"> was found.

    Improves: Consolidates duplicate URL variants onto one address, so ranking signals stop being split.

    Minutes · This template · Developer

13 further actions follow in priority order, and every check that passed is listed with what was measured.

What gets measured

The 32 checks, and what each one actually measures

This list is generated from the rule engine itself, including the thresholds. If a check changes, this page changes with it. The weight is that check’s share of the score; weights total 198 when every check is measurable, and only their ratios matter.

Indexability and crawl control

10 checks · 78 of 198 weight

Search appearance

4 checks · 24 of 198 weight

Content and structure

5 checks · 35 of 198 weight

Machine readability

5 checks · 23 of 198 weight

AI-search readiness

4 checks · 15 of 198 weight

Business trust and legitimacy

4 checks · 23 of 198 weight

AI-search readiness

Build a site machines can understand

Discovery increasingly depends on whether a system can crawl your page, read it without executing JavaScript, and interpret what it is about. SEOAST measures those foundational signals. Each one below is a check that actually runs:

  • robots.txt

    robots_txt

    Lets crawlers read the page, so every other signal on it can be seen.

  • AI crawler access (robots.txt)

    ai_crawler_access

    Lets answer-engine crawlers read this page so its content can be retrieved for AI-generated answers.

  • JavaScript-only content (raw HTML)

    js_only_content

    Puts the page copy in the first HTML response so bots that never run JavaScript can still read it.

  • X-Robots-Tag header

    x_robots_tag

    Removes a header-level block that keeps the page out of the index entirely.

  • Server-rendered content

    render_dependency

    Puts the content in the first response, where every crawler reads it, instead of behind a render pass that is neither fast nor guaranteed.

  • Structured data (JSON-LD)

    structured_data

    Makes the page eligible for rich results. Eligible, not guaranteed — Google decides whether to show them.

  • Heading hierarchy

    heading_hierarchy

    Gives crawlers and screen readers an unambiguous outline of what the page covers.

  • HTML lang attribute

    html_lang

    Tells search engines and screen readers which language the page is written in.

  • llms.txt (non-Google AI crawlers, not scored)

    llms_txt

    Removes a malformed file that non-Google readers may choke on. Google Search ignores llms.txt, so there is no Google effect.

What this is not

SEOAST does not query ChatGPT, Perplexity, Gemini or Google AI Overviews, and it does not monitor or measure whether they cite you. Nothing here reports an “AI visibility score”. It measures whether the foundations those systems depend on are in place, which is a different and smaller claim — and one that can be checked.

llms.txt is reported but never scored. Google states that Google Search ignores it, and that AI Overviews and AI Mode have no requirements beyond ordinary Search eligibility — so that eligibility is what SEOAST measures.

What to do first

A report is a plan, not a scoreboard

Every report opens with the three things worth doing first, each with what was measured, what to change, who changes it, roughly how long it takes and what should improve afterwards. The ordering is computed, published and testable:

  • priority = impact x confidence x scope x severity / effort.
  • Impact (1-3) is how much fixing it moves indexability, search appearance or AI discoverability.
  • Confidence (0.5-1.0) is how directly the evidence supports the recommendation. A missing <title> is a measured fact (1.0); an H1/title overlap ratio supports a softer inference (0.75); a readability score is a proxy for a proxy (0.5). Heuristics rank below facts, always.
  • Scope is blast radius: one URL (x1), a template (x2), the whole site (x3). Fixing the sitewide thing once is worth more than fixing the page thing once.
  • Effort is 1 for minutes in a CMS field, 2 for an hour of developer time, 3 for a project.
  • Severity: a fail counts double a warn, matching the scoring model.
  • Bands: critical at 4 and above, high from 2, then medium and low.
  • What this deliberately does not do is predict traffic. Nothing in one page of HTML supports that claim, so no number here pretends to.

How the score is calculated

Published in full, because a score nobody can reconstruct is a score nobody should trust.

  • Each check earns a fraction of its weight: pass = 1.00, warn = 0.50, fail = 0.00.
  • not_measurable is excluded from both the earned points and the total, so a page with no images is not punished for having no alt text — the denominator shrinks instead.
  • score = round(100 x earned / considered), so it always reads as "percentage of what could be measured".
  • Four indexability failures then cap the result outright: http_status holds it at 25, tls_certificate holds it at 25, x_robots_tag holds it at 35, robots_meta holds it at 35, robots_txt holds it at 40, render_dependency holds it at 54. A page search engines cannot reach does not get to score well on the strength of tidy Open Graph tags. The uncapped number is reported alongside it, so a report can show both.
  • Bands: green at 80 and above, yellow from 55 to 79, red below 55.
  • A score of 0 with nothing considered means "not assessed", not "assessed and terrible".
  • Nothing SEOAST did not fetch is ever reported as a pass. Checks with no input report not_measurable and the coverage line at the top of every report says exactly what was retrieved.

Green

80–100

The fundamentals are in place. Remaining findings are refinements.

Yellow

55–79

Working, but leaving measurable value on the table.

Red

0–54

Something structural is wrong. Start at the top of the fail list.

What it does not do

Stated up front, so you find out here rather than mid-audit.

It reads the HTML your server returned
No headless browser, no JavaScript execution. If a page assembles its head tags client-side, SEOAST reports what is missing from the first response — which is what a crawler gets before it decides whether the page is worth rendering a second time.
Page audit or full-site scan
The page audit checks one URL. The full-site scan crawls your entire site (up to your tier limit), audits every page, and reports whole-site issues. Pick the audit type that matches what you need to check.
On-page only
No backlinks, no keyword rankings, no traffic estimates. Nothing here depends on a third-party data vendor, so nothing here goes stale or disagrees with the tool next to it.
Unmeasurable is a real answer
A page with no images is not marked down for missing alt text. That check reports “not measurable” and drops out of the denominator instead of scoring zero, so the number always means “percentage of what could actually be checked”.

Built around how the work actually happens

  • Agencies

    Run an audit during a prospect call and have something concrete on the screen before the call ends. Every verdict comes with its evidence, so the deliverable survives a technical reviewer on the client side.

  • In-house marketers

    Check a page before it goes live and again after the CMS has had its way with it. The findings name the element to change, which is the difference between a ticket that gets done and a ticket that gets asked about.

  • Developers

    The REST endpoint and the MCP server share one code path, one auth model and one quota. Wire the audit into CI, a deploy hook, or an agent, and get the same verdicts the web UI shows.

The same audit, from your own tooling

The web form on this site is a client of the public API, not a separate implementation. One code path handles authentication, quota and the outbound fetch, so an audit run from a script returns exactly what the browser shows.

REST

POST /api/v1/audit with a JSON body of { "url": "..." }. Responses carry X-RateLimit-* headers, and a 429 includes Retry-After.

curl -X POST https://seoast.ai/api/v1/audit \
  -H 'content-type: application/json' \
  -H 'x-api-key: seoast_sk_...' \
  -d '{"url": "https://example.com/pricing"}'

MCP

An MCP server is mounted at /api/mcp over Streamable HTTP, so an agent can run an audit as a tool call and read the findings directly. It authenticates with the same key, spends the same quota and is bound by the same fetch restrictions as every other caller. Connection details and the tools it exposes.

Refusals are explicit

SEOAST only fetches publicly reachable http and https URLs on ports 80 and 443, and it refuses private and internal addresses. If metering is unavailable it returns 503 rather than running an unmetered audit. Every failure has a machine-readable code.

The free tier, spelled out

No account

10audits per day

Counted per client address, resetting at midnight UTC. Enough to check a landing page, fix it, and check it again. Nothing to sign up for.

Free API key

100audits per day

The same allowance across the web form, the REST endpoint and the MCP server, counted against the key rather than the address. Higher-volume tiers exist on the same key system for teams that outgrow it.

Request a free key

Questions

The things people ask before they trust a number

What does SEOAST actually fetch?

The URL you give it, then three site-level documents from the same origin: /robots.txt, an XML sitemap, and /llms.txt. Every report states which of those came back, so you can tell the difference between "checked and fine" and "never looked". Nothing that was not fetched is ever reported as passing.

Does it render JavaScript?

No. It reads the HTML your server returned, which is what a crawler sees before it decides whether the page is worth queueing for a rendered pass. One of the checks measures exactly that gap: if your copy only exists after hydration, the report says so rather than quietly grading an empty shell.

Is this a site crawler?

Both. The page audit checks one URL plus three site-level documents (robots.txt, sitemap, llms.txt). The full-site scan crawls up to 100 pages (depending on your tier) from the homepage and sitemap, runs the 32-check audit on each, and reports whole-site issues like broken links, duplicate titles, and orphan pages. There is no rank tracking.

Why did a page with good markup score badly?

Probably a cap. Four indexability failures hold the final score down regardless of everything else: a non-200 status, a noindex in the robots meta tag, a noindex in the X-Robots-Tag header, or a robots.txt rule blocking the URL. The report shows the uncapped number alongside, so you can see the page was fine and the plumbing was not.

What is the difference between the robots meta tag and robots.txt?

They fail in opposite directions and SEOAST checks them separately. A meta noindex lets the crawler read the page but keeps it out of the index. A robots.txt disallow keeps the crawler out entirely — the URL can still be listed, with no title and no description, because nothing was ever read. A third variant, X-Robots-Tag, does the first one from a response header where it is invisible in the markup.

Will an llms.txt file improve my rankings?

Not in Google. Google’s own AI optimization guide says Google Search ignores llms.txt and other AI text files, and that they neither help nor harm visibility. SEOAST still reports the file for other AI crawlers, but gives it a weight of zero: having one, or not, never changes your score.

Can I use it from an agent or a build pipeline?

Yes. The same audit is available over REST and over MCP, from one pipeline — the web page, the API and the MCP tools cannot disagree about a verdict, because there is only one implementation of it.

Does the score mean anything on its own?

It means "percentage of what could be measured, weighted by published weights". It is reproducible — the same page audited twice returns the same number — and every weight is listed on this page. It is not a prediction of traffic, and no honest tool can give you one.

Works well with AI Venture Holdings tools

SEOAST is one of several tools AI Venture Holdings builds and runs. These are live today.

  • DomainFind.ai

    Domain research and availability checking from AI Venture Holdings.

    Settle the domain before you build the site, then audit the pages you ship on it. Same team, same idea of a useful answer: a decision you can act on, not a report to file.

Pick a page you already argue about.

Paste the URL and read the findings. If it disagrees with you, the evidence is right there to check.

Audit your page

No signup required to start.