---
title: Methodology — Marketing Hygiene Checker
canonical: https://ismysitehygienic.com/methodology
last_updated: 2026-10-22
---

# Methodology

Last updated: 2026-10-22

Marketing Hygiene Checker is an automated audit of how well a page works for people, screen readers, search crawlers and AI agents — and what it costs in carbon. This page documents exactly what is measured, how it is scored, where the figures come from and what the scanner cannot see.

## How the score works

- Every check scores **pass = 1**, **warn = 0.5**, **fail = 0**; informational checks do not count.
- A category's score is the average of its checks, 0–100.
- The overall score is the weighted average of the category scores.
- The **pass rate** shown next to it follows the checklist's own method: fully passed items ÷ all scored items.
- Cached results are reused for about ten minutes; every report shows its scan time.

## Category weights

- **Accessibility & Semantics** — 30%
- **Rendering & JavaScript Weight** — 25%
- **Structured Data & Agent Signals** — 20%
- **Discoverability & Bot Access** — 15%
- **Carbon & Efficiency** — 10%
- **Online Shop (only when a shop is detected)** — 20% (only when the page is detected as a shop; weights are normalised over the categories present)
- **Agent API & Trust Signals (bonus)** — informational, 0%

## Grades

- **Spotless** — 90+ : Agent-ready and human-ready — minor polish only.
- **Tidy** — 75+ : Solid shape; a few fixes would close the gap to spotless.
- **Needs a Wipe-Down** — 60+ : The basics are there, but several checks need attention.
- **Cluttered** — 40+ : Multiple structural issues are likely costing you visibility.
- **Deep-Clean Required** — 0+ : Foundational accessibility and machine-readability work needed.

## Thresholds taken from the checklist

- JavaScript: ≤ 100 KB gzipped target, ~170 KB hard ceiling (transfer size, `nomodule` polyfills ignored).
- Page weight: ≤ ~270 KB for an A+ carbon rating, ≤ ~530 KB for an A.
- Core Web Vitals (mobile, Google PageSpeed Insights): LCP ≤ 2.5 s, INP ≤ 200 ms (lab stand-in: Total Blocking Time ≤ 200 ms), CLS ≤ 0.1.
- Carbon (Sustainable Web Design v4): ≤ 0.095 g CO₂ per view = A+, ≤ 0.186 g = A (acceptable); global median ≈ 0.36 g.
- Structured data: JSON-LD for the main entity, no conflicting Organization records.
- Reaudit quarterly or after major changes; check AI citations monthly by hand.

## What each category checks

### Accessibility & Semantics

- One clear H1
- Heading order
- Landmarks
- Image alt text
- Descriptive links
- Form labels
- Named buttons
- Real navigation links
- Keyboard focus
- Lighthouse audit
- Tab test (by hand)

### Rendering & JavaScript Weight

- Rendering mode
- Works without JavaScript
- JavaScript ≤ 100 KB
- Third-party tags
- Page weight
- Server response
- Compression
- Builders & plugins
- Core Web Vitals
- Unused JavaScript

### Structured Data & Agent Signals

- JSON-LD present
- JSON-LD valid
- Entity type
- No conflicting entities
- schema.org validator
- Rich-result markup
- Author identity
- Dated & current
- HTTPS
- Working links
- Metadata
- Proof of work
- Vanish test (by hand)

### Discoverability & Bot Access

- Indexable
- robots.txt
- Sitemap
- AI bot rules
- AI crawlers allowed
- AI crawlers get the page
- Content Signals
- llms.txt
- Markdown version
- One heading, one idea
- Services, prices, FAQs
- AI citations (by hand)

### Carbon & Efficiency

- CO₂ per page view
- Image optimisation
- Caching & CDN
- Green hosting

### Online Shop (only when a shop is detected)

- Product & Offer markup
- Price & stock in HTML
- Shipping & returns
- One Product schema
- Variant & filter labels
- Product image alt text
- No bot wall
- Stock freshness
- AI shopping check (by hand)

