Skip to content

SEO Analyzer

Enter a URL and get a detailed on-page SEO report — titles, headings, canonical tags, Open Graph, structured data and links — checked entirely in your browser.

Fetched directly by your browser, then analyzed locally — this site is static and has no server, so it never sees the page or the result. Most sites block a direct fetch like this (a browser security rule); if that happens, paste the page’s HTML source below instead.

Processed locally in your browser. Your data never leaves your device.

About this SEO analyzer

Enter a URL and it is fetched directly by your browser and analyzed on the spot — titles, meta description, heading structure, canonical and robots tags, Open Graph and Twitter Card tags, JSON-LD structured data, image alt text, links, and a handful of technical checks (favicon, doctype, mixed content). If the site blocks the direct fetch (most do — see the FAQ), paste its HTML source instead and the same checks run against that.

How to use it

  1. Enter the page’s URL and click Analyze.
  2. If fetching fails, click “Or paste HTML source instead”, view the page’s source (Ctrl/Cmd+U in most browsers), copy it, and paste it in.
  3. Read the report: errors first, then warnings, then informational notes, then everything that already passed.

What it checks

  • Meta & titles: title tag presence and length, meta description presence and length, language declaration, character encoding, viewport tag
  • Headings: exactly one H1, no empty headings, no skipped heading levels
  • Canonical & indexability: canonical tag presence and validity, robots meta tag (noindex/nofollow)
  • Social sharing: Open Graph and Twitter Card tag completeness
  • Structured data: every JSON-LD block is parsed and validated — invalid JSON, and missing @context/@type, are flagged
  • Images: missing alt text
  • Links: internal/external counts, generic anchor text (“click here”), empty links
  • Technical: favicon, doctype, mixed content (http:// resources on an https page)
  • Content & URL: a rough visible-word-count check, URL length/casing

Frequently asked questions

Why can't it just fetch every URL directly?
Browsers enforce the Same-Origin Policy: JavaScript on this page cannot read the response from a request to another site unless that site explicitly opts in with a CORS header. Almost no website sets that header on its HTML pages (it's conventionally used for APIs, not documents), so a direct fetch works for a minority of sites and fails for the rest. This is a deliberate browser security rule, not a bug here — when it fails, paste the page’s HTML source (View Source, then copy) and the exact same checks run against it.
Does pasting HTML instead of fetching a URL change what gets checked?
Almost nothing. Every check that only needs the page content (titles, headings, meta tags, structured data, images, links) runs identically either way. A handful of checks that need to know the actual URL (mixed-content detection, canonical-URL comparison, URL structure) are simply skipped when no URL is known — you can still type the URL into the field even if you end up pasting the HTML, and those checks will run against it.
Why does it show what passed, not just what is wrong?
Most linter-style tools here (JSON Validator, SQL Formatter) only report problems, since a clean result needs no explanation. An SEO report is different — people expect to see the full picture, including what's already right, the same way a real audit reads.
Is a missing meta description or thin content always a real problem?
No — several checks here are informational or soft warnings, not hard rules. A simple utility page can rank fine with less content than an article competing for informational search intent; a missing Twitter Card tag matters less if Open Graph tags are already present (Twitter/X falls back to those). Read the hint on each item: some are worth fixing immediately, others are just worth knowing about.
Can this check things like backlinks, keyword rankings or site-wide broken links?
No, and it never will as a browser-only tool. Backlink data and search rankings only exist inside large external indexes (what paid tools like Ahrefs or SEMrush actually sell) — there is no way to compute them locally. Site-wide crawling hits the same cross-origin wall as fetching a single URL, just for many pages instead of one. This tool is deliberately scoped to what a single page’s own HTML can tell you.