Start with the route contract
List every public URL, its indexability, locale, canonical target, expected status, and redirect predecessor. Generate the sitemap and automated checks from that source when possible. A spreadsheet that drifts away from the application is not a route contract.
- One preferred host, protocol, and trailing-slash policy.
- Permanent redirects in one hop for moved public URLs.
- Real 404 responses for unknown URLs.
- No draft, utility, preview, parameter, or redirect URL in the sitemap.
Inspect the response before opening a browser
Fetch the production response and verify status, redirect chain, robots headers, canonical, language, title, description, H1, internal links, and meaningful body copy. Important content should not depend on a client effect or interaction before it exists.
Make canonical and locale signals agree
Each indexable page should identify itself as canonical unless it is intentionally consolidated. The canonical URL, sitemap, internal links, Open Graph URL, redirects, structured data, and server behavior should point to the same public URL.
Use separate locale URLs and reciprocal hreflang only for complete equivalents. Do not redirect visitors based only on IP or browser language.
Test metadata as a set, not page by page
Scan every indexable HTML file for a unique title, description, H1, canonical, social title, social description, and valid social image. Parse structured data and compare sitemap membership with the route inventory. Automation catches the drift that manual tab inspection misses.
Trace the LCP path and interaction cost
Identify the actual LCP element at mobile and desktop widths. Check its intrinsic size, source selection, priority, compression, and whether CSS, JavaScript, fonts, or consent tooling delays it. Then inspect long tasks, hydration, animation libraries, and third parties that compete with interaction readiness.
- Record lab conditions and report variance, not one flattering score.
- Use field data for INP only when enough real traffic exists.
- Check CLS during load, consent changes, font changes, and interaction.
- Verify caching separately for HTML, hashed assets, and media.
Treat accessibility defects as release defects
Semantic headings, link meaning, form labels, keyboard operation, focus visibility, error announcements, contrast, reduced motion, and mobile navigation affect whether people can use the page and whether its structure is understandable. Automated checks are a floor, not full coverage.
Verify production, then monitor what cannot be known in the lab
After release, crawl the production host, verify redirects and important headers, test the real contact path, and inspect Search Console for ownership, coverage, submitted sitemap status, and migration behavior. Analytics should verify conversion actions only after consent where required.
Document what was measured, when, where, and with which configuration. Never present a lab target as a field result or imply that structured data guarantees a rich result.