On-Page SEO: The Optimisation Checklist That Still Moves Rankings
On-Page SEO: The Optimisation Checklist That Still Moves Rankings
Most on-page audits we run at SEOelinks turn up the same handful of avoidable mistakes, repeated across hundreds of pages. This is the checklist we actually use, not a generic list of “best practices” copied from a decade-old blog post.
Start with intent, not keywords
The most common on-page failure is not a missing tag, it is a page built to satisfy a keyword instead of the intent behind it. Before writing a title, an H1 or a word of body copy, look at what is actually ranking for the target query. If the top ten results are all comparison listicles and you are trying to rank a single-product page, no amount of on-page polish fixes a fundamental intent mismatch. If they are a mix of product pages and buying guides, that tells you the intent is split and there may be room for either format, but you need to commit to one and build it properly.
Practically, this means every page brief should state, in one sentence, what the searcher wants to do next after landing — compare options, buy, book, learn, or navigate somewhere specific. Every heading and paragraph downstream should serve that stated intent, not drift into adjacent topics because they seemed useful to include.
Title tags and H1s: craft, not templates
Titles built from a rigid template — “Primary Keyword | Secondary Keyword | Brand” — repeated across hundreds of pages read as spam to both users and, increasingly, to ranking systems that reward differentiation. A better pattern states a specific benefit or qualifier alongside the term.
Weak title
“Kitchen Renovation Brampton | ABC Contracting”
Stronger title
“Kitchen Renovation in Brampton: Fixed-Quote Pricing & 3–6 Week Timelines”
Weak H1
“Welcome to Our Kitchen Renovation Page”
Stronger H1
“Kitchen Renovations in Brampton, Built to a Fixed Quote”
The H1 does not need to match the title tag exactly, but it should reinforce the same promise using natural language, since it is the first thing a reader sees on the page itself and often the first thing quoted back by AI answer engines.
Heading hierarchy that actually reflects structure
H2s and H3s exist to describe a document’s outline, not to sprinkle keyword variants. A common problem in audits is pages with six H2s that are all near-duplicate phrasings of the primary keyword. That does nothing for rankings and actively confuses both users skimming the page and any system trying to extract a clear answer from a subsection. Each heading should describe a genuinely distinct subtopic, and subheadings should nest logically — an H3 should only ever sit under a directly relevant H2, not float at the same structural level doing different work.
Page structure at a glance
Internal linking and anchor text patterns
Internal links are the cheapest ranking lever most sites leave unpulled. The pattern that works: link from high-authority, high-traffic pages down into money pages and newer content, using descriptive anchor text that names the destination topic rather than “click here” or the bare brand name. Anchor text should vary naturally across the site rather than repeating one exact-match phrase on every link, which reads as manipulative both to users and to ranking systems that look at anchor diversity.
A second pattern worth building deliberately is hub-and-spoke: a strong pillar page on a broad topic, linking out to and receiving links back from a set of narrower pages that each answer one specific sub-question. This gives both users and crawlers a clear path through related content and concentrates authority where it is most commercially useful.
Depth vs padding
Longer is not automatically better. A page padded to 2,000 words with restated points and filler transitions performs worse than a tight 900-word page that actually answers the query completely, because dwell time and satisfaction signals suffer when readers have to work to find the answer. The right length is whatever it takes to cover the intent thoroughly and no more — check top-ranking pages for the topics they cover that yours does not, then close genuine gaps rather than adding word count for its own sake.
Semantic and entity coverage
Modern ranking systems build a topic model from the entities and concepts a page references, not just the exact keyword string. A page about “commercial roof replacement” that never mentions membrane types, warranty terms, or the inspection process reads as thin to a system that has seen hundreds of comprehensive pages on the same topic. Building a simple content brief that lists the entities, subtopics and questions competitors cover, then checking your draft against it, closes this gap without turning into keyword stuffing.
Media optimisation and alt text
Alt text exists primarily for accessibility and secondarily for image search and machine understanding, and it should be written for both, not just stuffed with a keyword. Compress images before upload, use modern formats where the CMS supports them, and give files descriptive names before upload rather than relying on alt text alone to compensate for “IMG_4821.jpg”. Lazy-load below-the-fold images, but never lazy-load the hero image, since that delays the largest contentful paint metric that both users and Core Web Vitals care about.
Schema by page type
| Page type | Primary schema | Notes |
|---|---|---|
| Local service page | LocalBusiness / Service | Include service area, not just address, if you serve a radius |
| Blog / guide | Article | Author and date fields matter for trust signals |
| FAQ section | FAQPage | Only mark up questions genuinely visible on the page |
| Product | Product / Offer | Keep price and availability fields synced with actual stock data |
| Review-heavy page | Review / AggregateRating | Only use with genuine, verifiable reviews |
URL structure and template boilerplate
URLs should be short, lower-case, hyphenated, and describe the page’s place in the site hierarchy without unnecessary parameters or duplicated words. Avoid changing URL structures without redirects once a section has earned rankings; the churn cost usually outweighs the tidiness gain.
Boilerplate — header, footer, sidebar widgets, repeated CTAs — should stay under roughly 30–40% of a page’s total text. Above that, the unique content-to-template ratio drops low enough that thin or duplicate-content classification risk rises, particularly on templated local landing pages that differ from each other only by city name.
Template boilerplate and duplicate risk in practice
The boilerplate ratio problem shows up most often on multi-location service sites where dozens of city pages share the same paragraphs with only the place name swapped. Search engines increasingly consolidate near-duplicate pages into a single indexed result, which means the other city pages effectively stop existing in search even though they are live on the site. The fix is not always more content per page; sometimes it is fewer, better-differentiated pages that each earn their own ranking rather than a long tail of thin duplicates competing with each other.
Cannibalisation detection and fixes
Keyword cannibalisation happens when two or more pages on the same site compete for the same query, splitting authority and confusing which page ranking systems should show. Detect it by exporting Search Console queries and checking for the same query triggering impressions across multiple URLs, then decide per case: consolidate the weaker page into the stronger one with a redirect, differentiate the intent each page targets, or canonicalise to the primary version. Do not simply delete the weaker page without checking whether it holds backlinks worth preserving through a redirect.
Refresh cadence for decaying pages
Page-level QA checklist
Title and H1 aligned but not identical
Both reflect the same promise in different phrasing.
One clear intent match
The page format matches what is actually ranking for the target query.
3–5 internal links out
Descriptive anchors, not repeated exact-match phrases.
Correct schema type present
Validated, and matching what is visibly on the page.
Boilerplate ratio checked
Unique content clearly dominant over template text.
Images compressed with real alt text
File names and alt text both descriptive, not keyword-stuffed.
On-page SEO checklists get treated as a one-time launch task. The pages that keep ranking are the ones someone re-opens on a schedule, not the ones optimised once in 2021 and never touched again.
Frequently asked questions
Does keyword density still matter?
Not as a target to hit. Natural usage across title, headings and body, alongside related entities and phrasing, matters far more than any fixed percentage.
How many H2s should a page have?
As many as there are genuinely distinct subtopics, and no more. Padding a page with near-duplicate H2s to look thorough usually backfires.
Is it bad to have the same content on multiple local landing pages?
Yes, if the only difference is the city name. Search engines will typically pick one to rank and treat the rest as duplicate or thin.
How often should we refresh old blog content?
Review decaying pages roughly every quarter, but only refresh when there is a real reason — outdated facts, a content gap versus competitors, or a genuine drop in performance.
Should every page have FAQ schema?
Only if the page genuinely displays those questions and answers to users. Markup that does not match visible content risks manual action.
Want your existing pages audited against this exact checklist?
SEOelinks runs page-level on-page audits for businesses working worldwide from our Brampton, Ontario base, since 2014.

Leave a Reply