Web Scan

Check your site health in one click.

SEO | GEO | security | performance — 85+ checks in one scan. Copy agent-ready fix prompts for Claude, Cursor, or any other coding agent.

Try:
A Web Scan report for stripe.com showing a score of 93, a seven axis category radar and a per category breakdown
Just checked

What one scan turns up

The key your build shipped

Web Scan reads the scripts your page links and looks for what should never have left the server: Stripe and OpenAI keys, a Supabase service_role token that ignores every policy you wrote, published source maps, a database URL with its password. Only what the site already serves every visitor, and every finding is redacted.

The noindex you forgot

A staging noindex that survives launch keeps a site out of search entirely, and nothing on the page looks wrong.

The link preview you never see

Your page rendered the way X, Slack and Google will render it, with the og:image fetched the way a crawler does. Without your cookies, so a 403 shows up here instead of in public.

Headers nobody configured

HSTS, CSP, nosniff, framing and referrer policy against the live response, plus whether the CSP you have actually forbids anything and whether your session cookie is readable by script.

What actually slows it

First byte, compression, render-blocking scripts, and the images that shift your layout.

And the fix, not the rule name

Every failure carries the specific change to make. Missing tags come back as a head block you can paste, prefilled from what the page already says about itself.

See your page the way ChatGPT does

GPTBot, ClaudeBot and PerplexityBot fetch your HTML and stop. They do not run JavaScript, so a page that paints its content in the browser can rank on Google and still be blank to the assistants people now ask first. Web Scan fetches your page the same way they do and shows you exactly what it can read, and whether it can answer the three questions a buyer asks.

Scoring

A score that actually separates sites

Failing a critical check caps the total instead of averaging away, so a site missing its og:image cannot reach an A by compressing its images well.

stripe.com93
apple.com86
wikipedia.org81
nytimes.com81
example.com32
berkshirehathaway.com24

Measured across these six sites on 7 September 2026.

Web Scan

acme.io dropped 91 to 74 (grade C). New failures: Open Graph image, Meta description.

web-scan-beta.vercel.app/r/8kd2wq

Then it watches, so you do not have to remember.

Hourly re-scans, and a message in Slack or Discord only when the state changed. A five point drop, a new failing check, or the page not answering. One message on the way down, not one an hour.

Monitor a URL

Continuous integration

Or fail the build instead

- name: Web Scan
  run: |
    SCORE=$(curl -sS -X POST https://web-scan-beta.vercel.app/api/scan \
      -H 'content-type: application/json' \
      -d '{"url":"https://your-site.com"}' | jq .report.score)
    [ "$SCORE" -ge 90 ] || { echo "scored $SCORE"; exit 1; }

The scan API is public and needs no key. The response carries the score, the grade and every check, so gate on whichever of them you care about.

All 85 checks