On-Page SEO Checklist for 2026
This checklist covers every on-page SEO factor you should review before publishing or updating a webpage. Work through each item to ensure your page is fully optimised for search engines. You can verify most of these automatically by running a free audit with RankNibbler.
Title Tag
| Check | Details |
| 1 | Page has a title tag | Every page must have a <title> element in the head. |
| 2 | Title is 30-60 characters | Titles outside this range get truncated or appear thin in search results. |
| 3 | Primary keyword is near the start | Front-loading keywords improves relevance signals and visibility in SERPs. |
| 4 | Title is unique across the site | No two pages should share the same title tag. |
| 5 | Brand name at the end | Use a separator like | or - before your brand name. |
Meta Description
| Check | Details |
| 6 | Page has a meta description | Without one, search engines generate their own snippet. |
| 7 | Description is 120-160 characters | Short enough to avoid truncation, long enough to be useful. |
| 8 | Includes target keyword | Matching keywords are bolded in search results. |
| 9 | Contains a call to action | Phrases like "Learn how" or "Get started" encourage clicks. |
| 10 | Unique per page | Duplicate descriptions confuse search engines. |
Heading Structure
| Check | Details |
| 11 | Exactly one H1 tag | The H1 should contain the primary keyword and describe the page topic. |
| 12 | H2 tags for major sections | Break content into scannable sections with descriptive H2 headings. |
| 13 | No skipped heading levels | Do not jump from H1 to H3. Maintain a logical hierarchy. |
| 14 | Headings are descriptive | Avoid vague headings like "More info". Each should describe the section. |
Content
| Check | Details |
| 15 | At least 300 words | Thin content under 300 words is unlikely to rank for competitive queries. |
| 16 | Text-to-HTML ratio above 10% | Very low ratios suggest the page is code-heavy with little visible content. |
| 17 | Content matches search intent | Informational queries need guides, transactional queries need product pages. |
| 18 | No duplicate content | Each page should offer unique value not found elsewhere on your site. |
Images
| Check | Details |
| 19 | All images have alt text | Every meaningful image needs a descriptive alt attribute. |
| 20 | Alt text is descriptive | "Red mountain bike on trail" is better than "bike" or "image1". |
| 21 | Decorative images use alt="" | Spacers and design elements should have empty alt to skip screen readers. |
Links
| Check | Details |
| 22 | Internal links to related pages | Every page should link to relevant content within your site. |
| 23 | Descriptive anchor text | "Read our SEO guide" is better than "click here". |
| 24 | External links to credible sources | Linking to authoritative references builds trust and context. |
| 25 | No broken links | Links to 404 pages waste crawl budget and harm user experience. |
Technical SEO
| Check | Details |
| 26 | Canonical URL set | Prevents duplicate content when the page is accessible at multiple URLs. |
| 27 | HTTPS enabled | Google uses HTTPS as a ranking signal. HTTP sites are flagged as insecure. |
| 28 | Clean URL structure | Lowercase, hyphenated, no excessive parameters, under 100 characters. |
| 29 | Viewport meta tag present | Required for mobile-responsive design and mobile-first indexing. |
| 30 | HTML lang attribute set | Tells search engines and screen readers the page language. |
| 31 | Robots directives correct | Ensure the page is not accidentally set to noindex. |
| 32 | Favicon present | Appears in browser tabs, bookmarks, and some search results. |
Structured Data and Social
| Check | Details |
| 33 | JSON-LD structured data added | Enables rich results like star ratings, FAQs, and breadcrumbs in Google. |
| 34 | Open Graph tags complete | og:title, og:description, og:image, og:url as a minimum. |
| 35 | Twitter Card tags set | twitter:card, twitter:title, twitter:description, twitter:image. |
Performance
| Check | Details |
| 36 | Scripts use async or defer | External scripts without these attributes block page rendering. |
| 37 | Minimise external scripts | Each script adds latency. Remove any that are not essential. |
Keyword and Content Quality
| Check | Details |
| 38 | Keyword density between 1-3% | Primary keyword should appear naturally throughout. Over 3% looks unnatural and may trigger spam filters. |
| 39 | Primary keyword in first paragraph | Including your keyword early signals relevance to both search engines and readers. |
| 40 | Primary keyword in at least one H2 | Reinforces the topic signal in your heading structure. |
| 41 | Related terms and synonyms used | Semantic keyword coverage helps Google understand the full scope of your content. Do not just repeat the exact keyword. |
| 42 | Flesch reading score of 60+ | Content that is too difficult to read drives visitors away. Aim for Standard or Fairly Easy for general content. |
| 43 | Short paragraphs (2-3 sentences) | Long blocks of text are intimidating. Short paragraphs improve scanability and mobile readability. |
| 44 | Bullet points and numbered lists | Lists improve scanability and are favoured by AI Overviews and featured snippets. |
| 45 | Tables for comparative data | Tables are easier for both users and AI systems to parse than the same data in paragraph form. |
Advanced Image Optimisation
| Check | Details |
| 46 | Lazy loading on below-fold images | Add loading="lazy" to images below the initial viewport. Do NOT lazy-load the hero image. |
| 47 | Width and height attributes set | Missing dimensions cause Cumulative Layout Shift (CLS) — a Core Web Vital metric. |
| 48 | Images compressed | Use WebP format and compress before uploading. Aim for under 200KB per image. |
| 49 | Descriptive file names | red-running-shoe.jpg is better than IMG_4521.jpg. Use hyphens between words. |
Advanced Link Checks
| Check | Details |
| 50 | No empty links | Links with no text, no aria-label, and no image alt text are inaccessible and waste link equity. |
| 51 | Nofollow used correctly | Only use nofollow on paid links, user-generated content, or untrusted links. Internal links should never be nofollow. |
| 52 | No broken links | Run a broken link check and fix or redirect any 404 errors found. |
| 53 | Anchor text is descriptive | Every link's text should describe the destination. Avoid "click here" and "read more". |
Accessibility
| Check | Details |
| 54 | Skip navigation link present | Allows keyboard users to skip past the navigation menu to the main content. |
| 55 | ARIA landmarks used | Use semantic HTML elements like <main>, <nav>, <header>, <footer>. |
| 56 | Form inputs have labels | Every form input needs a visible <label> or aria-label for screen readers. |
| 57 | Linked images have alt text | Images inside links must have alt text so screen readers can describe where the link goes. |
Advanced Technical
| Check | Details |
| 58 | HTML5 doctype | The first line of HTML should be <!DOCTYPE html>. |
| 59 | UTF-8 charset declared | Add <meta charset="UTF-8"> in the head. |
| 60 | No deprecated HTML tags | Remove tags like <font>, <center>, <marquee> and replace with modern CSS. |
| 61 | No meta refresh redirects | Use server-side 301 redirects instead. |
| 62 | Minimal external CSS/JS | Each external file requires a network request. Combine files where possible. |
| 63 | Social media profiles linked | Link to your active social profiles from the site for brand association. |
| 64 | RSS feed discoverable | If you publish regular content, make your RSS/Atom feed discoverable in the HTML head. |
Pre-Publish Final Checks
| Check | Details |
| 65 | Preview in SERP Snippet Generator | See exactly how your title and description will appear in Google before publishing. |
| 66 | Run a RankNibbler audit | Check all 30+ on-page factors and get a score out of 100 with specific recommendations. |
| 67 | Check redirects | Verify all domain variants (HTTP, HTTPS, www, non-www) redirect to one canonical URL. |
| 68 | Submit sitemap if new | If this is a new page, ensure it is in your sitemap and submit to Google Search Console. |
How to Use This Checklist
This 68-point checklist covers every on-page SEO factor that affects how search engines index and rank your pages. Here is the most effective way to work through it:
Priority Order
- Title tags and meta descriptions first (items 1-10) — these carry the most weight and are the quickest to fix
- Heading structure (items 11-14) — the H1 check alone is worth 12 points
- Content quality (items 15-18, 38-45) — ensure your content matches search intent and is comprehensive
- Images (items 19-21, 46-49) — alt text, lazy loading, dimensions, and compression
- Technical elements (items 26-37, 58-64) — canonical URLs, HTTPS, structured data, scripts
- Links (items 22-25, 50-53) — internal linking, anchor text, broken links
- Final checks (items 65-68) — preview, audit, and submit
Which Pages to Check First
Start with your homepage, then your top landing pages, then product/service pages, then blog posts. For a comprehensive site-wide check, use the Site Audit tool which crawls your sitemap and audits up to 200 pages automatically.
How Often to Review
- Every new page: Run through the checklist before publishing
- Monthly: Re-audit your top 10 most important pages
- Quarterly: Full site audit across all pages
- After any major change: Redesigns, migrations, CMS updates, URL structure changes
Automated Checking
You do not need to check all 68 items manually. RankNibbler automatically checks most of these items when you enter a URL. The audit results tell you exactly which items pass, which fail, and what to fix. Use the Bulk Checker to check up to 20 pages at once, or the Site Audit for your entire website.
Checklist Score Impact
Here is how the checklist items map to the RankNibbler scoring system (100 points total):
| Category | Items | Max Points |
| Title Tag (presence + length) | 1-5 | 15 |
| Meta Description (presence + length) | 6-10 | 12 |
| H1 Tag | 11 | 12 |
| H2 Subheadings | 12 | 6 |
| Image Alt Text | 19-21 | 10 |
| Open Graph Tags | 34-35 | 10 |
| Canonical URL | 26 | 8 |
| Structured Data | 33 | 8 |
| HTML Lang Attribute | 30 | 5 |
| Viewport Meta Tag | 29 | 5 |
| Robots Directives | 31 | 5 |
| Word Count | 15 | 3 |
| Text-to-HTML Ratio | 16 | 2 |
| Favicon | 32 | 2 |
| HTTPS | 27 | 2 |
Frequently Asked Questions
How many items do I need to pass for good SEO?
You do not need a perfect score on all 68 items. Focus on the highest-impact elements first — title tags, meta descriptions, H1 tags, and image alt text. A score of 80+ on the RankNibbler audit indicates strong on-page SEO fundamentals.
Does this checklist apply to every page type?
Yes, with minor variations. Product pages need Product schema. Blog posts need Article schema. Local business pages need LocalBusiness schema. The core elements (title, description, H1, alt text, canonical, HTTPS) apply universally. For page-specific checklists, see SEO Checklist for Blog Posts and SEO Checklist for New Websites.
Can I automate this checklist?
Mostly, yes. RankNibbler checks the majority of these items automatically. The Site Audit runs checks across your entire sitemap. Items requiring editorial judgement (content quality, search intent matching, keyword naturalness) still require human review.
How does this checklist compare to what Screaming Frog checks?
This checklist covers similar ground to Screaming Frog's crawl checks but also includes content quality factors (readability, keyword density, word count) that Screaming Frog does not evaluate. See our RankNibbler vs Screaming Frog comparison for details.
What is the most commonly missed item?
Based on thousands of RankNibbler audits, the most commonly missed items are: missing structured data (most sites have none), missing image alt text (typically 30-50% of images lack it), and missing or duplicate meta descriptions.
Should I run this checklist before or after publishing?
Both. Run it before publishing to catch issues before they go live. Then run a RankNibbler audit on the published URL to verify everything renders correctly in the live environment — some issues only appear on the live site (e.g., scripts that block rendering, CDN-related issues).
Start Your Audit Now
Work through this checklist on your most important page, or let RankNibbler do the heavy lifting. Enter any URL and get a score out of 100 with specific recommendations for every item that needs attention. Use the Site Audit to check every page on your website at once. All free, no signup required.
For more guidance on fixing specific issues, see 20 Ways to Improve Your Website SEO and the SEO Audit Checklist for 2026.