### Agent API & Trust Signals (bonus)

- Agent manifest
- security.txt

## Independent checks

Our own heuristics are cross-checked by independent tools, shown next to the result: Google PageSpeed Insights (Core Web Vitals, unused JavaScript, Lighthouse accessibility), WebAIM WAVE (AIM score and errors, run when a visitor presses the button in the report, because each lookup is paid), the schema.org Markup Validator (link), isitagentready.com (agent-readiness level), The Green Web Foundation (green hosting) and websitecarbon.com's calculator.

## Sources

- Google Search Central documentation (structured data, rich results, crawling and indexing, Core Web Vitals).
- WebAIM (WAVE) and the axe-core rules used by Lighthouse.
- HTTP Archive Web Almanac 2025 (JavaScript and page-weight medians).
- Sustainable Web Design model v4 and the Green Web Foundation's co2.js.
- WCAG 2.2, WAI-ARIA Authoring Practices, schema.org, Google Search structured-data documentation, RFC 9309 (robots.txt), RFC 9116 (security.txt), RFC 9727 (API catalog), llmstxt.org, contentsignals.org.

## What the scanner cannot see

- It reads the server-delivered HTML and the files it links to. Content that only exists after JavaScript runs is invisible to it — which is also what many AI crawlers see — except for the Lighthouse audit, which runs in a real browser.
- It does not press Tab in a real browser, listen to a screen reader, judge whether your content is unique (the "vanish test") or measure real-user INP, and it cannot see which AI assistants cite you; the report lists these as manual checks.
- Server response time is measured from our server on a warm connection; it is indicative, not a field measurement.
- Page weight is estimated from up to 20 images, 25 scripts and 15 stylesheets referenced in the HTML, as transfer size. websitecarbon.com measures a real page load and can differ.
- PageSpeed Insights has a daily quota and can time out on heavy pages; the check is then marked "not measured" instead of failing.
- It is an automated heuristic, not a professional audit.

## Changelog

- **1.9.0 — 2026-10-23**: form check follows the checklist line exactly — a visible label for every field (screen-reader-only labels and placeholders warn) and validation errors that reach screen readers; "The audit at a glance" ends with scoring and next steps (pass rate, fix accessibility and rendering first, re-audit every three months); the score card shows the pass rate as a percentage; the Agent API ring shows the signals found instead of an empty "—"; clearer note when a host refuses data-centre traffic; the caching check no longer counts third-party tag files (analytics, chat, fonts, embeds), whose cache lifetime the provider sets — the third-party tags check covers them; methodology credits the webinar and adds a further-reading list.
- **1.8.1 — 2026-10-22**: scan, PageSpeed and WAVE results are shared between server instances (Vercel Runtime Cache), so a repeated scan is not measured twice and the daily WAVE allowance holds across instances. The websitecarbon.com panel retries once and says plainly when their service is busy.
- **1.8.0 — 2026-10-22**: the full report is open to everyone — no email needed for the fixes and prompts. Results page redesigned: score card with category rings, failing checks open first, extras collapsed.
- **1.7.0 — 2026-10-22**: the MCP connector works like an app — every part of the checker is its own tool (audit at a glance, accessibility, JavaScript & Core Web Vitals, structured data & schema.org, Markdown, content chunking, AI crawlers, agent readiness, carbon, online shop, machine view).
- **1.6.3 — 2026-10-22**: carbon on its own for agents — MCP tool check_carbon and GET /api/carbon (websitecarbon-style result with yearly equivalents).
- **1.6.2 — 2026-10-22**: "Over a year" in the carbon section, as on websitecarbon.com — yearly CO₂, energy and everyday equivalents for an adjustable number of monthly page views.
- **1.6.1 — 2026-10-22**: WebAIM WAVE connected — unlocked reports show the AIM score and the number of errors and contrast errors (target: AIM 9/10, zero errors).
- **1.6.0 — 2026-10-22**: every report opens with "The audit at a glance" — six audit steps with the tool to verify each, the three priorities and the quick wins.
- **1.5.0 — 2026-10-22**: HTTPS (redirect, mixed content), working links, content recency, content structure (one heading, one idea; sections that stand alone; no fixed sizes); every report shows what crawlers and agents extract without JavaScript; the five-page scan shows a quick audit matrix. Fixed: informational checks no longer lower a category score.
- **1.4.0 — 2026-10-22**: live validation with the official schema.org Markup Validator and a rich-result completeness check; every check can be ticked individually in Customize scan; indexability, a live fetch as GPTBot/ClaudeBot/PerplexityBot within the 1–5 s AI-crawler timeout, FAQs among the decision content, unused JavaScript target 50 KB, JavaScript-only pagination/forms and the quality of the Markdown version.
- **1.3.0 — 2026-10-22**: AI search crawlers not blocked, Markdown version of each scanned page, services/prices/contact discoverable, keyboard-focusable controls, clean metadata, proof of work, server response, compression, page-builder and plugin load; manual guidance for the Tab test, the vanish test and the monthly AI citation check.
- **1.2.0 — 2026-10-22**: full checklist coverage (rendering mode, third-party tags, page weight, Core Web Vitals, unused JavaScript, Lighthouse accessibility, media, caching/CDN, green hosting), online-shop category, pass rate, multi-page scan, result cache and rate limit, static HTML pages.
- **1.1.0 — 2026-10-21**: gzip-aware JavaScript weight, SWD v4, author-identity and freshness checks, button-name and navigation checks, agent-ready surface (API catalog, MCP, skills).
- **1.0.0**: first release.

