Technical SEO covers the infrastructure optimizations search engines need in order to crawl, index and rank your site effectively. However good your content and backlink strategies are, technical problems keep your ranking potential capped. In this guide we will work through the current technical SEO checklist for 2026 in detail.
Related guides: Search engines and SEO guide · Core Web Vitals 2026 · Best WordPress SEO plugins · Website optimization · Digital marketing
Core Web Vitals Optimization
Core Web Vitals are the three core metrics Google uses to measure user experience. As of 2026, INP (Interaction to Next Paint) has fully replaced FID. These metrics directly affect both mobile and desktop rankings.
| Metric | Measures | Good | Needs improvement | Poor |
|---|---|---|---|---|
| LCP (Largest Contentful Paint) | Load time of the largest content element | ≤ 2.5s | 2.5s – 4s | > 4s |
| INP (Interaction to Next Paint) | Response time to user interaction | ≤ 200ms | 200ms – 500ms | > 500ms |
| CLS (Cumulative Layout Shift) | Visual instability score | ≤ 0.1 | 0.1 – 0.25 | > 0.25 |
LCP Optimization
- Use for the hero image
- Serve images in WebP/AVIF — 30-50% smaller than JPEG
- Bring server response time (TTFB) below 200ms — use a CDN
- Minimize render-blocking CSS and JS — inline the critical CSS
- Preload font files and use font-display: swap
<!-- HTML head section for LCP optimization -->
<head>
<!-- Preload critical resources -->
<link rel="preload" as="image" href="/hero.webp" fetchpriority="high">
<link rel="preload" as="font" href="/fonts/inter.woff2"
type="font/woff2" crossorigin>
<!-- Critical CSS inline -->
<style>
.hero { width: 100%; height: auto; aspect-ratio: 16/9; }
body { font-family: 'Inter', sans-serif; font-display: swap; }
</style>
<!-- Defer non-critical CSS -->
<link rel="stylesheet" href="/styles.css" media="print" onload="this.media='all'">
</head>
<!-- Hero image — prioritized with fetchpriority -->
<img src="/hero.webp" alt="..." fetchpriority="high"
width="1200" height="675" decoding="async">INP Optimization
INP measures the response time of every interaction on the page (clicks, taps, keyboard input). Long JavaScript tasks hurt INP.
- Break up long JavaScript tasks by yielding — use requestIdleCallback or scheduler.yield()
- Move heavy computation into Web Workers
- Minimize DOM manipulation inside event handlers
- Load third-party scripts with defer/async
- Prevent unnecessary re-renders (React: useMemo, memo)
CLS Optimization
- Set width and height, or aspect-ratio, on every image
- Use fixed-size placeholders for ad slots
- Prefer font-display: optional so no layout shift occurs while fonts load
- Reserve space before dynamic content (banners, popups) is inserted
- Use CSS transform animations — avoid changing top/left/width
Schema Markup (Structured Data)
Schema.org structured data gives search engines extra information about your content. That information can appear in search results as rich snippets (stars, prices, FAQs, breadcrumbs and so on) and can raise click-through rate (CTR) considerably.
<!-- Organization Schema -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "KEYDAL",
"url": "https://keydal.com",
"logo": "https://keydal.com/logo.png",
"sameAs": [
"https://twitter.com/keydal",
"https://github.com/keydal"
],
"contactPoint": {
"@type": "ContactPoint",
"telephone": "+1-XXX-XXX-XXXX",
"contactType": "customer service",
"availableLanguage": "English"
}
}
</script>
<!-- Article Schema (for blog posts) -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Technical SEO Checklist 2026",
"author": { "@type": "Organization", "name": "KEYDAL" },
"datePublished": "2026-04-07",
"dateModified": "2026-04-07",
"image": "https://keydal.com/blog/technical-seo-og.jpg",
"publisher": {
"@type": "Organization",
"name": "KEYDAL",
"logo": { "@type": "ImageObject", "url": "https://keydal.com/logo.png" }
}
}
</script><!-- FAQ Schema — for FAQ pages -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What are Core Web Vitals?",
"acceptedAnswer": {
"@type": "Answer",
"text": "They are the performance indicators made up of the LCP, INP and CLS metrics Google uses to measure user experience."
}
}
]
}
</script>XML Sitemap Optimization
An XML sitemap tells search engines about all the pages on your site and when those pages were last updated. It speeds up indexing in particular on large sites and when new pages are added.
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://keydal.com/</loc>
<lastmod>2026-04-07</lastmod>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://keydal.com/blog</loc>
<lastmod>2026-04-07</lastmod>
<changefreq>daily</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://keydal.com/hosting/vps</loc>
<lastmod>2026-03-15</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
</urlset>- A sitemap should not exceed 50MB or 50,000 URLs — use a sitemap index on large sites
- Include only canonical pages that return a 200 status code
- Do not include noindex pages, redirects (3xx) or error pages
- Match the lastmod date to the real update date — never use a fake date
- State the sitemap location in your robots.txt file
robots.txt Configuration
robots.txt tells search engine bots which pages they may crawl and which to skip. Correct configuration matters for using crawl budget efficiently.
# robots.txt — https://yoursite.com/robots.txt
User-agent: *
Allow: /
Disallow: /api/
Disallow: /admin/
Disallow: /search?
Disallow: /tmp/
Disallow: /*.json$
# Bot-specific rules
User-agent: GPTBot
Disallow: /
User-agent: CCBot
Disallow: /
# Sitemap location
Sitemap: https://yoursite.com/sitemap.xmlCanonical URL Strategy
The canonical tag tells search engines which URL is the "real" page when several URLs hold the same or similar content. It is the most effective way to prevent duplicate content problems.
<!-- Every page should have a canonical tag -->
<link rel="canonical" href="https://keydal.com/blog/technical-seo-checklist-2026">
<!-- Common duplicate content scenarios and their fixes -->
<!-- 1. HTTP vs HTTPS — 301 redirect + canonical -->
<!-- http://keydal.com → 301 → https://keydal.com -->
<!-- 2. www vs non-www — pick one and 301 to it -->
<!-- www.keydal.com → 301 → keydal.com -->
<!-- 3. Parameter variations -->
<!-- /products?sort=price → canonical: /products -->
<!-- 4. Pagination -->
<!-- /blog?page=2 → canonical: /blog?page=2 (each page has its own canonical) -->- Every page must carry a self-referencing canonical tag
- The canonical URL must always be a full (absolute) URL — never a relative path
- Use HTTPS and your preferred www/non-www version
- Do not use canonical and noindex together on the same page
- Make sure hreflang and canonical are consistent with each other
Mobile-First Indexing
Since 2024 Google has indexed every site based solely on its mobile version. A site that looks perfect on desktop but has problems on mobile loses ground in the rankings.
- Use responsive design — prefer a single URL over a separate mobile site (m.yoursite.com)
- The viewport meta tag is mandatory:
- Touch targets (buttons, links) should be at least 48x48px with 8px of space between them
- Content hidden on mobile is not indexed — do not hide important content with CSS display:none
- Text size should be at least 16px — the user should never need to zoom
- Popups and interstitials should not cover more than 50% of the page on mobile
<!-- Mandatory viewport meta -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Example of mobile-friendly styling -->
<style>
/* Mobile-first design */
.container { padding: 1rem; max-width: 100%; }
.nav-link { padding: 12px 16px; min-height: 48px; }
.text-body { font-size: 16px; line-height: 1.6; }
/* Tablet and up */
@media (min-width: 768px) {
.container { max-width: 720px; margin: 0 auto; }
}
/* Desktop */
@media (min-width: 1024px) {
.container { max-width: 960px; }
}
</style>Page Speed Optimization
Page speed directly affects both user experience and rankings. According to Google's research, bounce rate rises by 53% on mobile pages that take longer than 3 seconds to load.
| Optimization | Expected improvement | Difficulty |
|---|---|---|
| Using a CDN | TTFB down 40-60% | Easy |
| Image optimization (WebP/AVIF) | Page weight down 30-50% | Easy |
| Gzip/Brotli compression | Transfer size down 70% | Easy |
| CSS/JS minification | File size down 20-30% | Easy |
| Lazy loading (images) | First load 20-40% faster | Easy |
| Critical CSS inline | FCP 30-50% faster | Medium |
| Code splitting | JS size down 40-60% | Medium |
| Service Worker cache | Instant load on repeat visits | Hard |
# Nginx — Brotli and Gzip compression
gzip on;
gzip_vary on;
gzip_min_length 1024;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml image/svg+xml;
# Brotli (requires the ngx_brotli module)
brotli on;
brotli_comp_level 6;
brotli_types text/plain text/css application/json application/javascript text/xml application/xml image/svg+xml;
# Cache headers
location ~* \.(js|css|png|jpg|jpeg|webp|avif|svg|woff2)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}Crawl Budget Management
Crawl budget is the crawling capacity Googlebot allocates to your site. It matters especially on large sites (1000+ pages). By excluding unnecessary pages from crawling, you can direct that budget at the pages that matter.
- Block parameter variations through robots.txt or Search Console
- Use noindex or canonical for faceted navigation (filter pages)
- Prefer pagination over infinite scroll, and give every page its own URL
- Keep the sitemap current — remove deleted pages immediately
- Optimize your internal linking structure — important pages should be at most 3 clicks away
- Keep HTTP status codes clean — fix 404s and 301 chains
- Keep server response time fast — a slow server lowers the crawl rate
Technical SEO Tools
| Tool | Use case | Free |
|---|---|---|
| Google Search Console | Index status, performance, error detection | Yes |
| PageSpeed Insights | Core Web Vitals and speed analysis | Yes |
| Google Rich Results Test | Schema markup validation | Yes |
| Screaming Frog | Site crawling and technical audit | First 500 URLs |
| Ahrefs Site Audit | Comprehensive technical SEO audit | No |
| web.dev/measure | Lighthouse performance testing | Yes |
| Schema.org Validator | JSON-LD validation | Yes |
Checklist Summary
| Check | Priority | Status |
|---|---|---|
| HTTPS active and all pages redirected | Critical | ☐ |
| Core Web Vitals in the "good" range | Critical | ☐ |
| Mobile-friendly and responsive | Critical | ☐ |
| XML sitemap current and submitted to Search Console | High | ☐ |
| robots.txt correctly configured | High | ☐ |
| Canonical tag present on every page | High | ☐ |
| Schema markup (Organization, Article, FAQ) | High | ☐ |
| Image optimization (WebP, lazy load, alt text) | High | ☐ |
| Brotli/Gzip compression enabled | Medium | ☐ |
| Internal linking optimized | Medium | ☐ |
| 404s and redirect chains cleaned up | Medium | ☐ |
| hreflang (if the site is multilingual) | Medium | ☐ |
Search Engine Optimization and Content Strategy
Search engine optimization (SEO) is a three-legged discipline: technical SEO (page speed / Core Web Vitals, indexability, mobile compatibility, schema markup), content SEO (keyword research, content matched to user intent, semantic enrichment, internal linking) and off-page SEO (earning quality backlinks, brand authority, social signals). Google's E-E-A-T criteria (Experience, Expertise, Authoritativeness, Trustworthiness) are decisive above all on YMYL (Your Money Your Life) pages. Winning organic traffic requires SERP analysis, competitor content review, building keyword clusters and updating content regularly. Google Search Console covers indexing status, Lighthouse covers performance, and Ahrefs/SEMrush cover competitor analysis.