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.
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.
- 01
Validate input
URL parsed by Zod, scheme forced to http(s), max 2048 chars.
- 02
SSRF-safe fetch
Up to 5 redirects, each hop re-checked against private-IP & metadata-host blocklists.
- 03
Parse HTML
First 1MB only, decoded as UTF-8, scanned for tags, JSON-LD blocks, links, images.
- 04
Run checks
40+ pure functions, each returning pass / warn / fail with a fix-it sentence.
- 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.