Methodology

The AI Spam Score (0–100, higher = riskier) estimates how strongly a site matches the scaled AI content footprint targeted by Google's June 2026 spam update. It is a heuristic, reproducible-by-design blend of 60+ public signals. It cannot prove authorship of any single page — and does not try to.

The seven risk dimensions

DimensionWeight*What it measures
AI Language Markers0.16250+ LLM stock phrases (tiered: LLM-specific vs marketing clichés at half weight), giveaway artifacts, paragraph-opener fingerprints
Stylometric Fingerprint0.12Sentence-length burstiness (CV, prose-gated), hapax/TTR vocabulary diversity, article-length uniformity, MiniLM semantic coherence
Formatting Patterns0.10Bold-lead lists, em-dash density, triads, colon headings, canned outros, question-heading (PAA) stuffing
Originality & Templating0.20In-page 4-gram repetition, cross-page shingle overlap, heading-skeleton reuse ("spun template"), listicle/doorway slug clusters, meta boilerplate
Publishing Scale & Velocity0.18Sitemap lastmod forensics (bursts, 30-day windows), date-integrity checks, RSS cross-validation, index bloat, orphan/link-graph shape
Trust & E-E-A-T Surface0.16See below — ownership, authorship, provenance, domain history (Wayback)
AI-Search Manipulation0.08Prompt-injection strings, hidden prose, self-serving "Top N" listicles (named policy since 2026-05-15)

*Default (publisher) profile. Six site profiles (publisher, local business, personal blog, e-commerce, docs, landing) re-weight dimensions and relax checks that don't apply — e.g. stylometry is pinned neutral for documentation, and single-author blogs are never penalized for having one voice.

Why the overall score can exceed the page average — floors

Scaled content abuse is a site-level production pattern, not a per-page property. Google's policy targets mass production; each page alone can be "deniable". So certain patterns set a floor under the weighted blend (the report's "How this score was formed" block shows exactly which fired):

Conversely: build-artifact or bulk-bumped sitemap dates, migration spikes, code-heavy pages, link lists and theme furniture are detected and discounted — most of our calibration effort went into not alarming innocent sites (see the test matrix note below).

How E-E-A-T is scored (including blog posts)

The E-E-A-T dimension is a risk checklist (0 = everything present). Site-wide checks: About page (14 pts), Contact page (13), privacy policy (8), visible email/phone (15), schema.org markup (8). Editorial checks apply only to "articleish" pages — editorial-path or article-slug pages with ≥200 words, excluding docs/FAQ/product pages: visible author bylines on ≥half of them (20), publish dates (10), external citations — ≥2 outbound links on ≥⅓ of articles (12). If a site has no editorial pages at all, these are half-credited as not-applicable rather than failed. On top of the checklist: entity corroboration bonuses (Organization sameAs links, JSON-LD author matching the visible byline, /author/ pages, name consistency), profile adjustments (a personal blog with an About page + linked social identity caps risk at 25; local businesses get credit for anchored contact sections and NAP), and Wayback domain-history (clean long history is neutral; dormancy + topic change adds risk).

What the score is not

Calibration

The engine is regression-tested against a 17-site matrix: documented AI content farms and hijacked domains (expected High), hand-written personal blogs, small local businesses, a newsroom and a docs site (expected Low), plus synthetic anchors (raw LLM slop ≈ 82, first-hand human writing ≈ 6). Every rule that raises a score was adversarially tested against innocent sites first.

Crawler behavior: see /bot. Full signal list ships in every report's Signal Detail section and JSON export.