ONPAGE

On-Page SEO: The Complete Checklist for 2026

On-page SEO covers every element you control on the page itself — title tags, headings, content, internal links, structured data, and image optimisation. Here's the full checklist and what to prioritise.

On-page SEO is the practice of optimising the content and HTML of individual pages so that search engines understand what the page is about, who it's for, and why it deserves to rank. It's the half of SEO you directly control — unlike off-page SEO (backlinks, brand mentions) or technical SEO (crawlability, server config), on-page work happens entirely within your own files.

This is also where most ranking potential gets wasted. A page that earns links but has a generic title, no meta description, a weak H1, and shallow content will underperform against a page with fewer backlinks that nails the fundamentals.

Here's the complete on-page SEO checklist for 2026.

Title tag

The title tag is the single most important on-page ranking signal. It appears in the browser tab, as the clickable headline in search results, and as the default text when content is shared.

The rules that actually matter:

  • Include the primary keyword. Front-load it — "Keyword Research for SEO: How to..." outperforms "How to do Keyword Research for SEO" in CTR because the keyword is visible before truncation.
  • Keep it under 60 characters (approximately 600px rendered width). Google truncates longer titles. Check with a SERP preview tool.
  • Every page gets a unique title. Duplicate titles across pages tell Google the pages serve the same purpose — a cannibalization signal.
  • Match search intent. If the top 5 results for your target keyword all have "guide" in the title, your title should too — Google is signalling that's the format users expect.
  • Don't keyword-stuff. "Best SEO Tool | Free SEO Tool | SEO Audit Tool" is a rewrite trigger — Google will replace your title with something it considers more useful.

Google rewrites titles it considers inaccurate, too long, keyword-stuffed, or mismatched to the page content. Check the GSC Performance report for queries where your title appears differently than what you set — that's Google overriding you.

Meta description

The meta description doesn't directly affect rankings — Google confirmed this in 2009. It affects CTR: a well-written meta description that matches the searcher's intent earns more clicks from the same ranking position.

What works:

  • 150–160 characters maximum (Google truncates at approximately 155 characters on mobile, slightly more on desktop).
  • Include the target keyword — Google bolds query terms in the description, making your result visually stand out.
  • Write it like a call-to-action, not a keyword list. "Learn how to audit your site's Core Web Vitals in 60 seconds — free, no signup." beats "SEO audit. Core Web Vitals. Free SEO tool."
  • Make it specific to the page content. Generic descriptions that could apply to any page on your site won't earn clicks.

When no meta description is set, Google generates its own — usually by pulling a relevant passage from the page. If Google's auto-generated snippet is consistently better than your written descriptions, that's a signal to write more specific ones.

H1 heading

Every page should have exactly one H1. It's the primary heading that tells both users and crawlers what the page is about. Best practices:

  • One H1 per page — multiple H1s confuse hierarchy and dilute the heading's signal.
  • Include the primary keyword, but the H1 doesn't need to be identical to the title tag. The title has a character limit; the H1 is for the page itself and can be slightly more descriptive.
  • Match the H1 to the page content. A mismatch between the title tag, H1, and page content is a ranking signal issue.

Heading structure (H2–H6)

Heading structure creates the content hierarchy — the outline of your page — and helps both readers and crawlers understand how the content is organised.

What to optimise:

  • Use H2s for the main sections of a page, H3s for subsections within an H2, H4s for sub-subsections (rarely needed).
  • Include secondary keywords in H2s where it's natural — these act as topical coverage signals.
  • Phrase at least 20% of headings as questions. Question-phrased headings (H2: "How does canonical URL canonicalization work?") directly align with People Also Ask boxes and AI Overview extraction patterns. The GEO score's question-heading ratio check is based on this signal.
  • Don't skip heading levels (H1 → H3 without an H2) — this breaks the semantic hierarchy.

Content quality

Content is the foundation that all other on-page signals rest on. A page with perfect title tags and heading structure but thin, low-quality content won't rank competitively.

What Google evaluates:

Topical completeness — does the page address every significant angle of the search intent? Look at the top 5 ranking pages for your target keyword and note which subtopics they cover. Your page should cover at least the same ground, plus something they don't.

E-E-A-T signals — Experience, Expertise, Authoritativeness, Trustworthiness. Practical signals: named authors with verifiable credentials, first-hand experience described in the content (not just restated information from other sources), citations to primary sources, and factual accuracy.

Content depth vs. padding — longer content correlates with better rankings because longer content tends to cover more subtopics. But word count is not a ranking factor; topical coverage is. Write as much as the topic genuinely requires; don't pad to hit an arbitrary count.

Freshness — for topics where information changes (algorithm updates, tool features, regulatory changes), update the dateModified in your Article schema and add an "updated on" note for readers. Stale content on fast-moving topics loses rankings to fresher competitors.

Keyword integration

Modern keyword usage is about natural semantic coverage, not repetition count. Google understands synonyms, related terms, and context.

The practical rules:

  • Use the primary keyword in the title tag, H1, and naturally in the first 100 words of the page.
  • Use semantic variants throughout — "keyword research" and "finding keywords" and "query discovery" all signal the same topic to Google's NLP.
  • Don't repeat the exact keyword phrase mechanically — "keyword research for seo" appearing 15 times in 500 words is keyword stuffing and will trigger quality filters.
  • Target secondary keywords in specific H2 sections — each section can address a related query within the same intent cluster.

Internal linking

Internal links are how you pass PageRank between pages and how you tell Google which pages are most important. From an on-page perspective, the links you add to (and from) each page matter.

