On-Page SEO Must-Haves: What Every URL Actually Needs
The hard short list: title, description, H1/H2/P, page speed, internal links, image SEO, and a focus keyword that matches search intent.
There are an endless number of levers, tools, and tweaks around SEO. Pull all of them at once and no page ever ships — and the points that actually move rankings get drowned out in the noise. This article does the opposite: it’s the hard short list every URL should be checked against before it goes live or gets further work.
Everything here applies regardless of industry, CMS, or site size. Anything beyond it — structured data, hreflang, E-E-A-T signals, GEO optimization — is a bonus and comes in the second pass. Mandatory first.
The logic: must-have vs. nice-to-have
The main mistake in on-page audits is that the list grows too long. A page has 80 boxes to tick, nobody finishes them, and at the end nothing is genuinely good.
Hence the split:
- Must-have = without these points, the page does not rank reliably, no matter how good everything else is.
- Nice-to-have = worth doing, but only after the must-haves are in place and there’s a real market opportunity.
This list is the must-haves — the things every URL on a serious website needs. Once they’re in place, the page is ready to build organic visibility. Only then is it worth discussing schema markup, FAQ blocks, or GEO formats.
The must-haves at a glance
- SEO title and meta description
- H1 (exactly one per page)
- H2 structure that splits the page logically
- P tags for any flowing text (no styled
<div>) - Page speed with a mobile score above 50 (better: 70+)
- Internal links to the page (with the right anchor text)
- Internal links from the page to related URLs
- Images with proper image SEO and small KB sizes
- A clear focus keyword that matches search intent
If those nine points are clean, the page has every prerequisite to rank. What it actually achieves depends on competition and domain strength — but the foundation is there.
1. SEO title and meta description
The title is the single most prominent ranking and click signal. It shows up in the SERP as the headline and is the first thing a human sees — and the strongest signal Google’s algorithm has for “what is this page about?”.
What a good title delivers:
- Contains the focus keyword, ideally near the front.
- Stays under ~60 characters, otherwise Google truncates.
- Is click-worthy, not just correct. The title competes against 9 other entries in a list.
- Is unique per URL — no two pages on the same domain should share a title.
The meta description is not a direct ranking factor, but it steers click-through rate. A page in position 5 with a strong CTR climbs; one in position 3 with a weak CTR drops. Descriptions under 160 characters are safe; anything longer gets cut on most SERP layouts.
Note: Google occasionally rewrites both title and description if your input doesn’t fit the query. That’s not a disaster, it’s a hint that your suggestion was too generic for that query.
2. H1 — exactly one per page
The H1 is the page’s main content headline. It’s not the title — the two are allowed to differ and often should, because the title is optimized for the SERP and the H1 for the reader on the page.
Rules:
- Exactly one H1 per URL. Multiple H1s aren’t “technically forbidden”, but they dilute the signal and usually point to messy templates.
- The H1 contains the focus keyword, ideally as naturally as possible.
- The H1 sits in the visible area at the top, not hidden behind a hero image with no text.
In modern Astro/React/Vue projects the most common bug is: the layout template sets an H1 (e.g. the site name in the header) and the page sets one too. Better to use <p> or <span> in the header and reserve the H1 for the actual page heading.
3. H2 structure — split the page logically
H2 is the structural layer. A page without H2s is a wall of text and gets flagged as poorly structured by both readers and search engines.
What H2s should do:
- Every major section gets an H2. If content runs more than 200–300 words without a subheading, an H2 is missing.
- H2 text is descriptive, not poetic. “What is Smart Bidding?” beats “The Magic of Algorithms.” Descriptive headings rank in featured snippets; abstract ones don’t.
- Order is semantic: H1 → H2 → H3, not H2 → H4 → H1. Nested heading hierarchies help screen readers and crawler understanding alike.
H2s are also the natural home for secondary keywords. Main keyword in H1 and title, related terms in H2s.
4. P tags — no styled <div>
This sounds trivial, but it isn’t. Many modern frameworks and page builders produce layouts where text sits inside <div> containers. It looks identical visually — semantically it isn’t a paragraph.
Search engines, screen readers, and reader modes rely on semantic tags. If a page looks like a collection of boxes without flowing text, the signal “this URL has substantial, readable content” is lost.
The rule is simple: every spoken paragraph belongs in a <p> tag. Inline markup like <strong>, <em>, <a>, and lists (<ul>/<ol>) belong with it. Visual styling comes through CSS, not through container tricks.
Also important: lists are real lists, not stacked paragraphs with bullet symbols. If three points sit in a row, they go into <ul> — search engines recognize list structures and use them for rich results.
5. Page speed — mobile score above 50, better 70+
Speed has been a hard ranking signal since the Core Web Vitals updates. A page can be content-perfect and still fail to rank because it takes 8 seconds to load on a mid-range smartphone with average mobile coverage.
The floor: PageSpeed mobile score above 50. Realistically aim for 70+, because that’s the threshold where Google clearly sees the page as “works on mobile.”
What kills speed most:
- Huge hero images without compression. A 2 MB JPEG served at 1200 px wide eats every gain you made elsewhere.
- Render-blocking JavaScript. Frameworks loaded synchronously in
<head>block the LCP metric. - Third-party scripts without lazy loading — cookie banners, chat widgets, tracking pixels. Each one costs valuable milliseconds.
The mandatory tool for checking is PageSpeed Insights. It returns mobile and desktop scores plus concrete optimization hints. The mobile score is the more important of the two — Google has been mobile-first indexing for years.
6. Internal links to the page
A perfectly optimized page that nothing internal links to is an island — Google will find it (via sitemap), but it gets no internal link equity. That almost always means the page won’t rank despite strong on-page factors.
Rule of thumb: every important URL gets at least 2–3 internal links from thematically related pages.
What matters for the anchor text:
- Anchors are descriptive, not generic. “Click here” or “learn more” gives Google zero information. “On-Page SEO Must-Haves” or “Keyword Research for B2B” are clear signals.
- Anchors contain the focus keyword, naturally, without spamming.
- Variation is good. If 30 internal links to one page all use the exact same anchor, it looks artificial. Three to five natural variants are better.
Where internal linking actually happens: from related blog posts, glossary entries, pillar pages, topical hub pages. Not in the footer (counts essentially zero for Google) and not in mega menus (same effect).
7. Internal links from the page outward
Mirror image of the previous point: the page itself should link to 3–5 thematically related URLs, not in a “related articles” box but inside the body text, where it makes semantic sense.
This helps three things at once:
- Crawlers understand the topical context of the page better when they can see what it connects to.
- Users stay on the site longer when they can click straight through to deeper content.
- Link equity gets distributed, not pooled in a dead end.
Important: not every page should link to the homepage or services overview. That’s standard footer business. Far more interesting are the lateral links — to glossary terms, deep blog posts, case studies.
8. Image SEO and KB size
Images do two jobs: they improve readability and they’re ranking objects in their own right (Google Images). Both only work if they’re embedded cleanly.
What every page needs in image SEO:
alttext on every content-relevant image. Descriptive, not keyword-stuffed. “Person at laptop working on an SEO audit” is good. “SEO SEO SEO optimization” is bad.- File names are speaking.
martin-rau-keyword-research.webpbeatsIMG_4432.JPG. - Format: WebP or AVIF, not JPEG/PNG for photographic content. Both formats save 30–50% size over JPEG.
- Compression is aggressive. A modern hero image often comes in under 100 KB, an inline image under 50 KB. Anything over 200 KB deserves a question.
- Responsive
<img srcset>. Mobile gets a small variant, desktop a larger one — not one size for all.
Tools like Squoosh (Google), cwebp/avifenc for batch conversion, or Astro Image / Next Image for built-in optimization. In Astro projects <Image /> from astro:assets is the default — it writes responsive sources automatically and converts to WebP.
9. Focus keyword + search intent
This is where most pages fail — and the most important point on the list.
A page must have a single clear focus keyword. Not two, not three. One. The focus keyword is the question or term the page is meant to rank for. Everything else — semantically related terms, variations, long-tails — follows naturally once the main term is set.
But the more important part is: the focus keyword has to match search intent.
Search intent answers: what does the user actually want when they search for this term? Four main intents:
- Informational — “What is Smart Bidding?” (wants to learn)
- Navigational — “Google Ads login” (looking for a specific page)
- Commercial — “best SEO agency Berlin” (comparing providers)
- Transactional — “buy SEO audit” (wants to purchase now)
Writing an informational explainer for a commercial keyword does not rank — no matter how good the article is. Google sees provider lists and comparison pages in the top 10 and filters out an explainer because it doesn’t fit the intent class.
Practical test before writing: type the focus keyword into Google. What’s in the top 10? Explainers? Product pages? Guides? Comparisons? That format is what your page must take — or a clearly better one in the same intent class.
B2B special case: jargon vs. plain language
In B2B there’s a question that comes up over and over: do we optimize for the technically correct terms, or for what our customers actually google?
Example: a tool for managing field-service teams. Technically that’s Field Service Management Software. End customers, however, search for “tradesperson software,” “service-team scheduling tool,” or “appointment software for technicians.” The technical term has 200 searches a month; the colloquial variants together have 8,000.
Our recommendation: serve both, but separate them strategically.
- Pillar and service pages rank for the technical terms. That’s the position you need for competitive comparisons, investors, and serious buying centers.
- Blog posts and landing pages rank for the colloquial variants. That’s where the search volume sits and the traffic comes from.
Optimize only the technical terms and you lose the volume. Optimize only colloquial language and you look unprofessional the moment serious research starts. Splitting by page type resolves the dilemma.
What’s not on this list (and why)
Deliberately not on the must-have list:
- Schema.org / structured data. Useful, but not a direct ranking factor in the strict sense. Worth it for FAQ pages, product pages, recipes, events. On 80% of standard pages it brings rich-result chances rather than ranking lift.
- hreflang. Only relevant if the page is multilingual or multi-regional.
- AMP / mobile-specific URLs. Increasingly deprecated, Google itself has gutted AMP.
- Backlink building. Off-page, not on-page — wrong list.
- GEO / visibility in AI answers. Important topic, but a bonus: get on-page right first, then move on to Generative Engine Optimization.
- E-E-A-T signals. Author boxes, about pages, trust markers. Crucial for YMYL topics (medical, finance, legal), bonus material in most other domains.
None of these points are wrong. They’re just not what a page needs first.
Practical workflow: the must-have checklist per URL
If you use these nine points as an audit checklist, the fastest path is:
- Open the URL, check title and description (browser tab + view source). Both present, both within limits, both unique?
- Inspect the DOM — one H1, a sensible H2 structure, text inside
<p>tags? - Run PageSpeed Insights. Note the mobile score.
- Check anchor text. Which pages link to this URL? With what anchors? Does the page itself link out sensibly?
- Walk through the images. Alt text present? KB size acceptable? WebP/AVIF in use?
- Confirm the focus keyword. What’s in the Google top 10 right now for this keyword? Does the page match the dominant intent class?
This audit takes 5–10 minutes per page. If seven or more points are clean, the page is SEO-ready. With fewer, fix things before moving to further optimization.
Bottom line
On-page SEO isn’t a bottomless optimization graveyard. There’s a hard must-have list — and it’s exactly what’s covered here. Run a page cleanly through these nine points and the foundation is in place. Anything built on top of that is a bonus and comes at the right moment.
The most common mistake isn’t that the list is too short. The most common mistake is that out of 100 possible optimizations, 60 get started and none get finished. These nine first, completely, per URL. The rest comes after.