On-Page SEO Checklist 2026: 40 Items We Run Before Every Launch
Your site ships at 4 PM. The design is flawless, the build is clean, the client is thrilled. Then at 9 PM on Friday, organic traffic drops 40% because someone forgot to set a canonical tag on the blog index. We've launched over a hundred headless sites -- Next.js, Astro, Nuxt -- and we've been burned enough times to know: polished code and beautiful design mean nothing if your on-page SEO has one quiet gap. We've watched six months of client SEO equity vanish because redirects from the old CMS never got mapped. We've seen a single missing alt attribute kill featured-snippet eligibility for an entire product line. So before anything goes live, we run the same 40-item checklist. Every single time. Here's the exact list -- and the three items most agencies still skip.
This isn't a theoretical list pulled from SEO blogs. It's the actual checklist we use at Social Animal. Forty items, organized by category, battle-tested across real launches. Some of these are obvious. Some of them are the things most agencies don't even think about until it's too late.
Table of Contents
- Title Tags and Meta Data
- Heading Structure
- Content and Keyword Optimization
- URL Structure
- Internal Linking
- Canonical Tags and Duplicate Content
- Redirects
- Schema and Structured Data
- Core Web Vitals and Performance
- Internationalization and Hreflang
- Images and Media
- Technical Foundations
- What Most Agencies Miss
- The Full 40-Item Checklist Table
- FAQ

Title Tags and Meta Data
Let's start where Google starts -- with the stuff that shows up in search results.
1. Unique Title Tags on Every Page
Every page needs a unique title tag. Sounds obvious, right? You'd be shocked how often headless CMS setups ship with duplicate titles because the <title> element is hardcoded in the layout component instead of being dynamically pulled from the CMS.
In Next.js 15 (App Router), this looks like:
// app/blog/[slug]/page.tsx
export async function generateMetadata({ params }) {
const post = await getPost(params.slug);
return {
title: post.seoTitle || `${post.title} | Your Brand`,
description: post.seoDescription || post.excerpt,
};
}
Keep titles between 50-60 characters. Google truncates at around 580 pixels wide, which roughly corresponds to 60 characters depending on letter width.
2. Primary Keyword Near the Front of Title Tags
This still matters in 2026. Google's own documentation still emphasizes the importance of the title element for understanding page content. Front-load your primary keyword when it reads naturally.
3. Meta Descriptions on Every Page
Google rewrites meta descriptions about 63% of the time according to Ahrefs' 2025 study, but that doesn't mean you should skip them. The other 37% of the time, your description is what users see. Write them like ad copy -- 140-155 characters, include a call-to-action, mention a benefit.
4. Open Graph and Twitter Card Meta Tags
Social sharing isn't technically an SEO ranking factor, but it drives traffic that generates signals that are. Every page needs og:title, og:description, og:image, and og:url. For Twitter/X, include twitter:card set to summary_large_image.
5. No Duplicate Meta Descriptions Across Pages
Run a crawl with Screaming Frog or Sitebulb before launch. If two pages share a meta description, fix it. This is especially common when CMS editors copy pages and forget to update the metadata.
Heading Structure
6. Exactly One H1 Per Page
One H1. Not zero, not three. One. Google's John Mueller has said multiple H1s aren't a problem, but in practice, a clear single H1 that matches search intent gives you better results. We've tested this repeatedly.
7. H1 Contains Primary Keyword
Your H1 should include the primary keyword you're targeting for that page. It doesn't need to be an exact match -- semantic relevance is fine -- but it should be clear what the page is about.
8. Logical Heading Hierarchy (H1 → H2 → H3)
Don't jump from H1 to H4. Don't use headings just because they look nice. Screen readers and search engines both use heading hierarchy to understand content structure. In headless builds, this often gets broken when designers use heading tags for visual sizing. Use CSS for styling, HTML for semantics.
9. H2s Address Related Subtopics and Long-Tail Queries
Your H2s are free real estate for related keywords. Look at the "People Also Ask" box and the related searches for your target query. Work those into your H2 structure naturally.
Content and Keyword Optimization
10. Primary Keyword in First 100 Words
Get to the point. Mention what the page is about early. This isn't keyword stuffing -- it's clarity.
11. Content Matches Search Intent
This is the single most important item on this list. If someone searches "on-page SEO checklist" and your page is a 300-word sales pitch, you're not ranking. Period. Check what's currently ranking for your target keywords and match the content type, format, and depth.
12. Minimum Viable Word Count Met
There's no magic number, but for informational queries in 2026, the top-ranking pages average 1,800-2,500 words according to Surfer SEO's data. For product pages, it's different. Match the SERP, not an arbitrary target.
13. No Thin or Duplicate Content Pages in the Index
Every indexable page should provide unique value. Tag pages, empty category pages, and paginated archives with no unique content should either be noindexed or consolidated.

