Why most SEO checklists don't actually get used
The typical on-page SEO checklist starts with "install Yoast" and goes downhill from there. By item three it's talking about schema markup JSON-LD, and the person responsible for actually publishing the page has already closed the tab.
On-page SEO is not as complicated as it looks when you understand what each element is actually doing. This guide covers every element a content publisher needs to understand, explains the purpose in plain language, and includes concrete before/after examples for the decisions that matter most.
Use this as a pre-publish checklist. Go through it before every page goes live.
Title tags: the most important 60 characters on your page
The title tag is the blue linked text that appears in Google search results and in browser tabs. It's the single highest-signal on-page SEO element you control.
What to get right:
- Put your primary keyword near the beginning
- Keep it under 60 characters (Google truncates longer titles in results)
- Make it accurate — title tags that don't match the page content hurt click-through rates
- Every page needs a unique title tag; duplicate titles tell Google the pages are interchangeable
Before: Accessibility Services | Programs | City of Maple Ridge
After: Accessibility services and accommodations | City of Maple Ridge
The after version leads with the keyword phrase users are likely searching for, removes unnecessary pipe-separated category structure, and stays under 60 characters.
One common mistake: using your organization name at the start of every title. That real estate is better used for descriptive keywords. Save the brand name for the end if you need it at all.
Meta descriptions: write for clicks, not for ranking
Meta descriptions are the two-line summaries that appear below the title in search results. Google doesn't use them as a ranking signal, but searchers read them when deciding whether to click. A well-written meta description improves click-through rate, which has an indirect effect on search visibility over time.
What to get right:
- Keep it between 120-160 characters
- Include your primary keyword naturally
- Write it as a brief answer or promise: tell the user what they'll find on the page
- End with a quiet call to action where it fits naturally
Before: Learn more about our accessibility programs and services.
After: Find accessibility accommodations, adaptive programs, and services for residents with disabilities in Maple Ridge. Updated for 2024.
The after version is specific, keyword-rich, and gives the user a reason to click. "Learn more" is not a reason to click.
If you don't write a meta description, Google will generate one from page content. Sometimes that works fine. Often it pulls an irrelevant sentence from deep in the page body. Writing it yourself is always better.
Heading hierarchy: structure for humans and crawlers
Your heading structure (H1, H2, H3) serves two audiences simultaneously: users who scan pages to find what they need, and search engines that use headings to understand page structure and topic coverage.
The rules:
- One H1 per page, usually the page title. It should contain your primary keyword
- H2s are your main section headers. Include secondary keywords where they fit naturally
- H3s are subsections within H2 sections. Never skip levels (don't go H1 → H3)
- Headings should describe what follows, not tease it
Before:
H1: Services
H2: More Info
H3: How to ApplyAfter:
H1: Accessibility services for Maple Ridge residents
H2: Available accessibility programs
H3: How to apply for accommodation support
H2: Adaptive recreation and community programs
H2: Contact the accessibility coordinatorThe before example would score the page for "services" and "more info" — which nobody searches for. The after example signals to Google exactly what the page covers, and signals to users that they're in the right place.
Keyword placement: natural, not mechanical
Keyword placement is where on-page SEO advice gets most frequently misapplied. "Keyword density" is not a concept you need to manage. Stuffing a keyword into every other sentence does not help rankings and makes content unreadable.
What does matter:
Primary keyword in: title tag, H1, first paragraph, at least one H2, and the meta description. That's five placements. Natural, not forced.
Secondary keywords: related terms and synonyms that support the topic. If your primary keyword is "accessible transit," secondary keywords might include "para-transit," "AODA transportation," "wheelchair accessible bus," and "accessible route planning." Use them where they make sense.
Long-tail variations: Full questions or phrases your audience might search. "How to request accessibility accommodations in Maple Ridge" is a long-tail variation of the primary keyword. If your content answers that question, include the question as a heading or in the body text. Understanding search intent helps you determine which questions are worth targeting and what format the answer should take.
The test for right keyword placement is simple: does the page read well out loud? If it sounds like a person wrote it, you're fine. If it sounds like a robot was counting words, you're not. The goal is always writing for both search engines and real people.
Internal linking: the underused SEO tool
Internal linking is consistently underused by content publishers, even though it's one of the most straightforward ways to improve both SEO and user experience.
Every page you publish should:
- Link to 2-5 relevant pages elsewhere on your site
- Use descriptive anchor text that tells users and search engines what they'll find
Before: Click here to read our accessibility policy.
After: Read our [accessibility policy and accommodation request process](/accessibility-policy) for full details.
The anchor text "accessibility policy and accommodation request process" tells Google what the linked page is about. "Click here" tells Google nothing.
When you link from a high-traffic page to a lower-traffic page, you pass authority. This is how internal linking supports SEO directly: it distributes the value earned by popular pages to the rest of the site.
Don't link to the same page repeatedly from the same page. One internal link per destination per page is enough.
Image optimization: the element most commonly skipped
Images slow pages down and are invisible to search engines unless you've added the right metadata. Every image on your page should have:
Alt text: A description of what the image shows, written for a user who can't see it. This is also where search engines get context for the image. Write naturally: "Photo of the Maple Ridge Community Centre entrance with a wheelchair ramp and accessible parking spaces" is better than "community centre accessibility ramp photo wheelchair."
Alt text is empty (alt="") for purely decorative images that add no informational value (a dividing line, a background texture, a stock photo that adds no meaning to the page). Do not skip the attribute — skip the value.
File names: Name images before uploading them. accessible-entrance-maple-ridge.jpg is better than IMG_4821.jpg for both search and file management.
File size: Compress images before upload. Large images are the most common cause of slow-loading pages. Tools like Squoosh (free, browser-based) can reduce a 3MB photo to under 200KB with no visible quality loss at web display sizes.
Dimensions: Upload images at the size they'll be displayed. A 4000px-wide hero image that displays at 1200px wide is loading four times more data than necessary.
URL structure: keep it clean
URL structure is set at the point of creation and is costly to change later (because changing it requires redirects, one of several technical SEO issues content managers can fix without developer help). Get it right before you publish.
Good URL habits:
- Use hyphens between words, not underscores (
/accessibility-services, not/accessibility_services) - Keep URLs short and descriptive — avoid parameter strings and dates where possible
- Match the URL slug to the page topic, not the organizational hierarchy
- Lowercase throughout
Before: /Programs-and-Services/Community/Accessibility/2024/OurServicesPage.aspx
After: /accessibility-services
The before URL is a real pattern found on many municipal websites. The after version is shorter, crawlable, shareable, and will still be valid if the year or category structure changes.
Structured data: the advanced move worth knowing
Structured data (also called schema markup) is a way of adding machine-readable metadata to your HTML so Google can display richer search results: star ratings, event dates, FAQ dropdowns, job posting details. It doesn't directly improve rankings, but it can significantly improve click-through rates by making your result take up more space in search results.
For most content publishers, two types are most relevant:
FAQ schema: If your page has a frequently asked questions section with clear question-answer pairs, FAQ schema can display those answers as expandable dropdowns directly in search results.
Article or Webpage schema: Basic structured data that tells Google the page is an article, who wrote it, and when it was published. This supports author authority signals, especially on news or blog content.
Many CMS platforms (WordPress with Yoast, Squarespace, Webflow) generate basic structured data automatically. Check Google's Rich Results Test to see what's currently being generated for your pages.
You don't need to write JSON-LD by hand. If your CMS doesn't generate it automatically, there are plugins and tools that handle it. What matters as a content publisher is knowing what types of structured data apply to your content and checking that the right type is active.
The pre-publish checklist
Run through this before every page goes live.
Title and meta:
- [ ] Title tag contains primary keyword, under 60 characters, unique
- [ ] Meta description written (120-160 characters), specific, not generic
Headings:
- [ ] One H1, contains primary keyword
- [ ] H2s cover main sections with secondary keywords where natural
- [ ] No skipped heading levels
Content:
- [ ] Primary keyword in first paragraph
- [ ] Related terms and synonyms used naturally throughout
- [ ] Long-tail question variations addressed where applicable
Links:
- [ ] 2-5 internal links with descriptive anchor text
- [ ] No "click here" or "read more" anchor text
Images:
- [ ] Every non-decorative image has meaningful alt text
- [ ] Decorative images have empty alt attribute (
alt="") - [ ] Images compressed and correctly sized before upload
- [ ] File names are descriptive
URL:
- [ ] URL is short, descriptive, lowercase, hyphen-separated
Structured data:
- [ ] Confirm CMS is generating appropriate schema for content type
If you'd like a custom pre-publish checklist tailored to your CMS and content types, get in touch and we can build one that fits your team's workflow.