## Who runs this

Marketing Hygiene Checker is built and run by András Pintér, SEO and AI-visibility consultant in Hessen, Germany — [andraspinter.de](https://andraspinter.de) (English/German), [digitalislathatosag.hu](https://digitalislathatosag.hu) (Hungarian), [LinkedIn](https://www.linkedin.com/in/pintande89). The idea was inspired by Warren Laine-Naida's GreenGeeks webinar [“Marketing Hygiene Matters”](https://warrenlainenaida.net/marketing-hygiene-ai-accessibility/) (September 2026); the checks, scoring and software are our own work.

## Further reading

Others writing about the same ground — accessible, machine-readable and lean websites:

- [Build agent-friendly websites](https://web.dev/articles/ai-agent-site-ux) — Google's web.dev guide on how AI agents read pages (screenshots, DOM, accessibility tree) and what helps them.
- [The accessibility tree is how AI agents read your site, and it's breaking](https://www.searchenginejournal.com/the-accessibility-tree-is-how-ai-agents-read-your-site-its-breaking/578171/) — Search Engine Journal.
- [Accessibility is the first-class interface for AI agents](https://www.infoworld.com/article/4193332/accessibility-is-the-first-class-interface-for-ai-agents.html) — InfoWorld.
- [Introduction to web accessibility](https://www.w3.org/WAI/fundamentals/accessibility-intro/) — W3C Web Accessibility Initiative.
- [Content chunking: ein Leitfaden für jedes Level](https://warrenlainenaida.de/content-chunking-ein-leitfaden-fuer-jedes-level/) — Warren Laine-Naida on structuring content so search engines and AI can use it (German).
- [Is your site agent-ready?](https://isitagentready.com/) — a free scanner for the agent protocols (llms.txt, MCP, API catalogs and more).
- [Estimating digital emissions](https://sustainablewebdesign.org/estimating-digital-emissions/) — the Sustainable Web Design model behind the carbon figures.
- [Page weight — Web Almanac 2025](https://almanac.httparchive.org/en/2025/page-weight) — HTTP Archive's yearly look at how heavy the web really is.
- [Content Signals](https://contentsignals.org/) — the robots.txt line that tells AI systems whether they may use your content for search, AI answers or training.

## Corrections

Disagree with a result? Email info@ismysitehygienic.com with the URL and the check — thresholds and wording are revised in the open and listed above.

[Back to the scanner](https://ismysitehygienic.com/index.md)
