6.36 Core Web Vitals / Speed Optimization / Performance AI-Readiness
200 checks in Schema, Local, Trust, Deep Audit. Automated
Its subsection has a live automated checker in the engine.
Core Web Vitals — LCP, INP, CLS Baseline Validation
| ID | Check | Passes when | Weight | Runs |
|---|
| 6.36.01 | Validate LCP element identifiable | Identifiable | Critical | Deterministic |
| 6.36.02 | Validate LCP < 2.5s (or fastest possible) | Optimal | Critical | Deterministic |
| 6.36.03 | Validate LCP resource preloaded | Preloaded | Critical | Deterministic |
| 6.36.04 | Validate LCP element not lazy‑loaded | Not lazy | Heavy | Deterministic |
| 6.36.05 | Validate LCP element in initial viewport | In‑viewport | Heavy | Deterministic |
| 6.36.06 | Validate LCP resource optimized (WebP/AVIF) | Optimized | Medium | Deterministic |
| 6.36.07 | Validate LCP element not blocked by JS | Unblocked | Medium | Deterministic |
| 6.36.08 | Validate INP < 200ms (or as low as feasible) | Responsive | Medium | Deterministic |
| 6.36.09 | Validate CLS < 0.1 | Stable | Medium | Deterministic |
| 6.36.10 | Validate CLS events mapped & documented | Documented | Medium | Deterministic |
Render-Path Optimization — Critical CSS, JS Order, Blocking Reduction
| ID | Check | Passes when | Weight | Runs |
|---|
| 6.36.11 | Validate no render‑blocking JS in <head> | None | Heavy | Deterministic |
| 6.36.12 | Validate critical CSS inlined | Inlined | Heavy | Deterministic |
| 6.36.13 | Validate deferred JS loading | Deferred | Heavy | Deterministic |
| 6.36.14 | Validate unused CSS removed | Clean | Medium | Deterministic |
| 6.36.15 | Validate unused JS removed | Clean | Medium | Deterministic |
| 6.36.16 | Validate async scripts used where possible | Async | Medium | Deterministic |
| 6.36.17 | Validate preload hints for key resources | Present | Medium | Deterministic |
| 6.36.18 | Validate preconnect hints for third‑party domains | Present | Medium | Deterministic |
| 6.36.19 | Validate CSS delivery minimized to critical blocks | Minimal | Medium | Deterministic |
| 6.36.20 | Validate hydration load not delaying LCP | Safe | Medium | Deterministic |
Image Optimization — Formats, Sizes, Responsive, Dpr
| ID | Check | Passes when | Weight | Runs |
|---|
| 6.36.21 | Validate all images use WebP or AVIF where supported | Optimized | Critical | Deterministic |
| 6.36.22 | Validate responsive images (srcset, sizes) | Responsive | Heavy | Deterministic |
| 6.36.23 | Validate no oversized images relative to container | Correct | Heavy | Deterministic |
| 6.36.24 | Validate hero images compressed | Compressed | Heavy | Deterministic |
| 6.36.25 | Validate DPR‑variants exist (1x, 2x) | Present | Medium | Deterministic |
| 6.36.26 | Validate lazy‑loading applied to below‑fold images | Lazy | Medium | Deterministic |
| 6.36.27 | Validate no duplicate image downloads | None | Medium | Deterministic |
| 6.36.28 | Validate next‑gen formats served automatically | Served | Medium | Deterministic |
| 6.36.29 | Validate image CDN configured | Configured | Medium | Deterministic |
| 6.36.30 | Validate aspect‑ratio attributes set | Set | Medium | Deterministic |
Video Optimization — Embeds, Streaming, Preload, Poster Frames
| ID | Check | Passes when | Weight | Runs |
|---|
| 6.36.31 | Validate videos lazy‑loaded | Lazy | Heavy | Deterministic |
| 6.36.32 | Validate video preload=“metadata” | Efficient | Heavy | Deterministic |
| 6.36.33 | Validate poster frames optimized | Optimized | Heavy | Deterministic |
| 6.36.34 | Validate no auto‑play without need | Controlled | Medium | Deterministic |
| 6.36.35 | Validate embed code does not load heavy scripts | Light | Medium | Deterministic |
| 6.36.36 | Validate streaming served from CDN | CDN | Medium | Deterministic |
| 6.36.37 | Validate video dimensions responsive | Responsive | Medium | Deterministic |
| 6.36.38 | Validate no heavy third‑party JS on video pages | Minimal | Medium | Deterministic |
| 6.36.39 | Validate mobile fallback for video | Present | Medium | Deterministic |
| 6.36.40 | Validate transcripts available | Available | Medium | Deterministic |
Font Optimization — Loading Strategies, Weights, Swap
| ID | Check | Passes when | Weight | Runs |
|---|
| 6.36.41 | Validate font-display: swap used | Swap | Heavy | Deterministic |
| 6.36.42 | Validate no excessive font weights loaded | Minimal | Heavy | Deterministic |
| 6.36.43 | Validate no base64‑embedded large fonts | Clean | Heavy | Deterministic |
| 6.36.44 | Validate system fonts used when appropriate | Appropriate | Medium | Deterministic |
| 6.36.45 | Validate preloading key font files | Preloaded | Medium | Deterministic |
| 6.36.46 | Validate WOFF2 used as primary format | WOFF2 | Medium | Deterministic |
| 6.36.47 | Validate font subsets served | Subsetted | Medium | Deterministic |
| 6.36.48 | Validate icon fonts replaced with SVG | SVG | Medium | Deterministic |
| 6.36.49 | Validate fallbacks present | Present | Medium | Deterministic |
| 6.36.50 | Compute partial Performance score for Chunk 1 | Complete | Critical | Deterministic |
Script Optimization — Size, Execution Cost, Deferred Logic
| ID | Check | Passes when | Weight | Runs |
|---|
| 6.36.51 | Validate JS bundle size < 150KB (or minimized) | Minimized | Heavy | Deterministic |
| 6.36.52 | Validate third‑party scripts loaded after user interaction | Deferred | Heavy | Deterministic |
| 6.36.53 | Validate JS execution time < 200ms main thread | Fast | Heavy | Deterministic |
| 6.36.54 | Validate expensive scripts removed or replaced | Cleaned | Medium | Deterministic |
| 6.36.55 | Validate hydration minimized for framework pages | Minimized | Medium | Deterministic |
| 6.36.56 | Validate long tasks (<50ms) minimized | Minimized | Medium | Deterministic |
| 6.36.57 | Validate execution waterfall not blocking paint | Unblocked | Medium | Deterministic |
| 6.36.58 | Validate side‑effect scripts separated | Separated | Medium | Deterministic |
| 6.36.59 | Validate module scripts used (<script type="module">) | Modern | Medium | Deterministic |
| 6.36.60 | Validate JS caching effective | Cached | Medium | Deterministic |
Server Performance — TTFB, Response Time, Edge Delivery
| ID | Check | Passes when | Weight | Runs |
|---|
| 6.36.61 | Validate TTFB < 200ms | Fast | Critical | Deterministic |
| 6.36.62 | Validate server located near primary audience | Near | Heavy | Deterministic |
| 6.36.63 | Validate CDN used effectively | Effective | Heavy | Deterministic |
| 6.36.64 | Validate caching headers correct (Cache-Control, ETag) | Correct | Heavy | Deterministic |
| 6.36.65 | Validate compression (Gzip/Brotli) enabled | Enabled | Medium | Deterministic |
| 6.36.66 | Validate no unnecessary server redirects | None | Medium | Deterministic |
| 6.36.67 | Validate keep‑alive good (persistent connections) | Persistent | Medium | Deterministic |
| 6.36.68 | Validate CDN edge caching high hit‑ratio | High | Medium | Deterministic |
| 6.36.69 | Validate no geographic latency spikes | Stable | Medium | Deterministic |
| 6.36.70 | Validate HTTP/3 supported | Supported | Medium | Deterministic |
AI-Performance Readiness — Read Speed, Token Determ
| ID | Check | Passes when | Weight | Runs |
|---|
| 6.36.71 | Validate HTML generated deterministically each load | Deterministic | Critical | Deterministic |
| 6.36.72 | Validate AI‑agents can load critical content in <1s | Fast | Heavy | Deterministic |
| 6.36.73 | Validate page consumable without JS | Consumable | Heavy | Deterministic |
| 6.36.74 | Validate headers stable for AI crawlers | Stable | Heavy | Deterministic |
| 6.36.75 | Validate token order consistent across crawls | Consistent | Medium | Deterministic |
| 6.36.76 | Validate DOM tree stable across repeated loads | Stable | Medium | Deterministic |
| 6.36.77 | Validate large components prefetched only when needed | Controlled | Medium | Deterministic |
| 6.36.78 | Validate no randomized elements (ads, popups) affect HTML | None | Medium | Deterministic |
| 6.36.79 | Validate fallback rendering available | Available | Medium | Deterministic |
| 6.36.80 | Validate AI‑sensitive strings not collapsed by minification | Preserved | Medium | Deterministic |
Caching Strategy — Client, CDN, Server, Smart Layers
| ID | Check | Passes when | Weight | Runs |
|---|
| 6.36.81 | Validate static assets cached long‑term (30+ days) | Long | Heavy | Deterministic |
| 6.36.82 | Validate HTML short‑cache or no‑cache where dynamic | Correct | Heavy | Deterministic |
| 6.36.83 | Validate versioned assets (hash filenames) | Versioned | Heavy | Deterministic |
| 6.36.84 | Validate cache‑key normalization | Normalized | Medium | Deterministic |
| 6.36.85 | Validate stale‑while‑revalidate logic | SWR | Medium | Deterministic |
| 6.36.86 | Validate CDN tiered caching tier used | Tiered | Medium | Deterministic |
| 6.36.87 | Validate cache busting only occurs when necessary | Efficient | Medium | Deterministic |
| 6.36.88 | Validate mobile browsers receive optimized cache behavior | Optimized | Medium | Deterministic |
| 6.36.89 | Validate private vs public cache separation correct | Correct | Medium | Deterministic |
| 6.36.90 | Validate caching for image/CDN transformations efficient | Efficient | Medium | Deterministic |
Layout Stability — Shift Prevention, Reservation, Safety
| ID | Check | Passes when | Weight | Runs |
|---|
| 6.36.91 | Validate all media elements have width/height or aspect-ratio | Reserved | Heavy | Deterministic |
| 6.36.92 | Validate no layout shifts during load | Stable | Heavy | Deterministic |
| 6.36.93 | Validate ads reserve space | Reserved | Heavy | Deterministic |
| 6.36.94 | Validate fonts do not cause FOIT/FOUT shift | Stable | Medium | Deterministic |
| 6.36.95 | Validate sticky elements not affecting CLS | Safe | Medium | Deterministic |
| 6.36.96 | Validate animations not triggering layout recalculation | Safe | Medium | Deterministic |
| 6.36.97 | Validate third‑party embeds sandboxed to avoid shifts | Sandboxed | Medium | Deterministic |
| 6.36.98 | Validate dynamic content loaded below fold | Safe | Medium | Deterministic |
| 6.36.99 | Validate user‑triggered shifts minimized | Minimal | Medium | Deterministic |
| 6.36.100 | Compute partial Performance score for Chunk 2 | Complete | Critical | Deterministic |
Network Resilience — Low-Bandwidth, High Latency, Fallbacks
| ID | Check | Passes when | Weight | Runs |
|---|
| 6.36.101 | Validate page loads under 3G Fast conditions | Loadable | Heavy | Deterministic |
| 6.36.102 | Validate critical content accessible <3s on slow networks | Accessible | Heavy | Deterministic |
| 6.36.103 | Validate reduced‑data mode supported | Supported | Heavy | Deterministic |
| 6.36.104 | Validate network timeouts handled gracefully | Graceful | Medium | Deterministic |
| 6.36.105 | Validate images served at lower quality on poor connections | Adaptive | Medium | Deterministic |
| 6.36.106 | Validate CSS loads even if fonts fail | Stable | Medium | Deterministic |
| 6.36.107 | Validate videos fallback to poster frame on slow networks | Fallback | Medium | Deterministic |
| 6.36.108 | Validate inline critical JS executes under constrained CPU | Lightweight | Medium | Deterministic |
| 6.36.109 | Validate CDN multi‑region redundancy | Redundant | Medium | Deterministic |
| 6.36.110 | Validate no single‑point performance bottlenecks | None | Medium | Deterministic |
Third-Party Scripts — Control, Minimization, Governance
| ID | Check | Passes when | Weight | Runs |
|---|
| 6.36.111 | Validate no blocking third‑party scripts | None | Critical | Deterministic |
| 6.36.112 | Validate tag managers do not delay render | Non‑blocking | Heavy | Deterministic |
| 6.36.113 | Validate analytics scripts loaded after interaction | Deferred | Heavy | Deterministic |
| 6.36.114 | Validate no redundant analytics scripts | Clean | Heavy | Deterministic |
| 6.36.115 | Validate third‑party domains preconnected | Preconnected | Medium | Deterministic |
| 6.36.116 | Validate ads loaded with priority: lazy | Lazy | Medium | Deterministic |
| 6.36.117 | Validate chat widgets not blocking LCP | Safe | Medium | Deterministic |
| 6.36.118 | Validate no open‑ended third‑party injections | Controlled | Medium | Deterministic |
| 6.36.119 | Validate sandboxing applied to third‑party iframes | Sandboxed | Medium | Deterministic |
| 6.36.120 | Validate no performance‑heavy tracking pixels | Minimal | Medium | Deterministic |
CSS Optimization — Delivery, Scope, Minification
| ID | Check | Passes when | Weight | Runs |
|---|
| 6.36.121 | Validate CSS minified | Minified | Heavy | Deterministic |
| 6.36.122 | Validate global CSS minimal and scoped | Scoped | Heavy | Deterministic |
| 6.36.123 | Validate critical CSS extracted | Extracted | Heavy | Deterministic |
| 6.36.124 | Validate CSS not duplicated in components | Clean | Medium | Deterministic |
| 6.36.125 | Validate unused CSS rules pruned | Pruned | Medium | Deterministic |
| 6.36.126 | Validate CSS variables used for consistency | Consistent | Medium | Deterministic |
| 6.36.127 | Validate @media queries optimized | Optimized | Medium | Deterministic |
| 6.36.128 | Validate no CSS imports blocking render | Non‑blocking | Medium | Deterministic |
| 6.36.129 | Validate CSS loaded with media="print" where needed | Correct | Medium | Deterministic |
| 6.36.130 | Validate stylesheets cached effectively | Cached | Medium | Deterministic |
JS Hydration — Memory Load, Cpu Load, Framework Integrity
| ID | Check | Passes when | Weight | Runs |
|---|
| 6.36.131 | Validate hydration cost measured and within limits | Controlled | Heavy | Deterministic |
| 6.36.132 | Validate hydration avoids blocking input | Non‑blocking | Heavy | Deterministic |
| 6.36.133 | Validate hydration does not delay LCP | Safe | Heavy | Deterministic |
| 6.36.134 | Validate hydration split into chunks | Chunked | Medium | Deterministic |
| 6.36.135 | Validate JS framework overhead minimized | Minimized | Medium | Deterministic |
| 6.36.136 | Validate hydration fallback exists | Present | Medium | Deterministic |
| 6.36.137 | Validate DOM not rebuilt unnecessarily | Efficient | Medium | Deterministic |
| 6.36.138 | Validate hydration artifacts not visible to user | Clean | Medium | Deterministic |
| 6.36.139 | Validate memory consumption not extreme | Light | Medium | Deterministic |
| 6.36.140 | Validate hydration output matches server content | Matched | Medium | Deterministic |
Performance Logging — Lab Data, Field Data, Rum
| ID | Check | Passes when | Weight | Runs |
|---|
| 6.36.141 | Validate field data (CrUX) healthy | Healthy | Heavy | Deterministic |
| 6.36.142 | Validate lab test stable across devices | Stable | Heavy | Deterministic |
| 6.36.143 | Validate performance budgets defined | Defined | Heavy | Deterministic |
| 6.36.144 | Validate performance monitored continuously | Monitored | Medium | Deterministic |
| 6.36.145 | Validate error rate low | Low | Medium | Deterministic |
| 6.36.146 | Validate no regressions in recent deployments | None | Medium | Deterministic |
| 6.36.147 | Validate LCP/INP/CLS trends improving | Improving | Medium | Deterministic |
| 6.36.148 | Validate RUM (user metrics) collected appropriately | Collected | Medium | Deterministic |
| 6.36.149 | Validate discrepancies lab vs field investigated | Investigated | Medium | Deterministic |
| 6.36.150 | Compute partial Performance score for Chunk 3 | Complete | Critical | Deterministic |
Advanced Network Optimization — Prefetch, Preload, Priority Headers
| ID | Check | Passes when | Weight | Runs |
|---|
| 6.36.151 | Validate priority hints used (priority=high/low) | Correct | Heavy | Deterministic |
| 6.36.152 | Validate prefetch used for navigation targets | Present | Heavy | Deterministic |
| 6.36.153 | Validate prerender used for predictable next pages | Used | Heavy | Deterministic |
| 6.36.154 | Validate preload applied only to critical resources | Restricted | Medium | Deterministic |
| 6.36.155 | Validate preconnect not overused | Balanced | Medium | Deterministic |
| 6.36.156 | Validate DNS-prefetch used correctly | Correct | Medium | Deterministic |
| 6.36.157 | Validate HTTP/2 multiplexing benefits realized | Effective | Medium | Deterministic |
| 6.36.158 | Validate server supports 0-RTT (if relevant) | Supported | Medium | Deterministic |
| 6.36.159 | Validate no redundant preloads | None | Medium | Deterministic |
| 6.36.160 | Validate intelligent request scheduling | Optimized | Medium | Deterministic |
Memory & Cpu Optimization — Runtime Safety, JS Weight Mgmt
| ID | Check | Passes when | Weight | Runs |
|---|
| 6.36.161 | Validate CPU usage during page load low | Low | Critical | Deterministic |
| 6.36.162 | Validate JS memory leaks absent | None | Heavy | Deterministic |
| 6.36.163 | Validate garbage collection spikes controlled | Controlled | Heavy | Deterministic |
| 6.36.164 | Validate no runaway intervals/timeouts | Safe | Heavy | Deterministic |
| 6.36.165 | Validate JS profiling reviewed | Reviewed | Medium | Deterministic |
| 6.36.166 | Validate expensive loops removed or optimized | Optimized | Medium | Deterministic |
| 6.36.167 | Validate event listeners not duplicated | Clean | Medium | Deterministic |
| 6.36.168 | Validate DOM nodes not excessively created | Efficient | Medium | Deterministic |
| 6.36.169 | Validate requestIdleCallback used appropriately | Appropriate | Medium | Deterministic |
| 6.36.170 | Validate animations GPU-accelerated where possible | Accelerated | Medium | Deterministic |
Advanced Media Optimization — Avif, Responsive Video, Image Cdns
| ID | Check | Passes when | Weight | Runs |
|---|
| 6.36.171 | Validate AVIF fallback chain correct | Correct | Heavy | Deterministic |
| 6.36.172 | Validate responsive video sources (multiple bitrates) | Responsive | Heavy | Deterministic |
| 6.36.173 | Validate adaptive bitrate streaming working | Adaptive | Heavy | Deterministic |
| 6.36.174 | Validate autoplay muted policy respected | Correct | Medium | Deterministic |
| 6.36.175 | Validate no uncompressed TIFF/BMP images | None | Medium | Deterministic |
| 6.36.176 | Validate SVGs optimized (no unnecessary markup) | Optimized | Medium | Deterministic |
| 6.36.177 | Validate image transformations cached | Cached | Medium | Deterministic |
| 6.36.178 | Validate video poster size <50KB | Lightweight | Medium | Deterministic |
| 6.36.179 | Validate image loading priority correct | Correct | Medium | Deterministic |
| 6.36.180 | Validate no duplicated responsive image sources | Clean | Medium | Deterministic |
Holistic Performance Validation — Systemic, Cross-Checked
| ID | Check | Passes when | Weight | Runs |
|---|
| 6.36.181 | Validate performance signals consistent across test runs | Consistent | Critical | Deterministic |
| 6.36.182 | Validate rendering stable with third-party scripts enabled | Stable | Heavy | Deterministic |
| 6.36.183 | Validate network waterfall free of hidden bottlenecks | Clear | Heavy | Deterministic |
| 6.36.184 | Validate JS execution timeline balanced | Balanced | Heavy | Deterministic |
| 6.36.185 | Validate performance not regressing over deployments | Stable | Medium | Deterministic |
| 6.36.186 | Validate layout stable across screen sizes | Stable | Medium | Deterministic |
| 6.36.187 | Validate animations frame-stable (>50fps) | Stable | Medium | Deterministic |
| 6.36.188 | Validate scroll performance smooth | Smooth | Medium | Deterministic |
| 6.36.189 | Validate virtualized lists implemented correctly | Correct | Medium | Deterministic |
| 6.36.190 | Validate field data improvements over time | Improving | Medium | Deterministic |
Final Performance Scoring — Aggregation, AI-Readiness, Index Impact
| ID | Check | Passes when | Weight | Runs |
|---|
| 6.36.191 | Validate no severe performance blockers remain | None | Critical | Deterministic |
| 6.36.192 | Validate AI agents can consume the page efficiently | Efficient | Critical | Deterministic |
| 6.36.193 | Validate all Core Web Vitals in “Good” range | Good | Heavy | Deterministic |
| 6.36.194 | Validate JS, CSS, and media weights meet performance budgets | Within budget | Heavy | Deterministic |
| 6.36.195 | Validate page remains stable under stress tests | Stable | Heavy | Deterministic |
| 6.36.196 | Validate all fallback systems behave correctly | Correct | Medium | Deterministic |
| 6.36.197 | Validate cross-device performance consistent | Consistent | Medium | Deterministic |
| 6.36.198 | Validate no client-side exceptions affecting performance | None | Medium | Deterministic |
| 6.36.199 | Identify remaining performance gaps | Identified | Medium | Deterministic |
| 6.36.200 | Compute full PERFORMANCE composite score | Finalized | Critical | Deterministic |
← 6.35 Technical SEO Foundations / Crawlability / Indexability / Sitemaps / Robots / AI-Crawl Signals6.37 On-Page SEO / Headings / Keywords / Entity Coverage / AI-Semantic Signaling →
Run these checks on your site
A Deep Audit scores every check here that applies to your page, then an AI pass of up to 150 checks. Included on Pro and Ultra, or $9 for one audit.
See plans
Machine-readable: catalog totals and the
full catalog as JSON (IDs, section, weight, status).