Technical SEO 25% 140 checks ■ ACC-01 Usable public HTML response +
■ ACC-02 Googlebot crawl policy for the final path +
■ ACC-03 bingbot crawl policy +
■ ACC-04 AI search index crawlers: OAI-SearchBot, PerplexityBot, Claude-SearchBot, Applebot, DuckAssistBot +
■ ACC-05 User-initiated AI fetchers: ChatGPT-User, Claude-User, Perplexity-User, Meta-ExternalFetcher, MistralAI-User +
■ ACC-06 Grounding and ecosystem controls: Google-Extended, GoogleOther, Applebot-Extended, Amazonbot, FacebookBot +
■ ACC-07 Training-only crawlers: GPTBot, ClaudeBot, CCBot, Bytespider, cohere-ai, anthropic-ai, Meta-ExternalAgent +
■ ACC-08 robots.txt availability and syntax +
■ ACC-09 Crawl-delay applied to a search or AI search agent +
■ ACC-10 Search indexing directives (noindex in meta or X-Robots-Tag) +
■ ACC-11 Snippet and preview availability (nosnippet, max-snippet:0, data-nosnippet) +
■ ACC-12 Non-standard AI directives (noai, noimageai) +
■ ACC-13 Content signals (Content-Signal in robots.txt or header) +
■ ACC-14 Server-rendered main content +
■ ACC-15 Meta, canonical and JSON-LD present in source rather than only after rendering +
■ ACC-16 Markdown content negotiation +
■ ACC-17 llms.txt present and well-formed +
■ ACC-18 Sitemap declared in robots.txt and reachable as XML +
■ ACC-19 This URL is listed in the fetched sitemap +
■ CORE-01 Title present, exactly one non-empty +
■ CORE-02 Title length advisory +
■ CORE-03 Meta description present, exactly one +
■ CORE-04 Description length advisory +
■ CORE-05 Canonical declaration +
■ CORE-06 Canonical is self-referencing +
■ CORE-07 Inner page canonicalizes to the homepage +
■ CORE-08 Canonical protocol matches the page +
■ CORE-09 Canonical and noindex conflict +
■ CORE-10 Viewport declaration +
■ CORE-11 Favicon declared +
■ CORE-12 Main heading (H1) present, non-empty +
■ CORE-13 Single H1 +
■ CORE-14 Other restrictive robots directives (nofollow, noarchive, noimageindex, none) +
■ CORE-15 Title and canonical declared inside head +
■ CORE-16 Title identical to H1 +
■ PERF-01 DOM size +
■ PERF-02 Render-blocking scripts in head +
■ PERF-03 Preconnect or dns-prefetch for used third-party origins +
■ PERF-04 Font loading (display=swap, font file count) +
■ PERF-05 First three images not lazy-loaded +
■ PERF-06 LCP candidate hints (fetchpriority, preload) +
■ PERF-07 CSS payload +
■ PERF-08 HTML compression +
■ PERF-09 Brotli versus gzip +
■ PERF-10 HTML document weight +
■ PERF-11 Cache validators or policy (Cache-Control, ETag, Last-Modified) +
■ PERF-12 Server response time (one direct fetch, one location) +
■ PERF-13 Inline CSS and JS appear minified +
■ PERF-14 Inline JavaScript size +
■ PERF-15 External script count +
■ PERF-16 GIF images present +
■ PERF-17 HTTP/3 advertised (alt-svc) +
■ PERF-18 CDN detected from headers +
■ SEC-01 Final URL served over HTTPS with verified certificate +
■ SEC-02 HSTS present +
■ SEC-03 Content-Security-Policy +
■ SEC-04 Clickjacking protection (X-Frame-Options or frame-ancestors) +
■ SEC-05 X-Content-Type-Options: nosniff +
■ SEC-06 Referrer-Policy +
■ SEC-07 Permissions-Policy +
■ SEC-08 target=_blank without rel=noopener +
■ SEC-09 Forms posting to http: +
■ SEC-10 Mixed content on an https page +
■ SEC-11 Credential patterns in HTML +
■ SEC-12 Password field on an http page +
■ SEC-13 Protocol-relative URLs +
■ LINK-01 Links have discernible, descriptive names +
■ LINK-02 Same-page fragment targets exist in source +
■ LINK-03 Unusable destinations (empty, javascript:, malformed, onclick-only) +
■ LINK-04 Total link count +
■ LINK-05 Localhost, dev-port or local-file references in href/src +
■ LINK-06 HTTPS page linking to http: URLs +
■ LINK-07 External link count +
■ LINK-08 At least one outgoing internal link +
■ LINK-09 Nofollow usage on affiliate or sponsored links +
■ LINK-10 tel: and mailto: syntax +
■ IMG-01 Alt attribute present (empty allowed for decoration) +
■ IMG-02 Alt text quality +
■ IMG-03 Alt text length 2–125 characters +
■ IMG-04 Explicit width and height +
■ IMG-05 Images after the third use loading=lazy +
■ IMG-06 Modern formats (WebP, AVIF, SVG) +
■ IMG-07 Responsive srcset used at least once +
■ IMG-08 figure has figcaption +
■ IMG-09 Descriptive filenames +
■ IMG-10 Inline SVG size +
■ IMG-11 picture has an img fallback +
■ IMG-12 Inline CSS background images used for content +
■ IMG-13 Declared dimensions over 2,000 px +
■ IMG-14 Broken src patterns (empty, about:blank, truncated data URI) +
■ A11Y-01 Buttons and input buttons have accessible names +
■ A11Y-02 Inline low-contrast colour pairs +
■ A11Y-03 Focus outline removed without a replacement style +
■ A11Y-04 Form inputs have labels +
■ A11Y-05 Skip-to-content link among the first links +
■ A11Y-06 Tables have th headers +
■ A11Y-07 Inline touch-target sizes under 44 px +
■ A11Y-08 Video elements have captions or subtitle tracks +
■ A11Y-09 Zoom not disabled (user-scalable=no, maximum-scale ≤ 1) +
■ SOC-01 og:title +
■ SOC-02 og:description +
■ SOC-03 og:image with an absolute HTTP(S) URL +
■ SOC-04 og:image has an image file extension +
■ SOC-05 og:url +
■ SOC-06 og:url matches the canonical +
■ SOC-07 twitter:card +
■ SOC-08 Share buttons or share links +
■ URL-01 Descriptive last segment +
■ URL-02 Stop words in the path +
■ URL-03 Uppercase characters in the path +
■ URL-04 Underscores in the path +
■ URL-05 Double slashes in the path +
■ URL-06 Spaces or %20 +
■ URL-07 Non-ASCII path characters +
■ URL-08 URL length +
■ URL-09 Repeated path segments +
■ URL-10 Query parameter count +
■ URL-11 Session identifiers in the URL +
■ URL-12 Tracking parameters (utm_*, fbclid, gclid, msclkid) +
■ URL-13 Internal search result URL without noindex +
■ URL-14 Path depth +
■ MOB-01 Inline font sizes below 12 px +
■ MOB-02 Intrusive fixed overlay covering the viewport +
■ MOB-03 Horizontal-scroll risks +
■ HTML-01 DOCTYPE html first +
■ HTML-02 Character encoding declared +
■ HTML-03 head contains only permitted children +
■ HTML-04 noscript in head +
■ HTML-05 Single html, head, body start tags +
■ HTML-06 meta elements inside body +
■ HTML-07 Document size +
■ HTML-08 Placeholder text (lorem ipsum) +
■ RDR-01 Meta refresh or HTTP Refresh navigation +
■ RDR-02 JavaScript redirect patterns in inline scripts +
■ RDR-03 Redirect chain to the final URL +
■ I18N-01 html lang is a well-formed BCP 47 tag +
■ I18N-02 Outgoing hreflang declarations well-formed and non-conflicting +
■ I18N-03 hreflang on a noindex page +
■ I18N-04 hreflang set includes this URL +
■ I18N-05 x-default present with two or more alternates +