Each item keeps its requirement ID from the book, names the documented source, and states why the scanner cannot decide it from outside the site. These items never affect the score. They appear at the end of every report as a checklist so that a human review can finish what the automated one started.
SEO-HTTP-04
Error and empty states in templates (no results, missing product) return 404 or noindex, not 200 with error text
Why the scanner cannot: Requires knowing which page states are errors
Source: G-HTTP · 2xx (success) · [G-HTTP]
SEO-HTTP-08
Firewalls, CDNs and bot protection admit verified Googlebot and bingbot
Why the scanner cannot: The scanner cannot send requests from Google or Microsoft addresses
Source: G-AI · SEO best practices ("Ensuring that crawling is allowed in robots.txt, and by any CDN or hosting infrastructure"); G-VERIFY; B-VERIFY · [G-AI] [G-VERIFY] [B-VERIFY]
SEO-ROBOTS-06
Low-value parameter spaces (sorts, unindexed filters, internal search) are disallowed when they need not be crawled
Why the scanner cannot: Requires knowing which parameters are low value
Source: G-FACET ("If you don't need the faceted navigation URLs potentially indexed, prevent crawling of these URLs.") · [G-FACET]
SEO-CANON-04-CONTENT
Every cross-page canonical points to a true duplicate or superset
Why the scanner cannot: Content equivalence needs human judgment
Source: RFC6596 · 3 ("The target (canonical) IRI MUST identify content that is either duplicative or a superset of the content at the context (referring) IRI.") · [RFC6596]
SEO-LINK-04
Paginated and infinite-scroll lists expose a unique, linked URL per page of results
Why the scanner cannot: Requires interaction and intent
Source: G-LAZY ("Give each chunk its own persistent, unique URL.") · [G-LAZY]
SEO-LINK-05
Paid and user-generated outbound links carry sponsored or ugc (or nofollow)
Why the scanner cannot: The scanner cannot tell which links are paid
Source: G-QUALIFY · [G-QUALIFY]
SEO-IMG-05
Lazy loading never depends on scrolling or clicking; the main above-the-fold image is not lazy-loaded (house convention)
Why the scanner cannot: Requires interaction and LCP identification
Source: G-LAZY · Load content when it's visible in the viewport (the recommended methods "don't rely on user actions, such as scrolling or clicking") · [G-LAZY]
SEO-I18N-01
Each language version has its own URL; language never switches by cookie or Accept-Language alone
Why the scanner cannot: The scanner sends fixed headers and no cookies
Source: G-MULTIREGIONAL · [G-MULTIREGIONAL]
SEO-REDIR-02
Changing a published slug creates a permanent redirect from the old URL
Why the scanner cannot: A single snapshot cannot see slug changes; diff mode lists URLs that disappeared between scans
Source: G-REDIRECTS · [G-REDIRECTS]
SEO-REDIR-04
Migration redirects are kept for at least a year
Why the scanner cannot: Needs history
Source: G-SITEMOVE ("Keep the redirects for as long as possible, generally at least 1 year.") · [G-SITEMOVE]
SEO-REDIR-05
302, 303 and 307 are used only for genuinely temporary moves
Why the scanner cannot: Needs intent
Source: G-REDIRECTS · [G-REDIRECTS]
SEO-REDIR-06-UA
Redirects do not vary by user agent to mislead crawlers (sneaky redirects)
Why the scanner cannot: The scanner never impersonates crawlers
Source: G-SPAM · Sneaky redirects · [G-SPAM]
SEO-JS-03
Dynamic rendering is not used for new builds
Why the scanner cannot: Would require crawler impersonation
Source: G-DYNAMIC ("Dynamic rendering is a workaround and not a recommended solution") · [G-DYNAMIC]
SEO-META-05-STABLE
The favicon URL stays stable
Why the scanner cannot: Needs history; the diff mode reports changes
Source: G-FAVICON ("The favicon URL must be stable (don't change the URL frequently).") · [G-FAVICON]
SEO-TOOLS-02
Sitemaps are submitted in Search Console and Bing Webmaster Tools
Why the scanner cannot: Not observable
Source: G-SC-SITEMAPS; B-BWT-2025 · [G-SC-SITEMAPS] [B-BWT-2025]
SEO-TOOLS-03
Page indexing, URL Inspection, manual actions and security issues are reviewed after releases
Why the scanner cannot: Not observable
Source: G-PIR; G-URL-INSPECTION · [G-PIR] [G-URL-INSPECTION]
SEO-AI-06
Search Console's Search generative AI control is set as intended
Why the scanner cannot: Not observable
Source: G-SC-AI-CONTROL · [G-SC-AI-CONTROL]
SEO-TOOLS-04
Server logs are retained and crawler visits are verified by reverse DNS (Google) or Verify Bingbot (Bing)
Why the scanner cannot: Logs are not observable
Source: G-VERIFY; B-VERIFY · [G-VERIFY] [B-VERIFY]
SEO-CONTENT-01
People-first, original, trustworthy content; E-E-A-T
Why the scanner cannot: No published, testable rubric; Google publishes self-assessment questions, not weights
Source: G-HELPFUL · [G-HELPFUL]