URL Structure
14. Clean, Descriptive URLs
Good: /blog/on-page-seo-checklist-2026
Bad: /blog/post?id=847&cat=seo
Keep URLs short, lowercase, hyphen-separated. Include the target keyword when natural.
15. No URL Parameters for Content Variation
If you're using query parameters to filter or sort content, make sure those parameterized URLs are either canonicalized to the base URL or blocked from indexing. This is a huge issue with e-commerce sites and headless builds that generate filtered views.
16. Consistent Trailing Slash Policy
Pick one: trailing slash or no trailing slash. Then enforce it everywhere. In Next.js, you set this in next.config.js:
module.exports = {
trailingSlash: false, // or true -- just be consistent
};
Inconsistency here causes duplicate content issues that are surprisingly hard to diagnose.
Internal Linking
17. Every Page Is Reachable Within 3 Clicks from Homepage
This is basic crawl architecture, but it breaks down fast on large sites. Use tools like Screaming Frog's crawl depth report to verify.
18. Descriptive Anchor Text on Internal Links
Don't link with "click here." Link with text that describes the destination. "Our Next.js development capabilities" tells both users and search engines what they'll find.
19. Key Pages Receive the Most Internal Links
Your most important pages should have the most internal links pointing to them. This sounds simple, but we regularly audit sites where the "About Us" page has more internal links than the main service pages. Map your internal linking strategy before launch.
20. No Orphan Pages
Every page in your sitemap should be reachable through at least one internal link. Orphan pages -- pages with no internal links pointing to them -- get crawled less frequently and rank worse.
21. Broken Internal Links Checked and Fixed
Run a full crawl. Fix every 404. This is non-negotiable on launch day.
Canonical Tags and Duplicate Content
22. Self-Referencing Canonical Tags on Every Page
Every page should have a canonical tag pointing to itself. Yes, even if there's no duplicate content issue. It's a defensive measure.
<link rel="canonical" href="https://example.com/blog/on-page-seo-checklist" />
23. Canonical Tags Use Absolute URLs
Relative canonical URLs work in some browsers but cause issues with certain crawlers. Always use full absolute URLs.
24. WWW vs Non-WWW Consolidated
Pick one. Redirect the other. Verify in Google Search Console that both versions are added and the preferred one is set. We've seen sites running for months with both versions indexed.
25. HTTP to HTTPS Redirected
All HTTP URLs should 301 redirect to HTTPS. In 2026, this should be a given, but we still find it missing on about 15% of site audits.
Redirects
26. 301 Redirects Mapped for All Old URLs
If you're relaunching or migrating, this is where most SEO value gets lost. Every URL from the old site that had traffic, rankings, or backlinks needs a 301 redirect to the closest equivalent on the new site. We maintain redirect maps in spreadsheets during every migration project -- sometimes with thousands of rows.
27. No Redirect Chains
A → B → C → D is bad. A should go directly to D. Google follows redirect chains, but each hop dilutes crawl efficiency and can cause issues. Audit with Screaming Frog.
28. No Redirect Loops
This should go without saying, but we've seen it happen in production. Page A redirects to Page B, which redirects back to Page A. Instant 500-level error for users and crawlers.
29. Soft 404s Identified and Fixed
A soft 404 is a page that returns a 200 status code but shows "Page Not Found" content. Google Search Console reports these, but you should catch them before launch by checking your custom 404 page actually returns a 404 status code.
Schema and Structured Data
30. Organization Schema on Homepage
At minimum, your homepage should have Organization schema with name, URL, logo, and social profiles. This feeds Google's Knowledge Panel.
31. Page-Specific Schema Types
Match schema to content type:
- Blog posts →
ArticleorBlogPosting - Service pages →
ServiceorProfessionalService - FAQ pages →
FAQPage - Product pages →
Productwithoffersandreview
32. Schema Validated with Google's Rich Results Test
Don't just add JSON-LD and hope for the best. Test every schema type with Google's Rich Results Test tool. Invalid schema is worse than no schema because it sends mixed signals.
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "On-Page SEO Checklist 2026",
"author": {
"@type": "Organization",
"name": "Social Animal"
},
"datePublished": "2026-01-15",
"dateModified": "2026-01-15"
}
Core Web Vitals and Performance
Google confirmed Core Web Vitals remain a ranking signal in 2026, and with the Interaction to Next Paint (INP) metric fully replacing FID, performance matters more than ever for interactive sites.
33. LCP Under 2.5 Seconds
Largest Contentful Paint measures how fast your main content loads. For headless sites, the biggest LCP killers are unoptimized hero images and render-blocking JavaScript. Use Next.js <Image> component or Astro's built-in image optimization. If you're using Astro, you're already ahead -- its zero-JS-by-default approach nails LCP.
34. INP Under 200 Milliseconds
Interaction to Next Paint replaced FID in March 2024 and is still the responsiveness metric in 2026. Heavy client-side JavaScript frameworks are the usual culprits. This is honestly one of the biggest reasons we push clients toward headless architectures -- shipping less JavaScript to the browser directly improves INP.
35. CLS Under 0.1
Cumulative Layout Shift measures visual stability. The usual suspects: images without explicit width/height, dynamically injected content, web fonts causing FOIT/FOUT. Set explicit dimensions on all media elements and use font-display: swap with proper fallback fonts.
36. Mobile PageSpeed Insights Score Above 90
Desktop scores are easy. Mobile is where it matters. Test every critical page template, not just the homepage. We've seen homepages score 98 while product listing pages score 45.
Internationalization and Hreflang
37. Hreflang Tags on All Multilingual/Multi-Region Pages
If you serve content in multiple languages or target multiple regions, hreflang is mandatory. Get this wrong and Google may show French content to English users or vice versa.
<link rel="alternate" hreflang="en-us" href="https://example.com/page" />
<link rel="alternate" hreflang="fr-fr" href="https://example.com/fr/page" />
<link rel="alternate" hreflang="x-default" href="https://example.com/page" />
Always include x-default. Always make hreflang reciprocal -- if Page A references Page B, Page B must reference Page A.
38. Language-Specific URLs, Not Cookie/IP Detection
Don't serve different language content on the same URL based on browser language or IP. Google crawls from the US in English. If your French content is behind IP detection, Google will never see it. Use distinct URLs: /fr/page, fr.example.com/page, or example.fr/page.
Images and Media
39. Descriptive Alt Text on All Images
Every image should have alt text that describes what's in the image. Not keyword-stuffed, not "image1.jpg," not empty. Descriptive. This is both an SEO and accessibility requirement.
40. Images Served in Modern Formats (WebP/AVIF)
Serving JPEG and PNG in 2026 is leaving performance on the table. WebP has universal browser support. AVIF offers even better compression (30-50% smaller than WebP in many cases). If you're using a headless CMS with an image CDN like Cloudinary or Imgix, format negotiation happens automatically. In Next.js, the built-in Image component handles this.
Technical Foundations
These didn't make the numbered list because they're table stakes, but they're worth mentioning:
- XML Sitemap submitted to Google Search Console and referenced in
robots.txt - Robots.txt reviewed -- make sure staging
Disallow: /didn't carry over to production (we've seen this happen more times than we'd like to admit) - SSL certificate valid and not expiring within 30 days of launch
- Google Search Console and Bing Webmaster Tools verified
- 404 page returns actual 404 status code and provides navigation back to useful content
What Most Agencies Miss
After auditing sites from dozens of other agencies, here's what gets overlooked most often:
Staging robots.txt going to production. I cannot stress this enough. If your production site has
Disallow: /in robots.txt, you're invisible to Google. Add a launch-day check for this. Automate it if you can.JavaScript rendering issues. Headless sites that rely on client-side rendering can be invisible to Google if critical content loads asynchronously. Google does render JavaScript, but with delays and sometimes incomplete execution. Server-side rendering or static generation via Next.js or Astro eliminates this risk entirely.
Faceted navigation creating thousands of indexable URLs. E-commerce sites with filters for size, color, price, brand -- each combination creates a unique URL. Without proper canonical tags or noindex directives, you're creating thousands of thin, duplicate pages.
Missing hreflang reciprocals. If the English page references the French page but the French page doesn't reference the English page back, Google may ignore both hreflang annotations.
Schema markup that doesn't match visible content. Google's guidelines are clear: structured data must reflect content actually visible on the page. Adding
Productschema with a price that's not displayed on the page is a manual action waiting to happen.Forgetting to update internal links after URL changes. You set up 301 redirects (good), but all your internal links still point to old URLs, creating unnecessary redirect hops on every page load.
If you're planning a site migration or new build and want this stuff handled right, check our headless CMS development capabilities or get in touch.
The Full 40-Item Checklist Table
| # | Item | Category | Priority |
|---|---|---|---|
| 1 | Unique title tags on every page | Meta | Critical |
| 2 | Primary keyword near front of title | Meta | High |
| 3 | Meta descriptions on every page | Meta | High |
| 4 | Open Graph and Twitter Card tags | Meta | Medium |
| 5 | No duplicate meta descriptions | Meta | High |
| 6 | Exactly one H1 per page | Headings | Critical |
| 7 | H1 contains primary keyword | Headings | High |
| 8 | Logical heading hierarchy | Headings | High |
| 9 | H2s address subtopics and long-tail queries | Headings | Medium |
| 10 | Primary keyword in first 100 words | Content | High |
| 11 | Content matches search intent | Content | Critical |
| 12 | Minimum viable word count met | Content | High |
| 13 | No thin or duplicate content indexed | Content | Critical |
| 14 | Clean, descriptive URLs | URLs | High |
| 15 | No URL parameters for content variation | URLs | High |
| 16 | Consistent trailing slash policy | URLs | Medium |
| 17 | Every page reachable within 3 clicks | Internal Links | High |
| 18 | Descriptive anchor text on internal links | Internal Links | Medium |
| 19 | Key pages receive most internal links | Internal Links | High |
| 20 | No orphan pages | Internal Links | High |
| 21 | Broken internal links fixed | Internal Links | Critical |
| 22 | Self-referencing canonical on every page | Canonicals | Critical |
| 23 | Canonical tags use absolute URLs | Canonicals | High |
| 24 | WWW vs non-WWW consolidated | Canonicals | High |
| 25 | HTTP to HTTPS redirected | Redirects | Critical |
| 26 | 301 redirects mapped for all old URLs | Redirects | Critical |
| 27 | No redirect chains | Redirects | High |
| 28 | No redirect loops | Redirects | Critical |
| 29 | Soft 404s identified and fixed | Redirects | High |
| 30 | Organization schema on homepage | Schema | Medium |
| 31 | Page-specific schema types | Schema | Medium |
| 32 | Schema validated with Rich Results Test | Schema | Medium |
| 33 | LCP under 2.5 seconds | Core Web Vitals | Critical |
| 34 | INP under 200 milliseconds | Core Web Vitals | Critical |
| 35 | CLS under 0.1 | Core Web Vitals | High |
| 36 | Mobile PageSpeed score above 90 | Core Web Vitals | High |
| 37 | Hreflang tags on multilingual pages | i18n | High |
| 38 | Language-specific URLs (not IP detection) | i18n | High |
| 39 | Descriptive alt text on all images | Images | High |
| 40 | Images in WebP/AVIF formats | Images | Medium |
FAQ
How often should I run an on-page SEO audit?
We run the full checklist before every launch and then do quarterly audits post-launch. Sites that publish content frequently (daily or weekly blog posts) should audit monthly at minimum. Content additions can introduce broken links, missing meta tags, or heading structure issues that compound over time.
Is on-page SEO still important in 2026 with AI overviews?
Absolutely. Google's AI Overviews still pull from web pages that rank well organically. The pages cited in AI overview responses are overwhelmingly pages that already rank in the top 10 for that query. Strong on-page SEO is how you get there. If anything, AI overviews have made featured snippet optimization and structured data more important, not less.
What's the most common on-page SEO mistake agencies make during site migrations?
Forgetting to map 301 redirects from old URLs to new ones. We've seen sites lose 60-80% of their organic traffic overnight because of this. The second most common mistake is letting a staging robots.txt with Disallow: / go live to production. Both are preventable with a proper checklist.
Do I need schema markup on every page?
Not every page needs custom schema, but every page should at minimum inherit the site-wide Organization or WebSite schema. Pages targeting specific rich result types -- FAQ, How-To, Product, Article -- should have the appropriate schema type. Focus your schema efforts on pages where rich results can improve CTR.
How do headless CMS sites handle on-page SEO differently?
The main difference is that SEO elements like title tags, meta descriptions, canonical tags, and schema need to be explicitly handled in the frontend framework. Traditional CMS platforms like WordPress have plugins (Yoast, Rank Math) that handle a lot of this automatically. With a headless setup using Next.js or Astro, you're building these elements into your components yourself. That's actually an advantage -- you have more control -- but it means more responsibility. That's a big part of what we do in our headless CMS development work.
What Core Web Vitals thresholds should I target in 2026?
Google's "good" thresholds haven't changed: LCP under 2.5s, INP under 200ms, CLS under 0.1. But here's the thing -- "good" is the minimum. In competitive SERPs, the top-ranking pages typically have LCP under 1.8s and INP under 100ms. If you're in a competitive vertical, aim for better than good.
Should I use hreflang even if I only target one country?
If you genuinely only serve one language in one country, you don't need hreflang. But if you have even two language versions or serve the same language to different regions (e.g., English for the US and UK), implement hreflang. Also consider adding it proactively if you plan to expand internationally within the next year -- it's much easier to implement during the build than to retrofit later.
Can I use AI-generated content and still rank well with on-page SEO?
Google's stance in 2026 is clear: they don't penalize AI-generated content per se, but they do penalize low-quality, unhelpful content regardless of how it was produced. AI can be a great first draft tool, but content that ranks well typically includes original insights, first-hand experience, and specific data -- things AI models can't fabricate. Use AI to speed up your workflow, then add the human expertise that makes content genuinely useful.