Technical SEO Audit Checklist 2026: 60+ Items, Real Threshold Values
Why Does 2026 Need Its Own Checklist?
Google made INP (Interaction to Next Paint) an official Core Web Vitals metric in March 2024. In May 2025, it expanded its "site reputation abuse" and "scaled content abuse" policies — and the May 2026 update widened their scope once more. These changes invalidate large portions of any technical SEO checklist written before 2024. Every item below was written from scratch with these three shifts as the foundation.
Section 1: Core Web Vitals — 2026 Threshold Values
Google's official thresholds have been stable since March 2024, yet many sites still reference outdated LCP targets. The table below shows the current values:
| Metric | Good (Pass) | Needs Improvement | Poor | Measurement Method |
|---|---|---|---|---|
| LCP (Largest Contentful Paint) | < 2.5 s | 2.5 – 4.0 s | > 4.0 s | 75th percentile, field data (CrUX) |
| CLS (Cumulative Layout Shift) | < 0.1 | 0.1 – 0.25 | > 0.25 | 75th percentile, field data (CrUX) |
| INP (Interaction to Next Paint) | < 200 ms | 200 – 500 ms | > 500 ms | 75th percentile, field data (CrUX) |
Critical note: The Core Web Vitals report in Search Console evaluates URL groups at the 75th percentile. Lab data (Lighthouse) is not what counts — field data (real-user measurement via CrUX) is what Google uses for ranking. A URL that passes in Lighthouse but fails in the field still incurs a penalty.
Core Web Vitals Checklist Items
- CrUX API or Search Console → Core Web Vitals report: Check at the URL group level, not individual URLs. A single "poor" URL group can affect the entire origin's assessment.
- Identify your LCP element: Chrome DevTools → Performance panel → find the LCP marker. It's usually a hero image or H1. SVGs and CSS background images do not trigger LCP.
- Add fetchpriority="high" to the LCP image: Without
<img fetchpriority="high">, the browser assigns low priority to the image. In Next.js, thepriorityprop on theImagecomponent is easy to forget. - Set explicit dimensions to fix CLS: All
<img>and<video>tags must havewidthandheightattributes. CSSaspect-ratiois an equally valid solution. - Identify long tasks for INP: Chrome DevTools → Performance profile → look for "Long Tasks" markers (>50 ms). JavaScript execution time is the primary driver of poor INP.
- Break up heavy event handlers: If
click,keydown, orpointerdownhandlers run more than 50 ms of work, split them usingscheduler.yield()orsetTimeout(0). - Font loading strategy: Use
font-display: swaporoptional. FOUT (flash of unstyled text) is acceptable; FOIT (invisible text during load) triggers CLS. - Audit third-party scripts: Google Tag Manager, chat widgets, and ad scripts can add 100–300 ms to INP. Disable each script in turn and measure the delta.
Section 2: Google May 2026 Spam Policy Changes
The May 2026 spam update reinforced three policies: scaled content abuse, site reputation abuse, and expired domain abuse. Violations of these policies can now trigger site-wide penalties, not just page-level demotions.
Spam Policy Checklist Items
- Scaled content abuse test: If your site has 50+ highly similar pages (templated by city or product name), verify that each page contains at least 3 unique data points. "Unique" means information that exists only on that page — measurable, specific, not recycled.
- Site reputation abuse check: If your site publishes sponsored or third-party content outside editorial oversight, those pages should be
noindexor carryrel="sponsored". Google treats such content as an attempt to "launder" the host site's authority. - Expired domain abuse risk: If you acquired an aged domain and built off-topic content on it, check the domain's pre-acquisition history in Search Console. Sites exploiting inherited backlink profiles for unrelated content are being targeted.
- AI-generated content policy test: For bulk-produced content, confirm each page provides genuine information gain: original data, first-hand experience, or unique analysis not found elsewhere. Reformatted information alone is insufficient.
Section 3: JavaScript SEO — Render Budget and SPA Pitfalls
JavaScript-rendered content enters Google's "render queue" before indexing — a delay that can range from hours to days due to Google's two-wave crawling architecture. The items below help you measure and reduce this risk.
JavaScript SEO Checklist Items
- Measure render queue lag: GSC → URL Inspection → compare "Google-indexed" vs what you see in your browser. If critical content (H1, meta description, internal links) only appears after JS execution, you have an indexing delay.
- Prioritize SSR or SSG: For Next.js, Nuxt, or SvelteKit: render dynamically loaded content (product descriptions, article bodies) server-side using Server Components or
getStaticProps. - SPA history.pushState audit: When Google crawls a new URL in your SPA, it must receive the fully rendered page. Verify that
<title>and meta tags update correctly on every client-side route change. - Crawl budget calculation: If your site has more than 10,000 URLs, check the Crawl Stats report in GSC. If Googlebot visits every 2–3 days, new content is sitting in a queue.
- Remove junk URLs from crawl budget: Filter combinations (
?color=red&size=M), session parameters, and pagination URLs should be managed via robots.txt ornoindex. Each unnecessary crawled URL consumes budget that should go to important pages. - Lazy-loaded content visibility: Content loaded via
Intersection Observerbelow the fold may not be seen by Google's first render pass. Use the Mobile-Friendly Test to check what Google sees without browser extensions. - JSON-LD script placement: Put
<script type="application/ld+json">blocks in<head>, not<body>. Google parses body JSON-LD too, but head placement gets processed earlier.
Section 4: Internal Linking — Topical Authority Silo Architecture
Internal linking is an architectural decision, not a formatting rule. Following the 2026 updates, Google's topical authority assessment has become more pronounced: tightly interconnected content clusters outrank isolated articles on the same keyword.
Internal Linking Checklist Items
- Build a silo map: For each main topic, designate one "pillar page" and at least 5 "cluster pages" that link to it. Links must be bidirectional: Pillar → Cluster and Cluster → Pillar.
- Anchor text diversity: Don't always use the same anchor text for the same target URL. Target roughly: exact match (30%), partial match (40%), branded/generic (30%).
- Find orphan pages: Use Screaming Frog or Ahrefs to identify URLs that receive no internal links. Orphan pages can be indexed but are at a significant ranking disadvantage.
- Links per page limit: Stay under ~100 internal links per page (Google's practical guidance). Beyond that, PageRank dilutes and every link weakens.
- Fix broken internal links: Internal links returning 404 harm both UX and crawl budget. Add a monthly crawl check to your maintenance routine.
For a deep dive on INP optimization, see our 50-page A/B test data on Core Web Vitals INP. To strengthen entity signals through structured data, read the Schema.org @id hub technique guide.
Section 5: Structured Data — The 5 Most Critical Schema Types
As of 2026, Google generates rich results from dozens of schema types. But five are universally applicable and should be the priority for every site:
Structured Data Checklist Items
-
Article (or BlogPosting): Required for blog posts and news content. Minimum fields:
headline(under 60 characters)datePublished+dateModified(ISO 8601)author→PersonorOrganizationreferenced by @idimage→ minimum 1200px wide, one of 1:1 / 4:3 / 16:9 ratios
-
FAQPage: For Q&A content. Each
Question+Answerpair must be visibly present on the page — hidden accordions are invalid. Google typically shows 3–5 questions; more are not rendered in the SERP. -
HowTo: For step-by-step instruction content. Each
steprequiresname+text. Include total step count and estimated time (totalTime). -
Product: For e-commerce and SaaS pricing pages. Without
price,priceCurrency, andavailabilityinsideoffers, no rich result triggers. AddingReview+AggregateRatingsurfaces star ratings in the SERP. -
BreadcrumbList: Applicable to all pages; shows breadcrumb navigation in the SERP instead of the raw URL. Particularly effective for e-commerce and large content sites. The
ListItemorder must match the URL hierarchy. - Rich Result Test after every schema change: Run
search.google.com/test/rich-resultsafter any new schema deployment. Valid syntax with a missing required field still blocks the rich result. - Schema conflict audit: If a page uses multiple schema types, consolidate them inside a single
@grapharray. Separate JSON-LD blocks work technically but reduce Google's entity-linking efficiency.
Section 6: Crawlability and Indexation
- XML sitemap freshness: Your sitemap should reflect new content within 24 hours of publication. If you use a static sitemap, add a sitemap regeneration step to your CI/CD pipeline.
- robots.txt rule precedence: If you have multiple
User-agentblocks, test rule priority. Google applies the most specific matching block. Conflicting rules cause unexpected crawling behavior. - Canonical tag consistency: Every page must self-reference its canonical URL (
<link rel="canonical">). If page A canonicalizes to B and B canonicalizes to A, both pages are stuck in a loop and neither gets indexed properly. - Hreflang accuracy (multilingual sites): Every hreflang pair must be reciprocal (A→B and B→A). One-directional hreflang is ignored by Google.
x-defaultmust be present on the default-language page. - Soft 404 detection: Pages that return HTTP 200 but display "product not found" or empty content are soft 404s. Google flags these in GSC → Coverage report.
- Redirect chains: Each extra hop in a 301 chain loses roughly 15% of link equity (industry estimate). Collapse 3+ hop chains into a single redirect.
- HTTPS enforcement: HTTP → HTTPS redirects must be 301, not 302. Mixed content (HTTP resources on an HTTPS page) is both a security risk and a ranking issue.
Section 7: On-Page Technical Checks
- Title tag length: 50–60 characters. Longer titles are truncated in the SERP; truncated titles reduce CTR. Use the Portent Title Tag Tool for pixel-accurate measurement.
- Meta description length: 120–158 characters. Each page needs a unique meta description; auto-generated identical descriptions can signal duplicate content.
- Single H1: Use exactly one H1 per page. Multiple or missing H1s are not a technical error per se, but they weaken the topical focus signal.
- Image alt text: All content images require meaningful alt text. Mark decorative images with
alt=""(correct behavior for screen readers and Google Images). - Open Graph and Twitter Card tags:
og:title,og:description,og:image(min 1200×630px) must be present on every page. A missing OG image means low-quality social sharing cards and reduced click-through rates.
Quick Reference: Audit Priority Order
| Priority | Area | First Tool to Check | Expected Impact Timeline |
|---|---|---|---|
| P0 (Critical) | Core Web Vitals – INP >500ms | CrUX Dashboard / Search Console | 2–4 weeks |
| P0 (Critical) | Suspected spam policy violation | GSC → Manual Actions | Immediately |
| P1 (Important) | JS rendering issues | GSC → URL Inspection | 1–2 weeks |
| P1 (Important) | Broken internal links / Orphan pages | Screaming Frog | 2–3 weeks |
| P2 (Planned) | Structured data expansion | Rich Result Test | 4–8 weeks |
| P2 (Planned) | Silo internal linking architecture | Site map + analytics | 4–12 weeks |
| P3 (Background) | Sitemap / robots.txt maintenance | Search Console Crawl | Ongoing |
Conclusion: How to Use This Checklist
Don't try to implement everything at once. Finish P0 items in the first week; pull P1s into the next sprint; spread P2 and P3 across a quarterly plan. For each item, define a measurement metric and a "done" criterion — something concrete like "LCP drops below 2.5 seconds." Vague statements like "we improved it" make audits meaningless.
Technical SEO is not a one-time project. Every major Google update, every new feature launch, and every content expansion requires a fresh pass through this list.