Free tool

SEO page checker.

Paste any URL. We'll fetch the page server-side and score it on crawlability, on-page SEO, structured data, social tags and performance — with the exact fixes to ship.

What's inside the audit

40+ checks, grouped the way Google reads a page.

We fetch the URL server-side, follow up to 5 redirects (with SSRF-safe re-validation at every hop), parse the first 1MB of HTML, and run it through a battery of deterministic checks. No JavaScript execution, no third-party APIs, no rate limits.

Crawlability

  • HTTP status & redirect chain
  • robots.txt + meta robots + X-Robots-Tag header
  • Canonical tag presence & self-reference
  • XML sitemap discovery hint
  • Hreflang signals (when present)

On-page SEO

  • Title length & pixel width
  • Meta description quality
  • Single H1 + heading order (H1→H6)
  • Word count & content depth
  • Image alt-text coverage

Structured data

  • JSON-LD blocks detected & parsed
  • @type identification (Article, Product…)
  • Required-property coverage
  • Breadcrumbs & Organization marks

Social & sharing

  • Open Graph: og:title, og:description, og:image, og:url
  • Twitter card type + image
  • Favicon + apple-touch-icon
  • og:image dimensions hint (1200×630)

Performance hints

  • HTML weight & response time
  • Render-blocking <script> in <head>
  • Mixed-content (http://) references on https://
  • Inline CSS volume
  • Internal vs external link profile

Scoring formula

Weighted, transparent, deterministic.

score(cat) = round(
100 × (passed + 0.5 × warned)
───────────────────────────
passed + warned + failed
)

Overall = mean of the 5 category scores. Warnings count as half a pass, failures count as zero, and skipped checks are excluded from the denominator.

How a single audit runs

From URL to scored report in ~6 seconds.

  1. 01

    Validate input

    URL parsed by Zod, scheme forced to http(s), max 2048 chars.

  2. 02

    SSRF-safe fetch

    Up to 5 redirects, each hop re-checked against private-IP & metadata-host blocklists.

  3. 03

    Parse HTML

    First 1MB only, decoded as UTF-8, scanned for tags, JSON-LD blocks, links, images.

  4. 04

    Run checks

    40+ pure functions, each returning pass / warn / fail with a fix-it sentence.

  5. 05

    Score & rank

    Weighted score per category, failures sorted to the top of the fix list.

What this catches

  • Pages indexed but missing a single H1
  • Canonical tags pointing to the wrong URL
  • Open Graph images that 404 or are missing
  • JSON-LD blocks with invalid JSON
  • Mixed content on https:// pages
  • Render-blocking scripts in <head>

What's out of scope

  • Core Web Vitals (LCP / CLS / INP) — needs a headless browser
  • Backlink analysis — needs a separate crawler
  • Keyword rankings — needs SERP API data
  • JavaScript-rendered content beyond the initial HTML
  • Site-wide crawls — this is a single-URL audit

Need any of these? We run them in our paid engagements with real crawl + SERP data.

FAQ

Is this a real Lighthouse score?
No. We score what's visible in the HTML response — fast, deterministic, and free. Core Web Vitals (LCP, CLS, INP) need a headless browser and field data; for those we run a separate engagement.
Why server-side instead of in my browser?
Browsers block cross-origin requests to most domains. Running on our edge means we see the actual HTML Google would see, including server-rendered content, and we can inspect response headers like X-Robots-Tag.
Will this work on JavaScript-rendered pages?
It audits the initial HTML response. If your page is fully client-rendered (CSR) the audit will look thin — that's a finding in itself, because Google's first crawler pass works the same way.
How is the score calculated?
Each category is scored 0–100 based on weighted passes vs. failures (failures cost more than warnings). The overall score is the average across categories, rounded.
Do you store the URL or the result?
No. The audit runs once, returns, and nothing is persisted server-side. The pre-filled contact form is generated client-side from your latest result.