The check library
Every check we run. All 90.
The real catalogue, in full: what each check looks for, why it matters, and whether we write the fix.
90Checks, run on every crawl
49Where the engine writes the fix itself
6Critical, meaning a page can be dropped
12Areas the catalogue covers
Technical and crawl · 17
criticalPage is blocked from indexingpage_noindexneeds a decisioncriticalServer errorpage_5xxneeds a decisioncriticalRedirect loopredirect_loopneeds a decisioncriticalrobots.txt blocks a page that should rankrobots_blocks_importantneeds a decisioncriticalPage is not served over HTTPSno_httpsneeds a decisionhighBroken internal linkpage_404_linkedfix writtenhighNo XML sitemap foundno_sitemapfix writtenhighHTTPS page loads insecure resourcesmixed_contentneeds a decisionhighCanonical points to a different pagecanonical_mismatchneeds a decisionmediumRedirect chainredirect_chainfix writtenmediumOrphan pageorphan_pagefix writtenmediumSitemap lists pages that cannot be indexedsitemap_contains_non_indexablefix writtenmediumSitemap omits pages that are live and indexablesitemap_missing_pagesfix writtenmediumNo canonical tagcanonical_missingfix writtenlowNo robots.txtrobots_missingfix writtenlowPage is more than four clicks from the homepagedeep_pagefix writtenlowNo lang attribute on the html elementno_lang_attributefix written
Content and on-page · 17
highDuplicate page contentduplicate_contentneeds a decisionhighMissing title tagtitle_missingfix writtenhighThin contentthin_contentneeds a decisionmediumDuplicate title tagduplicate_titlefix writtenmediumMissing meta descriptionmeta_description_missingfix writtenmediumNo H1 headingh1_missingfix writtenmediumPage links to nothing internallyno_internal_links_outfix writtenmediumContent has not been updated in over 18 monthscontent_staleneeds a decisionmediumSeveral pages target the same querykeyword_cannibalisationneeds a decisionmediumImage without alt textimage_alt_missingfix writtenlowDuplicate meta descriptionduplicate_meta_descriptionfix writtenlowTitle is longer than the search snippettitle_too_longfix writtenlowTitle is very shorttitle_too_shortfix writtenlowMeta description is outside the snippet lengthmeta_description_lengthfix writtenlowMore than one H1h1_multiplefix writtenlowHeading levels skipheading_hierarchy_brokenfix writtenlowHeadings carry no topical informationno_meaningful_headingsfix written
Speed and Core Web Vitals · 7
highServer response is slowslow_responseneeds a decisionmediumPage weight is largeheavy_pageneeds a decisionmediumVery large JavaScript payloadexcessive_javascriptneeds a decisionmediumRender-blocking stylesheets and scriptsrender_blocking_resourcesneeds a decisionlowImage uses a legacy formatimage_legacy_formatfix writtenlowImage has no width and heightimage_no_dimensionsfix writtenlowBelow-the-fold images load eagerlyimage_no_lazy_loadingfix written
Structured data · 6
highStructured data is invalidschema_invalidfix writtenhighStructured data does not match the visible pageschema_contradicts_pageneeds a decisionmediumNo structured dataschema_missingfix writtenmediumStructured data is missing required propertiesschema_missing_requiredfix writtenmediumNo Organization or LocalBusiness markup on the homepageno_organization_schemafix writtenlowNo breadcrumb markupno_breadcrumb_schemafix written
AI answers (AEO and GEO) · 11
criticalThe page's content only exists after JavaScript runscontent_needs_javascriptneeds a decisionhighAI crawlers are blockedai_crawler_blockedfix writtenhighTitle or description is injected by script rather than servedmeta_needs_javascriptneeds a decisionhighAn SEO tool is injecting fixes client sideseo_injection_scriptneeds a decisionhighBody content is not present in the served HTMLcontent_not_extractableneeds a decisionmediumPage does not answer its question directlyno_direct_answerfix writtenmediumNo citable facts or datano_citable_factsneeds a decisionmediumNo identifiable authorno_author_attributionneeds a decisionmediumThe brand entity is not definedentity_unclearfix writtenlowNo llms.txtmissing_llms_txtfix writtenlowQuestions are answered without FAQ structureno_faq_structurefix written
Local and maps · 8
highBusiness name, address or phone is inconsistentnap_inconsistentneeds a decisionhighAddress and phone are not on the sitenap_missingfix writtenhighGoogle Business Profile is incompletegbp_incompletefix writtenmediumNo recent Google Business Profile postsgbp_no_recent_postsfix writtenmediumReviews have no responsereviews_unansweredfix writtenmediumNo landing page for this locationmissing_location_pagefix writtenmediumNo LocalBusiness markupno_local_schemafix writtenlowMissing directory citationcitation_missingneeds a decision
Authority and links · 6
highToxic backlinks detectedtoxic_backlinksneeds a decisionhighNo backlink data source connectedbacklinks_not_connectedneeds a decisionmediumBacklinks lostlost_backlinksneeds a decisionmediumBrand mentioned without a linkunlinked_mentionneeds a decisionmediumCompetitors have substantially more referring domainsauthority_gapneeds a decisionmediumNothing on the site is worth linking tono_linkable_assetneeds a decision
International targeting · 3
Ecommerce · 3
Experience and conversion · 4
Compliance and risk · 4
highHealth, legal or financial content with no stated credentialsymyl_no_credentialsneeds a decisionhighClaim published without substantiationunsubstantiated_claimneeds a decisionmediumAffiliate or sponsored content without disclosuremissing_disclosurefix writtenmediumNo privacy policy foundno_privacy_policyneeds a decision
Measurement · 4
Why the whole catalogue is public
A false positive is more expensive than a miss. One wrong high-severity finding teaches you to discount the severe ones, which are the only ones worth reading, so a check gets narrowed rather than left to fire loosely. Publishing the catalogue is what makes that claim checkable instead of something we say.
The same codes, severities and weightings run in both engines, the one in your browser and the one on a server installation, so the same problem scores the same way wherever it is found.
Run all 90 against your site
About four minutes, in your browser. No account, no card. Every finding that can arrive with the fix already written, does.