Most on-page SEO advice is a list of sixty items of equal weight, which makes it useless because you cannot do sixty things well. This is the ordered version: work top to bottom, stop when your time runs out, and expect each step to return less than the one above it.
1. Fix what is actually broken
Before adding anything, remove the things that actively suppress ranking.
- Duplicate titles across pages. Two pages sharing a title compete with each other. Find every duplicate with
SELECT title, COUNT() FROM pages GROUP BY title HAVING COUNT() > 1. - Orphan pages. Any URL with no internal links pointing at it is effectively invisible. This is the single most common cause of "my page will not rank" complaints.
- Accidental noindex. Check for
X-Robots-Tag: noindexheaders on staging environments that leaked into production, and for robots.txt directives wider than intended. - Redirect chains. A → B → C loses link equity at every hop. Collapse to a single redirect.
On a real audit of a 400-page site, these four categories typically account for two-thirds of the fixable ranking loss.
2. Titles and meta descriptions
The title tag is the highest-leverage string you will write. Rules that hold up:
- Front-load the primary phrase. Truncation happens around 580 pixels; on mobile, around 40 characters survive.
- One page, one primary phrase. A page targeting two unrelated keywords will rank for neither.
- Write for the click, not the crawler. The title competes in a search result against nine other titles. Specificity beats keyword placement.
The description does not influence ranking, but it influences click-through, which influences ranking through engagement. Treat it as ad copy: state the outcome, include the differentiator, end with an implied action.
<!-- Weak -->
<title>SEO Tools | Best SEO Software | RankForge</title>
<!-- Strong -->
<title>Technical SEO Audit in 40 Seconds | RankForge</title>
<meta name="description" content="Crawl any site across 12 regions and get a
prioritised list of the technical fixes that actually move rankings. Free tier.">
3. Heading structure that matches intent
One h1 per page, containing the primary phrase or a close variant. Then use h2 for the main sections and h3 beneath them. The mistake is not the exact tag choice - it is skipping levels or using headings purely for font size.
A useful test: read only your headings, in order. If the outline does not read like a competent table of contents for the page's topic, restructure it.
4. Internal linking as an active strategy
Internal links are the only ranking factor you fully control, and they are routinely wasted.
The pattern that works:
- Every page links up to its parent category and the homepage.
- Every page links sideways to two to five genuinely related pages, with descriptive anchor text.
- Pillar pages link down to every relevant child page.
- Child pages link up to the pillar with a consistent anchor.
Anchor text matters more than people assume. "Read more" is a missed opportunity; "technical SEO audit checklist" tells the crawler exactly what the destination is about.
Ship this as a rendered audit: fetch your sitemap, load each page, and count inbound internal links per URL. Any page with zero inbound links is your priority list.
5. Structured data
Structured data does not directly raise rankings. It changes how you appear, which changes click-through, which raises rankings.
Priority types by page:
- Article with
author,datePublishedanddateModifiedon every post. - BreadcrumbList on every non-home page.
- Organization with
logoandsameAson the homepage. - FAQPage where you genuinely answer questions - not as a markup trick on content that does not exist on the page.
- Product with
offersandaggregateRatingif you sell anything.
Validate in the Rich Results test, then check Search Console's enhancement reports monthly. Markup that fails validation is worse than no markup.
6. Core Web Vitals
Three metrics, measured on real user data at the 75th percentile:
| Metric | Good | What usually fixes it |
|---|---|---|
| LCP | < 2.5s | Serve HTML from an edge; compress the hero image; preload the LCP element |
| INP | < 200ms | Break up long tasks; defer non-critical JS; avoid heavy hydration |
| CLS | < 0.1 | Set explicit width/height on media; reserve space for late-loading content |
Note the first row. On the overwhelming majority of content sites, LCP is fixed by infrastructure rather than by code: serving pre-rendered HTML from a global network removes the server round trip entirely, and no amount of JavaScript micro-optimisation gets you the same result.
Measure before optimising. Sites routinely spend two weeks shaving 40 kB of JavaScript while their HTML is served from a single region with a 300 ms time-to-first-byte.
7. Content depth and honesty
Google's guidance has been consistent for a decade: the page that most completely satisfies the query wins, all else equal.
Practically, that means:
- Answer the question in the first two hundred words, then elaborate. Burying the answer under an anecdote loses the reader who was going to scroll.
- Show the work. Benchmarks, screenshots, tables, code. Verifiable detail is the strongest differentiator available, because most competitors do not bother.
- State the limits. "This works for sites under 50,000 URLs; above that, shard the crawl" is more persuasive than an unqualified claim, and it earns citations.
- Update rather than publish-and-forget. A page refreshed quarterly with a visible
dateModifiedoutperforms a new thin page almost every time.
8. Links out
Outbound links to authoritative sources are a relevance signal and a trust signal, and they cost nothing. Link to primary sources - the specification, the study, the official documentation - not to aggregators paraphrasing them.
The exception is competitors. Linking to a competitor page from your own commercial page is rarely a good trade, and you can cite the underlying data without sending the click.
The order matters
If you have one week: do step 1, then step 2, then step 4. That combination typically produces the largest measurable movement.
If you have one month: add 3, 5 and 6.
If you have a quarter: add 7 and 8, and set a recurring reminder to re-audit step 1, because broken things accumulate while you are working on step 7.