Every rule, and the specification it comes from
A page is graded on 15 rules and a domain on 16, and each one names a published clause you can read yourself. Nothing here rests on an opinion about what search engines like. Where a check comes from our own notes rather than a standard it says so, and it is never counted against a page somebody else owns.
The three tactics with the largest measured effect on whether a generative engine quotes a page are adding quotations, adding statistics and citing sources, at 27.2, 25.2 and 24.6 against a baseline of 19.3 on a 10,000 query benchmark. That is from GEO: Generative Engine Optimization, Aggarwal and others, KDD 2024. This page is built the way that paper describes because it would be strange to publish the finding and ignore it.
What a document has to carry
Applied to any page. Only the rows citing a published specification are shown for a page its owner did not submit.
| Rule | Check | Source |
|---|---|---|
| PAGE-001 | og:title is present and non-empty | The Open Graph protocol, Basic Metadata |
| PAGE-002 | og:type is present and is a declared type | The Open Graph protocol, Basic Metadata |
| PAGE-003 | og:image is present and resolves | The Open Graph protocol, Basic Metadata |
| PAGE-004 | og:url is present and absolute | The Open Graph protocol, Basic Metadata |
| PAGE-010 | the document has exactly one non-empty title | HTML Standard, 4.2.2 The title element |
| PAGE-011 | the html element declares a language | HTML Standard, 3.2.6.2 The lang attribute |
| PAGE-020 | every img carries an alt attribute | WCAG 2.2, SC 1.1.1 Non-text Content, Level A |
| PAGE-021 | the declared language is a valid tag | WCAG 2.2, SC 3.1.1 Language of Page, Level A |
| PAGE-022 | headings descend without skipping a level | WCAG 2.2, SC 1.3.1 Info and Relationships, Level A |
| PAGE-023 | no link text is bare "here" or "read more" | WCAG 2.2, SC 2.4.4 Link Purpose (In Context), A |
| PAGE-030 | every ld+json block parses | JSON-LD 1.1, 3. Basic Concepts |
| PAGE-031 | the declared @type is one this checker can confirm | Schema.org type hierarchy |
| PAGE-032 | declared required properties for that type are present | Schema.org type hierarchy |
| PAGE-040 | rel=canonical, when present, is absolute and self-consistent | RFC 6596, The Canonical Link Relation |
| PAGE-041 | the page is not excluded by its own robots directives | RFC 9309, Robots Exclusion Protocol |
What a domain has to carry
Applied to a name rather than a document: whether it can be delivered from, connected to and crawled at all. None of this is visible in the HTML.
| Rule | Check | Source |
|---|---|---|
| SITE-001 | an SPF record is published for the domain | RFC 7208, Sender Policy Framework (SPF) v1 |
| SITE-002 | the SPF record does not end in +all, which authorises the whole internet | RFC 7208, Sender Policy Framework (SPF) v1 |
| SITE-003 | there is exactly one SPF record, because two is a permerror | RFC 7208, Sender Policy Framework (SPF) v1 |
| SITE-010 | a DMARC record is published at _dmarc | RFC 7489, DMARC |
| SITE-011 | the DMARC policy is quarantine or reject rather than none | RFC 7489, DMARC |
| SITE-012 | the DMARC record names an address to receive reports | RFC 7489, DMARC |
| SITE-014 | there is exactly one DMARC record, because two means no policy at all | RFC 7489, DMARC |
| SITE-020 | a DKIM selector resolves, so signed mail can be verified | RFC 6376, DomainKeys Identified Mail (DKIM) |
| SITE-030 | the site answers on https with a certificate that validates | RFC 6797, HTTP Strict Transport Security |
| SITE-031 | the certificate is not within 14 days of expiry | RFC 6797, HTTP Strict Transport Security |
| SITE-032 | Strict-Transport-Security is set on the https response | RFC 6797, HTTP Strict Transport Security |
| SITE-033 | plain http redirects to https rather than serving content | RFC 6797, HTTP Strict Transport Security |
| SITE-040 | robots.txt is served and does not exclude the whole site | RFC 9309, Robots Exclusion Protocol |
| SITE-041 | robots.txt declares a Sitemap location | Sitemaps XML format, 0.90 |
| SITE-042 | the declared Sitemap actually resolves | Sitemaps XML format, 0.90 |
| SITE-050 | a CAA record limits which authorities may issue for this name | RFC 8659, DNS Certification Authority Authorization |
Why a rule gets removed
One did. It claimed the sitemaps protocol and checked whether the word "sitemap" appeared in the head of the document. The protocol puts the sitemap location in robots.txt and says nothing about the document, so the rule cited a specification that did not cover what it looked at. It was deleted rather than reworded, and the check now lives where it can actually be made, against robots.txt.