Audit coverage
317+ checks.
Zero hidden tiers.
Every Rocket Vitals audit runs the full system across your site, from canonical conflicts and broken links to accessibility failures, headers, performance, and AI visibility.
Categories
8
Criticality
P0 to P3 severity so teams can distinguish urgent risk from cleanup work.
Output
Search the catalog here, then run the scan to see which findings apply to the site.
Browse the system
Filter the audit engine without losing the bigger picture.
Jump straight to a category, search for a rule, or narrow the catalog by severity. The point is speed without making the page feel like a spreadsheet.
Active view
317
checks in the full engine (named rules plus runtime axe-core coverage).
Showing 317 checks across all categories
Full audit catalog visible
Severity is the triage system
P0 means immediate risk. P1 is serious. P2 and P3 are still worth fixing, but they rarely justify panic.
The catalog is the full engine
Every scan runs the same broad system. There are no hidden categories reserved for higher plans or custom engagements.
Not every rule fires on every site
This page lists possible findings. Your report shows which ones appear on the site you scanned.
missing_titleMissing page title
Page has no <title> tag
title_too_shortTitle too short
Title is under 30 characters
title_too_longTitle too long
Title exceeds 60 characters
missing_meta_descriptionMissing meta description
No meta description found
meta_description_too_shortMeta description too short
Description under 70 characters
meta_description_too_longMeta description too long
Description exceeds 160 characters
missing_h1Missing H1 heading
Page has no H1 tag
multiple_h1Multiple H1 headings
Page has more than one H1
page_noindexPage set to noindex
Page will not be indexed by search engines
missing_viewportMissing viewport meta
No viewport meta tag for responsive design
viewport_not_responsiveViewport not responsive
Viewport uses fixed width
missing_faviconMissing favicon
No favicon specified
missing_canonicalMissing canonical URL
No canonical link element
relative_canonicalRelative canonical URL
Canonical should be absolute
cross_domain_canonicalCross-domain canonical
Canonical points to different domain
canonical_url_brokenCanonical URL broken
Canonical URL returns error
canonical_loopCanonical loop
Canonical tags form a circular chain across pages
missing_og_titleMissing og:title
No Open Graph title
missing_og_descriptionMissing og:description
No Open Graph description
missing_og_imageMissing og:image
No Open Graph image
og_image_relativeOG image is relative
Open Graph image should be absolute
og_image_brokenOG image broken
Open Graph image returns error
missing_twitter_cardMissing twitter:card
No Twitter Card meta
missing_structured_dataNo structured data
No JSON-LD or microdata found
invalid_json_ldInvalid JSON-LD
Structured data has syntax errors
schema_missing_required_propertySchema missing required property
Required property missing for Google Rich Results eligibility
schema_rich_result_warningSchema missing recommended property
Recommended property missing that could improve rich result appearance
schema_type_not_google_supportedSchema type not rich-result eligible
Schema type is valid but Google does not render it as a rich result
robots_blocks_allRobots blocks crawlers
robots.txt blocks all search engines
missing_robots_txtMissing robots.txt
No robots.txt file found
robots_no_sitemap_refRobots missing sitemap
robots.txt does not reference sitemap
missing_sitemapMissing sitemap.xml
No XML sitemap found
empty_sitemapEmpty sitemap
Sitemap contains no URLs
hreflang_missing_selfHreflang missing self-ref
Hreflang missing self-reference when multiple pages are crawled
hreflang_missing_self_referenceHreflang no self-ref (single)
Hreflang tags present but none point to the current page
hreflang_invalid_languageInvalid hreflang code
Hreflang uses invalid language code
hreflang_not_bidirectionalHreflang not bidirectional
Hreflang links not reciprocal
hreflang_points_to_redirectHreflang URL redirects
Hreflang href resolves via redirect instead of the final URL
duplicate_titleDuplicate title
Multiple pages share same title
duplicate_meta_descriptionDuplicate meta description
Multiple pages share same description
og_image_not_imageOG image not an image
Open Graph image URL does not resolve as an image
pagination_missing_rel_linksPagination missing rel
Paginated content missing rel=prev/next
pagination_next_relativePagination next is relative
rel=next href is relative; prefer absolute URLs
pagination_prev_relativePagination prev is relative
rel=prev href is relative; prefer absolute URLs
spa_renderingSPA / client rendering
Heavy client-side rendering may limit crawler visibility
client_side_linksClient-side navigation links
Links may rely on JavaScript without fallbacks
lazy_load_above_foldLazy load above the fold
Critical above-fold content uses lazy loading
noscript_fallback_missingMissing noscript fallback
No meaningful content when JavaScript is disabled
js_framework_detectedJS framework detected
Client framework detected; ensure SSR/SSG where needed
url_uppercaseURL path has uppercase
Mixed-case paths can cause duplicate URL issues
url_too_longURL too long
URL path or query string is unusually long
viewport_not_mobile_friendlyViewport not mobile-friendly
Viewport meta not set for mobile-friendly rendering
mobile_usability_interstitialIntrusive interstitial (mobile)
Possible intrusive interstitial or overlay on mobile
tap_targets_too_closeTap targets too close
Touch targets are too close together on mobile
text_too_small_mobileText too small (mobile)
Text may be too small on mobile viewports
non_indexable_in_sitemapNon-indexable page in sitemap
URL in sitemap but blocked by noindex, robots.txt, or error status
conflicting_indexability_signalsConflicting indexability signals
Page has contradictory directives (e.g. noindex + sitemap, canonical + robots block)
indexable_low_valueIndexable low-value page
Indexable page with thin content and no internal links pointing to it
image_filename_not_descriptiveNon-descriptive image filenames
Image filenames like IMG_2847.jpg or UUIDs provide no SEO value
js_render_content_diffJS-dependent content
Significant text content only visible after JavaScript execution
js_render_links_hiddenJS-only internal links
Internal links only present in JS-rendered DOM, invisible to simple crawlers
js_render_meta_mismatchMeta tag JS mismatch
Title or meta description differs between raw HTML and JS-rendered DOM
missing_lang_attributeMissing lang attribute
HTML element missing lang attribute
color_contrastInsufficient color contrast
Text does not meet WCAG contrast ratio
missing_alt_textImages missing alt text
Images without alternative text
empty_altEmpty alt attribute
Alt text is empty string when it should describe image
form_missing_labelsForm inputs missing labels
Form controls without associated labels
missing_button_textButtons missing text
Button elements without accessible text
missing_link_textLinks missing text
Anchor elements without text content
duplicate_idDuplicate element IDs
Multiple elements share same ID
missing_skip_linkMissing skip link
No skip to content link
missing_landmarkMissing landmarks
Page missing ARIA landmarks
invalid_ariaInvalid ARIA attributes
ARIA attributes incorrectly used
missing_aria_labelMissing ARIA label
Interactive element missing label
keyboard_trapKeyboard trap
Focus cannot be moved from element
focus_not_visibleFocus not visible
No visible focus indicator
tabindex_positivePositive tabindex
tabindex > 0 disrupts natural order
heading_orderHeading order incorrect
Heading levels skipped
empty_headingEmpty headings
Heading elements with no text
table_missing_headersTable missing headers
Data table without header cells
iframe_missing_titleIframe missing title
Iframe without title attribute
autoplay_audioAudio autoplays
Audio plays automatically without user action
missing_document_titleMissing document title
Page has no title element
svg_missing_titleSVG missing title
SVG graphics without accessible name
text_too_smallText too small
Text smaller than 12px
touch_target_too_smallTouch targets too small
Interactive elements under 44x44px
axe_violations+ 60 axe-core rules (dynamic codes)
Runtime accessibility findings use codes a11y_<axe-rule-id> (desktop) and a11y_mobile_<axe-rule-id> (mobile-only)
slow_fcpSlow First Contentful Paint
FCP exceeds 3 seconds
needs_improvement_fcpFCP needs improvement
FCP between 1.8-3 seconds
slow_lcpSlow Largest Contentful Paint
LCP exceeds 4 seconds
needs_improvement_lcpLCP needs improvement
LCP between 2.5-4 seconds
poor_clsPoor Cumulative Layout Shift
CLS exceeds 0.25
needs_improvement_clsCLS needs improvement
CLS between 0.1-0.25
slow_inpSlow Interaction to Next Paint
INP exceeds 500ms
moderate_inpModerate INP
INP between 200-500ms
slow_loadSlow page load
Total load time exceeds 5 seconds
high_tbtHigh Total Blocking Time
TBT exceeds 600ms, heavy main-thread blocking
moderate_tbtModerate Total Blocking Time
TBT between 200-600ms, some main-thread blocking
no_modern_image_formatNo modern image formats
Images not using WebP or AVIF
missing_lazy_loadingMissing lazy loading
Below-fold images not lazy loaded
oversized_imageOversized images
Image dimensions exceed display size
missing_image_dimensionsMissing image dimensions
Images without width/height cause layout shift
no_responsive_imagesNo responsive images
Images missing srcset for responsive delivery
render_blocking_cssRender-blocking CSS
Too many render-blocking stylesheets
render_blocking_jsRender-blocking JS
Scripts blocking page render
no_preload_hintsNo preload hints
Critical resources not preloaded
excessive_http_requestsExcessive HTTP requests
Page makes over 40 requests
missing_font_displayMissing font-display
Web fonts block text rendering
no_compressionNo compression
Response not gzip/Brotli compressed
slow_server_responseSlow server response
TTFB exceeds 1 second
lcp_image_not_preloadedLCP image not preloaded
Largest image should use preload
no_cdn_detectedNo CDN detected
Static assets not served via CDN
no_http2No HTTP/2
Server not using HTTP/2
avif_not_usedAVIF not used
Images use WebP but not AVIF where supported
image_too_large_filesizeImage filesize too large
Image exceeds 200 KB transfer size
too_many_images_no_lazyMany images without lazy loading
Page has >10 images but fewer than half use lazy loading
mobile_poor_clsPoor CLS (mobile)
Cumulative Layout Shift poor on mobile viewport
mobile_slow_fcpSlow FCP (mobile)
First Contentful Paint slow on mobile viewport
mobile_slow_inpSlow INP (mobile)
Interaction to Next Paint slow on mobile viewport
mobile_slow_lcpSlow LCP (mobile)
Largest Contentful Paint slow on mobile viewport
mobile_slow_loadSlow load (mobile)
Overall load slow on mobile viewport
moderate_server_responseModerate TTFB
Server response time is elevated but below hard fail threshold
missing_lcp_preloadLCP image not preloaded
LCP candidate could benefit from preload
unminified_inline_codeUnminified inline code
Large inline script or style blocks appear unminified
excessive_third_party_scriptsToo many third-party script domains
Page loads scripts from more than 10 distinct third-party domains
third_party_large_payloadLarge third-party script
Individual third-party script exceeds 100 KB
too_many_third_party_requestsToo many third-party requests
Page makes over 20 script requests to third-party domains
certificate_expiredSSL certificate expired
HTTPS certificate has expired
certificate_expiring_criticalCertificate expiring soon
Certificate expires in < 7 days
certificate_expiring_soonCertificate expiring
Certificate expires in < 30 days
no_https_redirectNo HTTPS redirect
HTTP does not redirect to HTTPS
mixed_contentMixed content
HTTPS page loads HTTP resources
missing_cspMissing CSP header
No Content-Security-Policy header
csp_unsafe_inlineCSP allows unsafe-inline
CSP permits inline scripts
csp_unsafe_evalCSP allows unsafe-eval
CSP permits eval()
csp_wildcard_sourceCSP uses wildcards
CSP permits * sources
missing_hstsMissing HSTS
No Strict-Transport-Security header
missing_x_frame_optionsMissing X-Frame-Options
Page can be embedded in frames
missing_x_content_type_optionsMissing X-Content-Type-Options
No nosniff header
missing_referrer_policyMissing Referrer-Policy
No referrer policy set
missing_permissions_policyMissing Permissions-Policy
No feature restrictions
cookie_missing_secureCookie missing Secure
Cookie sent over HTTP
cookie_missing_httponlyCookie missing HttpOnly
Cookie accessible to JavaScript
cookie_missing_samesiteCookie missing SameSite
Cookie vulnerable to CSRF
missing_noopenerLinks missing noopener
External links without rel=noopener
external_script_missing_sriScripts missing SRI
External scripts without integrity hash
missing_security_txtMissing security.txt
No /.well-known/security.txt
csp_data_uri_scriptsCSP allows data: in script-src
CSP permits data: URIs for scripts
http_redirect_not_httpsHTTP redirect not to HTTPS
HTTP responds but redirect target is not HTTPS
missing_coepMissing COEP header
No Cross-Origin-Embedder-Policy
missing_coopMissing COOP header
No Cross-Origin-Opener-Policy
missing_corpMissing CORP header
No Cross-Origin-Resource-Policy
craft_seomatic_missingCraft: SEOmatic not detected
Craft site without SEOmatic SEO plugin signals
craft_blitz_not_detectedCraft: Blitz cache not detected
Craft site without Blitz page caching plugin
craft_login_exposedCraft: admin login exposed
Default /admin login path is publicly accessible
craft_debug_enabledCraft: debug toolbar in production
Yii/Craft debug toolbar detected in page HTML
craft_outdated_versionCraft: end-of-life version
Craft CMS version detected is no longer supported
hsts_short_max_ageHSTS max-age too short
HSTS header max-age is under 1 year
hsts_missing_preloadHSTS missing preload directive
HSTS header lacks preload
hsts_missing_includesubdomainsHSTS missing includeSubDomains
HSTS lacks subdomain coverage
exposed_server_versionServer version exposed
Server header reveals software version
exposed_x_powered_byX-Powered-By header present
Technology stack exposed via header
csp_missing_frame_ancestorsCSP missing frame-ancestors
Content Security Policy lacks clickjacking protection
broken_linkBroken link
Link returns 4xx or 5xx error
broken_imageBroken or empty image
Image has empty or missing src attribute
broken_anchor_linkBroken in-page anchor
Fragment link points to an ID that is not present on the page
redirect_chainRedirect chain
Link goes through 3+ redirects
redirect_loopRedirect loop
Circular redirect detected — URL redirects back to itself
redirect_to_4xxRedirect to 4xx error
Redirect destination returns a client error (404, 403, etc.)
redirect_to_5xxRedirect to server error
Redirect destination returns a server error (500, 502, etc.)
temporary_redirect_permanentTemporary redirect on permanent content
302/307 used where content has permanently moved — use 301 instead
meta_refresh_redirectMeta refresh redirect
HTML meta refresh used instead of server-side redirect
sitemap_url_brokenSitemap URL broken
URL in sitemap returns error
sitemap_url_not_crawledSitemap URL not crawled
Sitemap URL not reachable from site
page_not_in_sitemapPage not in sitemap
Crawled page missing from sitemap
orphan_pageOrphan page
Page has no internal links pointing to it
deep_pageDeep page
Page is more than 4 clicks from homepage
low_internal_linksLow internal linking
Page has few internal links
no_outgoing_internal_linksDead end page
Page has no outgoing internal links
excessive_outgoing_linksToo many links
Page has over 100 outgoing links
empty_anchor_textEmpty anchor text
Link has no visible text
non_descriptive_anchorNon-descriptive anchor
Link text like "click here" or "read more"
internal_link_to_error_pageInternal link to error page
Internal links point to pages that returned errors
very_thin_contentVery thin content
Page has fewer than 50 words
thin_contentThin content
Page has fewer than 300 words
poor_readabilityPoor readability
Flesch-Kincaid score below 30
difficult_readabilityDifficult readability
Flesch-Kincaid score below 50
missing_alt_text_majorityMost images missing alt
Over 50% of images lack alt text
heading_hierarchy_skipFirst heading not H1
Page starts with H2 or lower
heading_level_skipHeading level skipped
Jumps from H1 to H3
keyword_stuffingKeyword stuffing
Excessive keyword repetition detected
deprecated_html_tagsDeprecated HTML
Uses obsolete HTML elements
empty_headingsEmpty headings
Heading tags with no content
low_text_ratioLow text-to-HTML ratio
Less than 25% text content
soft_404Soft 404 detected
Page returns HTTP 200 but appears to be an error page
duplicate_contentDuplicate content
Over 95% similar to another page
high_content_similarityHigh content similarity
Over 85% similar to another page
author_no_bioAuthor without bio
Author name present but no author bio or context
excessive_dom_depthExcessive DOM depth
DOM nesting depth may hurt performance and maintainability
large_domLarge DOM
Very large number of DOM nodes
very_large_domVery large DOM
Extremely large DOM size
inline_svg_heavyHeavy inline SVG
Large inline SVG markup may affect performance
stale_contentStale content
Last-Modified header is over 12 months old
outdated_copyright_yearOutdated copyright year
Footer copyright year is more than 1 year old
outdated_date_referencesOutdated date references
Content references past years as if current
missing_llms_txtMissing llms.txt
No /llms.txt file for AI crawlers
ai_crawlers_blockedAI crawlers blocked
robots.txt blocks AI bots
missing_speakable_schemaMissing Speakable schema
No speakable structured data
missing_faq_schemaFAQ without schema
FAQ content lacks structured data
missing_author_attributionMissing author info
Content lacks author attribution
missing_publish_dateMissing publication date
Article lacks publish date
missing_date_modifiedMissing dateModified
No last modified date
weak_content_introWeak content introduction
First paragraph not concise
missing_brand_entityMissing brand entity
No Organization schema
missing_entity_sameAsMissing sameAs links
Entity missing social profile links
low_citation_friendlinessLow citation readiness
Content not easily quotable
no_external_citationsNo external citations
Content lacks external references
faq_content_no_schemaFAQ content without FAQ schema
FAQ-style content without FAQPage structured data
no_structured_dataNo structured data
No JSON-LD or microdata detected for AI/SEO
missing_author_infoMissing author information
Article lacks clear author attribution
missing_author_schemaMissing author schema
Author signals without schema.org markup
no_publication_dateNo publication date
Article lacks visible publish date
missing_privacy_policyMissing privacy policy link
No privacy policy link detected where expected
missing_contact_infoMissing contact information
No contact or support information detected
missing_organization_schemaMissing Organization schema
Homepage lacks Organization JSON-LD
missing_breadcrumb_schemaMissing Breadcrumb schema
Navigation without BreadcrumbList schema
missing_howto_schemaMissing HowTo schema
How-to content without HowTo schema
missing_review_schemaMissing Review schema
Review-like content without Review schema
missing_theme_colorMissing theme-color
Manifest present but theme-color meta missing
missing_apple_touch_iconMissing apple-touch-icon
No apple-touch-icon for iOS home screen
no_about_page_linkNo About page link
Homepage lacks link to About or company page
no_authoritative_citationsNo authoritative citations
Long-form content lacks links to authoritative sources
no_http3No HTTP/3
HTTP/3 not detected for the origin
no_service_workerNo service worker
Web app manifest present but no active service worker
no_social_proofNo social proof
Homepage lacks testimonials or trust signals
no_web_manifestNo web manifest
No Web App Manifest link found
low_semantic_htmlLow semantic HTML usage
Page uses mostly <div> instead of semantic elements like <article>, <section>, <nav>
content_too_long_for_aiContent too long for AI
Page exceeds 5,000 words and may be truncated by AI models
stale_last_modifiedStale Last-Modified header
Last-Modified header is over 12 months old, signaling stale content to AI
missing_llms_full_txtMissing llms-full.txt
No /llms-full.txt file for extended AI content
no_content_dateNo content date
No datePublished or dateModified found in structured data or meta tags
site_unreachableSite unreachable
Could not reach the host or initial response failed
scan_timeout_partialScan timed out (partial)
Deadline reached; some phases were skipped
regression_guardrail_failedRegression guardrail failed
Score or issue thresholds configured for this workspace were breached
js_console_errorsJavaScript console errors
Console errors detected on the page during crawl
heavy_page_carbonHeavy page carbon footprint
Page exceeds 500 KB — estimated ~2g CO₂ per view
moderate_page_carbonModerate page carbon footprint
Page exceeds 200 KB — estimated ~0.5g CO₂ per view
missing_spfMissing SPF record
No SPF DNS record found — domain is vulnerable to email spoofing
permissive_spfPermissive SPF record (+all)
SPF uses +all which permits any server to send email for this domain
missing_dmarcMissing DMARC record
No DMARC DNS record found — no email authentication policy enforced
dmarc_policy_noneDMARC policy not enforced
DMARC is set to p=none — email abuse is monitored but not blocked
spf_multiple_recordsMultiple SPF records
More than one SPF record found (RFC violation)
spf_too_many_lookupsSPF exceeds DNS lookup limit
SPF record requires more than 10 DNS lookups
dmarc_missing_reportingDMARC lacks reporting
DMARC policy has no aggregate report URI
dmarc_missing_subdomain_policyDMARC missing subdomain policy
No explicit subdomain policy in DMARC
missing_cookie_consentMissing cookie consent
Tracking scripts detected without a visible cookie consent mechanism
spelling_errorsSpelling errors
Common misspellings found in page body text
Ready to run these checks on your site?
Get a complete audit in under 2 minutes. No account required.
Run Your Free Scan