On-page optimization is the half of local SEO that lives on your website — the titles, headings, content, schema, and internal links that determine how you rank in the organic portion of local SERPs and how strongly your pages reinforce your Google Business Profile. While the Local Pack gets much of the attention, the organic listings on a local SERP are won through on-page work, and a systematic on-page audit is how you find and fix the gaps. This checklist provides a complete framework.
You can run these checks yourself with Local SERP Checker, a free tool that opens the real localized Google results for any city, ZIP, or neighborhood.
This article is a comprehensive on-page local SEO audit checklist, organized by element, that any local SEO team can run across a site. The framing draws from the audit process we use, tied throughout to UULE-based local SERP observation so the audit reflects what actually ranks rather than generic best practices.
Start With SERP Context
Before auditing pages, establish SERP context. Run UULE-based local SERP checks for the site's priority queries across its service area. This reveals:
- What content types and structures rank for each query.
- Who the organic competitors are.
- What SERP features are present.
- The intent Google assigns each query.
This context turns the audit from a generic checklist into a targeted comparison — auditing whether each page matches what actually ranks, not just whether it ticks best-practice boxes.
Section 1: Title Tags
Audit every important page's title tag:
- Is the title present and unique?
- Does it follow a proven local formula (service + location + brand)?
- Are the service and location front-loaded?
- Is it within display length (~50-60 characters)?
- Does it match the target query's intent?
- For location pages, is each title genuinely distinct (not templated sameness)?
- Are honest modifiers used to sharpen intent and CTR?
Flag pages with missing, duplicate, truncated, or vague titles.
Section 2: Meta Descriptions
Audit meta descriptions:
- Is a description present (not blank)?
- Does it follow a CTR-driving pattern (service + location + value + CTA)?
- Is it within display length (~150-160 characters)?
- Does it include a call to action?
- Is it unique per page?
- Does it match the page content and query intent?
Flag pages with blank, duplicate, or weak descriptions — these are CTR opportunities.
Section 3: Headings
Audit heading structure:
- Is there exactly one H1, clearly stating the page's service + location focus?
- Do H2s and H3s form a logical hierarchy?
- Are headings NLP-friendly — natural language, clear intent, entity-rich?
- Are question-based headings used to capture featured snippets and PAA?
- Are location entities incorporated naturally (not stuffed)?
- Do headings match the content beneath them?
Flag pages with missing H1s, multiple H1s, broken hierarchy, or keyword-stuffed headings.
Section 4: Content Quality and Depth
Audit the body content:
- Is the content genuinely unique (not duplicated across location pages)?
- Does it match the depth the SERP rewards for the target query?
- Does it cover the relevant entity space (service, related concepts, location)?
- Does it include genuine local relevance (area specifics, local proof)?
- Does it address the question space (PAA questions)?
- Is it well-written, accurate, and useful?
- Does it demonstrate E-E-A-T where relevant?
Flag thin content, near-duplicate location pages, and content that doesn't match SERP depth or intent.
Section 5: Local Relevance Signals
Audit on-page local signals:
- Is NAP present and consistent with the GBP and citations?
- Are location entities established clearly?
- Is there genuine local content (landmarks, neighborhoods, local proof)?
- Are service areas referenced accurately?
- Are local testimonials and case studies present?
Flag pages lacking local relevance — generic pages that could apply anywhere.
Section 6: Schema Markup
Audit structured data:
- Is LocalBusiness (or a specific subtype) schema present?
- Is the NAP in schema consistent with the page and GBP?
- Is Service schema present on service pages with areaServed?
- Is FAQPage schema present where there's Q&A content?
- Is BreadcrumbList schema present for hierarchy?
- Does the schema validate (Rich Results Test)?
- For multi-location, is per-location schema present?
Flag missing schema, validation errors, NAP inconsistencies, and generic-instead-of-specific types.
Section 7: Internal Linking
Audit internal linking:
- Is the page linked from relevant hub pages (no orphans)?
- Does it use a hub-and-spoke structure?
- Is anchor text descriptive and mapped to canonical pages?
- Are there contextual in-content links to related pages?
- Is authority channeled to priority pages?
- Are there cannibalization issues (inconsistent anchors, competing pages)?
Flag orphan pages, inconsistent anchors, and cannibalization.
Section 8: Page Experience
Audit technical page experience:
- Does the page load fast, especially on mobile?
- Is it mobile-friendly and responsive?
- Does it meet Core Web Vitals thresholds?
- Is the layout clean and scannable?
- Are there intrusive interstitials or layout shifts?
Flag slow pages, mobile issues, and Core Web Vitals failures.
Section 9: URL Structure
Audit URLs:
- Are URLs clean, descriptive, and readable?
- Do location pages use a logical structure (/locations/houston/)?
- Are URLs consistent across the site?
- Do they avoid unnecessary parameters or excessive depth?
- Is the canonical URL correct (self-referencing for unique pages)?
Flag messy, inconsistent, or improperly canonicalized URLs.
Section 10: Conversion Elements
Audit conversion optimization:
- Are CTAs prominent and clear (call, book, estimate)?
- Is the phone number visible and click-to-call enabled on mobile?
- Are trust signals (reviews, credentials) present near decision points?
- Is contact easy (forms, chat)?
- Is the page optimized for the action the searcher wants to take?
Flag pages that rank but lack conversion paths.
Section 11: Images and Media
Audit visual content:
- Are images optimized (compressed, properly sized)?
- Do they have descriptive alt text with relevant terms?
- Are local images used (real photos of local work)?
- Are file names descriptive?
- Is media contributing to page experience, not slowing it?
Flag unoptimized images, missing alt text, and generic stock-only imagery.
Section 12: Cannibalization and Duplication
Audit for cannibalization and duplication across the site:
- Are there multiple pages targeting the same query and intent?
- Are location pages near-duplicates of each other?
- Is anchor text consistent in pointing each term to one canonical page?
- Are there indexation issues (pages excluded as duplicates)?
Flag cannibalization and duplication for consolidation or differentiation.
Turning the Audit Into Action
A completed audit produces findings; the value is in the prioritized action plan. Prioritize fixes by:
- Impact — title and content fixes often move rankings most.
- Effort — quick wins (title fixes, schema additions) before heavy lifts (content overhauls).
- SERP context — fixes that close gaps with ranking competitors.
Each finding should tie to a specific page, a recommended fix, and a hypothesized impact. Re-audit and re-check SERPs after implementing to measure results.
Audit Cadence
A practical on-page audit cadence:
- Comprehensive audit at engagement start and annually.
- Page-level audits before and after building or revising key pages.
- Spot checks when a page underperforms or a SERP shifts.
- Quarterly cannibalization and technical reviews as the site grows.
Documenting and Scoring the Audit
To make on-page audits comparable and trackable, document and score them systematically. A practical approach:
- Score each section (titles, headings, content, schema, etc.) on a consistent scale — for example, green (good), yellow (needs work), red (broken).
- Record specific findings per page, with the issue and recommended fix.
- Compute a page-level score summarizing the page's on-page health.
- Compute a site-level score aggregating across pages.
- Track scores over time to measure improvement across audit cycles.
Scoring turns a qualitative audit into a measurable one. A site that scores 60% on-page health at the first audit and 85% six months later has a concrete record of progress. Scoring also helps prioritize — the reddest sections on the highest-value pages get attention first. For agencies, consistent scoring across clients enables benchmarking and clear client communication about on-page health.
Coordinating On-Page With Off-Page and GBP
On-page optimization is one of three pillars of local SEO, alongside the GBP (driving the pack) and off-page signals (citations, links, reviews driving prominence). An on-page audit is most valuable when coordinated with the others:
- On-page reinforces the GBP — location pages support the profiles they're linked to, with consistent NAP and