What to implement:

  • Link from your new page to relevant pillar pages and related content. This helps users navigate and establishes the content hierarchy.
  • Ensure existing related pages link to your new page — orphan pages (no inbound internal links) receive little PageRank and rank poorly even with good content.
  • Use keyword-rich anchor text for internal links. "Click here" carries no topical signal; "read our keyword research guide" tells Google the linked page is about keyword research.
  • Limit internal links on a single page to a number that feels natural for the content — typically 3–8 contextual links, plus navigation.

Image optimisation

Images add visual value but are invisible to crawlers without proper markup.

The checklist:

  • Alt text on every image — descriptive alt text tells crawlers what the image shows and provides a keyword signal. "A screenshot of the DeepSEOAnalysis audit report showing a 92/100 score" is better than "screenshot" or nothing.
  • Descriptive filenameskeyword-research-process-diagram.png beats IMG_4821.png before the file is even crawled.
  • Compress images — large uncompressed images are one of the most common LCP causes. Use WebP format and serve via a CDN. Next.js <Image> handles this automatically; WordPress users should use a compression plugin.
  • fetchpriority="high" on the LCP image — the largest above-the-fold image should be loaded eagerly. In Next.js, pass the priority prop to the <Image> component.
  • Explicit width and height attributes — prevents CLS when images load and shift the layout.

URL structure

The page URL is a minor ranking signal and a significant UX signal.

  • Include the primary keyword in the slug: /blog/on-page-seo-guide not /blog/post-142.
  • Use hyphens as word separators (not underscores — Google treats underscores as joining characters).
  • Keep it short: 3–5 words in the slug is a good target.
  • Don't change URLs after publication without implementing a 301 redirect — dead links lose the incoming PageRank those pages had built.

Structured data

Structured data doesn't directly rank your page, but it unlocks rich results (FAQ dropdowns, star ratings, breadcrumb display) and signals content structure to AI answer engines.

Priority schema for content pages:

  • FAQPage — on any page with a Q&A section. Unlocks expandable FAQ rich results and is the primary schema signal for AI Overview citations.
  • Article — on all blog posts and editorial content. Sets author, datePublished, dateModified, and publisher — E-E-A-T signals in structured data form.
  • BreadcrumbList — on every page. Controls how the URL path appears in search results.
  • HowTo — on step-by-step instructional content.

Core Web Vitals and page experience

Google's Page Experience signals — LCP, INP, CLS — affect rankings as part of the broader ranking system. From an on-page perspective:

  • LCP: above-the-fold images must use fetchpriority="high" or priority (Next.js). Self-hosted fonts load faster than Google Fonts. TTFB below 800ms is required for Good LCP.
  • CLS: all images need explicit dimensions. Avoid dynamic DOM injection above the fold after initial render.
  • INP: minimise JavaScript blocking the main thread during user interactions. Defer non-critical scripts.

The Core Web Vitals report in Google Search Console shows field data — real users — which is the actual ranking signal. Lighthouse scores are lab approximations.

On-page SEO audit checklist

  1. Every page has a unique title tag under 60 characters with the primary keyword front-loaded
  2. Every page has a unique meta description between 150–160 characters with a call-to-action
  3. One H1 per page matching the primary topic
  4. H2 structure covers all major subtopics; at least 20% of headings phrased as questions
  5. Content covers the topic completely — check against the top 5 competitors for gaps
  6. Primary keyword appears in the first 100 words naturally
  7. All images have alt text and explicit dimensions; LCP image uses fetchpriority="high"
  8. URL slug contains the primary keyword, uses hyphens, under 60 characters
  9. 3–8 contextual internal links to and from related pages with keyword-rich anchor text
  10. FAQPage and Article JSON-LD implemented; BreadcrumbList on every page
  11. Core Web Vitals pass for LCP, INP, and CLS in GSC field data

Run the DeepSEOAnalysis free audit to check all 80+ on-page signals across every crawled page — with CMS-specific fix instructions for WordPress, Shopify, Next.js, and more.


Frequently asked questions

How long should a page be for on-page SEO?

As long as the topic requires to cover it completely — no longer. Word count correlates with ranking because comprehensive coverage requires more words, not because Google rewards length itself. Check the average word count of the top 5 ranking pages for your target keyword and use that as a rough benchmark. For a definitional query, 400 well-written words may outrank a 2,000-word piece that pads the topic with repetition.

Does keyword density matter for on-page SEO?

Keyword density (the percentage of times a target keyword appears in the text) is not a Google ranking factor and hasn't been for over a decade. What matters is natural, contextually appropriate keyword usage — including the keyword in the title, H1, and relevant sections of the content. Mechanically repeating the keyword phrase to hit a specific percentage triggers quality filters rather than improving rankings.

What's the difference between on-page SEO and technical SEO?

On-page SEO covers the content and HTML of individual pages — what you control within the page files: title tags, headings, content quality, images, structured data. Technical SEO covers the infrastructure that makes pages crawlable and indexable — server configuration, robots.txt, sitemaps, HTTPS, page speed, mobile rendering, canonicalization. A page can have excellent on-page SEO but fail to rank if technical issues prevent it from being crawled or indexed.

How often should I update on-page SEO elements?

Title tags and meta descriptions: when the page isn't generating expected clicks from existing impressions (check GSC for low-CTR pages with high impressions). Content: when it starts losing rankings due to freshness decay (check GSC for position declines on historically strong pages) or when competitor pages start ranking above you with more comprehensive content. Structured data: whenever the page content changes in a way that affects schema (new FAQ questions, updated pricing, new review data).

Run DeepSEOAnalysis on your own site.

Free, no signup. Technical SEO, Core Web Vitals, structured data, and AI visibility in one report.

Run a free audit →