What it checks

Seven layers,
one pass.

Most tools stop at the meta tags. ifySEO opens a real browser, renders the page the way one of your visitors would, and reads everything underneath — all the way down to the console errors.

Five categories are live today. Two more — Security and GEO/LLMO — are wired into the scoring engine and ship in the next milestones.

◢ scan_coverage7 categories
  • 01Technical SEOLive
  • 02Content SEOLive
  • 03PerformanceLive
  • 04AccessibilityLive
  • 05SecuritySoon
  • 06Code qualityLive
  • 07GEO / LLMOSoon
Layer
01
Live in every scan

Technical SEO.

The signals that decide whether you're found at all.

What we measure

  • robots.txt — fetchable, parseable, rules honored
  • Sitemap discovery from robots.txt + common paths
  • Sitemap-index recursion (bounded depth + URL cap)
  • URLs declared by sitemap but blocked by robots.txt
  • HTTP status, redirect chains, redirect hop count
  • Canonical URL presence, target reachability
  • Indexability — `noindex` meta, X-Robots-Tag headers

Why it matters

If a crawler can't reach a page, or reaches a contradictory version of it, nothing else you do matters. Technical SEO is the floor.

Example finding

A sitemap declaring 40 URLs that robots.txt disallows — Google sees the contradiction and ignores the whole sitemap.

Layer
02
Live in every scan

Content SEO.

What a crawler actually reads on the page.

What we measure

  • <title> presence + character length
  • Meta description presence + length
  • Heading structure — single H1, ordered hierarchy
  • Open Graph + Twitter Card tags
  • JSON-LD structured data blocks (recorded raw; malformed flagged)
  • Charset + viewport meta

Why it matters

Title and meta description are still the headline and subhead of every search result. Structured data is how the page volunteers its meaning.

Example finding

A landing page with a 12-character title — Google truncates nothing, but the SERP looks empty.

Layer
03
Live in every scan

Performance.

Core Web Vitals, measured for real.

What we measure

  • LCP — Largest Contentful Paint
  • CLS — Cumulative Layout Shift
  • INP — Interaction to Next Paint
  • Measured by Google's `web-vitals` library, not estimated
  • Throttled to the `mobile-slow4g` profile: 150ms RTT, 1.6 Mbps down, 4× CPU slowdown, mobile viewport
  • Per-metric rating against Google's good / needs-improvement / poor thresholds

Why it matters

Core Web Vitals are a ranking signal and a conversion lever. Lab measurement gives a low-traffic site the only CWV reading it can get — most have no Google CrUX field data at all.

Example finding

A hero image without `width`/`height` shifts the page during load — CLS rises from 0.02 to 0.18 and the metric drops from Good to Poor.

Layer
04
Live in every scan

Accessibility.

WCAG 2.1 AA, against the rendered DOM.

What we measure

  • Full axe-core audit (industry standard)
  • WCAG 2.1 Level A + Level AA rules
  • Violations reported with the exact element selector
  • Color-contrast, ARIA, form labels, landmark structure, keyboard semantics, …
  • Runs against the live, rendered DOM — not the static HTML

Why it matters

Accessibility is a legal requirement in most of the EU and US, a measurable SEO signal, and the right thing to do. It is also the easiest audit to game with linters that read source — and the hardest with one that reads the page.

Example finding

A `<button>` styled to look like a link but missing `aria-label` — invisible to a screen reader, flagged here with the selector.

Layer
05
Shipping soon

Security.

HTTPS, headers, cookie hygiene.

What we measure

  • HTTPS-only delivery
  • Security headers: HSTS, CSP, X-Frame-Options, Referrer-Policy
  • Cookie flags — Secure, HttpOnly, SameSite
  • Mixed-content warnings from the rendered page

Why it matters

Browsers downrank insecure pages, SEO crawlers treat mixed content as broken, and your visitors notice the lock icon.

Layer
06
Live in every scan

Code quality.

What the page does wrong while loading.

What we measure

  • Console errors and uncaught exceptions, captured during the render
  • Network failures (4xx / 5xx subresources)
  • Number of console errors emitted, with full message text

Why it matters

A page that throws a runtime error half the time has bugs you don't see from a static audit. Console errors and broken subresources are the noise floor every other score has to fight.

Example finding

A third-party tracker that 404s — the page renders fine, the console fills with errors, the report flags it.

Layer
07
Shipping soon

GEO / LLMO.

How the page reads to an AI.

What we measure

  • Structured data coverage (JSON-LD types, completeness)
  • Open Graph / OEmbed signals for LLM citation surfaces
  • robots.txt directives for AI crawlers (GPTBot, Claude-Web, Google-Extended)
  • Content extractability — meaningful headings, semantic landmarks

Why it matters

Generative engines are the new search surface. The pages they cite are the ones they can extract, attribute, and trust — and that is a measurable, fixable property of your markup.

Rolled into one number

Every finding feeds the score.

Each issue costs points by how much it matters — weighted by severity and category, so a broken canonical never reads the same as a faint console warning.

See the layers, on your page.

Drop in any public URL. The seven-layer pass takes about a minute.

See your score in under a minute. · No card · No setup