| Network and delivery |
DNS, TLS, HTTP/2 and HTTP/3, CDN, compression, response headers |
Time to first byte, TLS negotiation time, edge cache hit rate, compressed size against real size |
| Server and PHP |
PHP version, OPcache, memory limits, worker processes, cron |
Page generation time, memory used per request, scheduled tasks that never run |
| Database |
Queries per page, indexes, autoloaded options, revisions, transients |
Query count, slowest queries, options table size, total time spent in the database |
| Every request on the page |
All loaded files: CSS, JavaScript, fonts, images, iframes, third party tags |
How many requests, from which domains, how many bytes each, how long they block rendering, which can be deferred or removed |
| Rendering |
Load order, critical CSS, fonts, the main image, elements that shift |
LCP, INP, CLS, total blocking time, on mobile and desktop, separately |
| Document structure |
Heading hierarchy, semantic landmarks, alt attributes, form labels, focus order |
Accessibility score, contrast errors, elements unreachable by keyboard, problems found by hand |
| Signals for Google |
Title, description, canonical, robots, structured data, internal links, sitemap |
What is indexed against what should be, orphan pages, depth from the home page, schema validation errors |
| Security |
Response headers, file permissions, accounts, plugin versions, entry points |
Missing or misconfigured headers, known vulnerabilities, unexpectedly modified files, access attempts |
| Content and media |
Every image, video, PDF and uploaded file |
Real size against displayed size, format, compression, whether dimensions are declared, whether lazy loading is applied correctly |