Suede Audit Run your free audit
Back to the audit

Check reference

Every check in the audit, and the rule behind it.

A Suede Audit report runs 28 weighted checks against one public homepage and three root discovery files. This reference documents each one: the signal it reads, the exact rule the scanner applies, why search engines and AI crawlers care, and how to clear a failure. Every rule is read from the open scoring code.

How the weights add up

Each check carries a severity. High counts 5 points, medium 3 and low 1. The 28 checks add up to 90 points: 10 high checks worth 50, 11 medium checks worth 33, and 7 low checks worth 7. The readiness score is the share of those points a page earns, rounded to a whole number. One failed high check costs about 5.6 points of the score, a medium check about 3.3, and a low check about 1.1.

Checks roll up into three pillars, scored the same way: Discoverability (13 checks, 49 points), Entity evidence (3 checks, 13 points) and Content clarity (12 checks, 28 points). Grades use the same bands everywhere: A from 90, B from 80, C from 70, D from 55, and F below 55. The method page covers what the audit fetches and how results are cached.

Discoverability: 13 checks, 49 points

CheckLaneSeverity, pointsPasses when
Page returns a successful responseAccessHigh, 5Final response is 2xx
Page is served over HTTPSAccessHigh, 5Final URL uses https
Page can be indexedAccessHigh, 5Robots meta has no noindex
Document language is declaredAccessLow, 1html tag has a lang attribute
Canonical link is declaredTechnicalMedium, 3A rel="canonical" link exists
Mobile viewport is declaredTechnicalHigh, 5A viewport meta tag exists
robots.txt is availableTechnicalLow, 1/robots.txt returns 2xx
XML sitemap is availableTechnicalMedium, 3/sitemap.xml returns 2xx
OpenAI search crawler can access the homepageAI discoveryHigh, 5OAI-SearchBot not blocked from /
Claude search crawler can access the homepageAI discoveryHigh, 5Claude-SearchBot not blocked from /
Perplexity crawler can access the homepageAI discoveryHigh, 5PerplexityBot not blocked from /
Google discovery crawler can access the homepageAI discoveryHigh, 5Googlebot not blocked from /
llms.txt evidence index is availableAI discoveryLow, 1/llms.txt returns 2xx with text

Entity evidence: 3 checks, 13 points

CheckLaneSeverity, pointsPasses when
Valid JSON-LD is presentEntityHigh, 5One JSON-LD block parses
A primary entity type is declaredEntityHigh, 5Organization, Corporation, LocalBusiness, OnlineBusiness or Person declared
Entity identity links are declaredEntityMedium, 3A node declares sameAs

Content clarity: 12 checks, 28 points

CheckLaneSeverity, pointsPasses when
Title is specific and scannableMetadataMedium, 3Title is 15 to 60 characters
Meta description explains the pageMetadataMedium, 3Description is 50 to 160 characters
Open Graph title and image are presentMetadataLow, 1og:title and og:image present
X card metadata is presentMetadataLow, 1twitter:card present
A favicon is declaredMetadataLow, 1icon or shortcut icon link present
Page has exactly one H1ContentMedium, 3Exactly one H1
Images declare alt attributesContentLow, 1No img without an alt attribute
Page has substantive readable contentContentMedium, 3300 words or more
Page uses explanatory H2 sectionsContentMedium, 3Two or more H2
Page sections fit one retrieval chunkContentMedium, 3No heading section over 375 words
Page points to supporting internal evidenceContentMedium, 3Three or more same-host links
HTML response stays under 300 KBPerformanceMedium, 3HTML is 300 KB or less

Reported beside the score

Three crawler tokens that control model training or AI use, GPTBot, ClaudeBot and Google-Extended, are read from the same robots.txt with the same rule and shown in their own panel. They never change the score; the crawler access page explains why. The evidence summary, which lists the title, description, language, canonical, schema types, image alt counts and sitemap entries the audit found, is reported without scoring too.

Reference pages

Related Suede guides

Every rule on this page is read from the scoring code in lib/engine.mjs. If the code changes, this reference changes with it.

Contact