SEO guide for local businesses
A practical checklist drawn from Google Search Central, Moz, and web.dev — focused on trades, clinics, hospitality, and services targeting local search.
Local SEO(8)
Complete and verify Google Business Profile
highFill every GBP field — primary category, address, phone, hours, services, and description. Verify ownership so Google trusts you represent the business.
Applies to: * · Source: Google Business Profile Help
Use the most specific primary GBP category
highPick the narrowest primary category (e.g. "Plumber" not "Contractor") and add relevant secondary categories. Categories are major filters in local search.
Applies to: * · Source: Google Business Profile Help
Keep NAP identical everywhere
highMatch name, address, and phone exactly across GBP, website footer, JSON-LD, Yelp, Apple Business Connect, and Bing Places.
Applies to: * · Source: Google Search Central — LocalBusiness schema
Add LocalBusiness JSON-LD on key pages
highUse the most specific schema subtype (Restaurant, Dentist, LegalService). Place markup on homepage, contact, and location pages with NAP, hours, and geo coordinates.
Applies to: has-website · Source: Google Search Central
Build Google reviews steadily
highShare a direct GBP review link. Aim for a consistent trickle (2–5 per week) rather than bulk bursts — review velocity is a Map Pack prominence signal.
Applies to: * · Source: Google Business Profile Help; Search Engine Land
Reply to every review within 72 hours
mediumRespond professionally to positive and negative reviews. Keep replies short, acknowledge issues offline for complaints, and never keyword-stuff responses.
Applies to: * · Source: Google Business Profile Help
Sync top citation directories
mediumAfter GBP and your website, align Yelp, Apple Business Connect, and Bing Places — these cover most citation weight for UK local businesses.
Applies to: * · Source: Google Search Central
Launch GBP-first when no website exists
highWithout a site, GBP is your digital storefront. Complete every field, collect reviews, add photos, and post updates until a one-page site is ready.
Applies to: no-website · Source: Google Business Profile Help
On-page(6)
Write unique title tags (50–60 characters)
highLead with service + borough (e.g. "Plumber Camden | 24hr Emergency"). Keep titles unique, aligned with the H1, and under ~60 characters.
Applies to: has-website · Source: Moz; Semrush
Craft meta descriptions (~105 characters)
mediumSummarise page value in active voice, include the target keyword, and add a soft CTA. Stay concise to avoid mobile snippet truncation.
Applies to: has-website · Source: Semrush on-page checklist
Use one descriptive H1 per page
highEach page needs exactly one H1 stating the main topic. Match search intent, include the primary keyword, and nest H2/H3 subtopics beneath.
Applies to: has-website · Source: Moz; Search Engine Land
Link internally with descriptive anchor text
mediumUse a hub-and-spoke model linking service pillars to FAQs and borough landing pages. Avoid orphan pages and keyword-stuffed anchor text.
Applies to: has-website · Source: Semrush; Search Engine Land
Target service + borough keywords in URLs
highCreate focused URLs like /plumber-camden with matching H1 and title. Pair the trade with the neighbourhood rather than generic "London" pages.
Applies to: has-website, local-service · Source: Semrush local SEO guidance
Target long-tail queries at rank 4
highAt position 4, prioritise specific service + area pages and niche keywords rather than only the head local term you already nearly rank for.
Applies to: rank-4 · Source: SynapseCRO lead model
CRO overlap(7)
Place primary CTA above the fold
highPhone, booking, or quote buttons must be visible without scrolling on mobile. Rank 3–4 listings lose clicks when CTAs sit below the fold.
Applies to: has-website · Source: Google Core Web Vitals; CRO research
Repeat CTAs at decision points
mediumAfter testimonials, service details, and case studies, repeat the same primary action. Long pages should end with a clear next step.
Applies to: has-website · Source: Semrush CRO guidance
Design mobile-first for conversion
highGoogle ranks the mobile version. Use min 44×44px tap targets, readable headlines, and a visible CTA on the first screen.
Applies to: has-website · Source: Google Search Central; web.dev
Show trust signals near CTAs
highDisplay star ratings, review counts, accreditations (Gas Safe, CQC, SRA), and response-time promises adjacent to forms — not in the footer.
Applies to: has-website · Source: Search Engine Land
Treat page speed as a conversion lever
highCompress images (WebP), lazy-load below-fold media, and remove heavy scripts. Good Core Web Vitals correlate with higher conversion rates.
Applies to: has-website · Source: web.dev; PageSpeed Insights
Embed online booking above the fold
highIntegrate booking (Fresha, Calendly, OpenTable) near the top of service pages to reduce friction vs competitors in the Map Pack.
Applies to: beauty, dentist, restaurant, physio, accountant · Source: Local CRO best practice
Prioritise conversion fixes for rank-3 leads
highBusinesses at position 3 are one push from the top — focus on headline clarity, above-fold CTA, and trust signals before net-new content.
Applies to: rank-3, has-website · Source: SynapseCRO lead model
Technical SEO(7)
Target LCP under 2.5 seconds
highPreload hero images, use a CDN, and reduce server response time. LCP is a confirmed ranking and UX signal for competitive local keywords.
Applies to: has-website · Source: web.dev Core Web Vitals
Keep INP under 200 ms
highBreak up long JavaScript tasks and defer non-critical scripts. INP replaced FID in 2024 and measures responsiveness across all interactions.
Applies to: has-website · Source: web.dev — Optimize INP
Stabilise layout (CLS under 0.1)
mediumSet explicit dimensions on images and embeds, reserve space for dynamic content, and avoid injecting elements above existing UI.
Applies to: has-website · Source: web.dev Core Web Vitals
Maintain a clean XML sitemap
highInclude only canonical, indexable URLs. Submit in Search Console, reference in robots.txt, and update lastmod when content actually changes.
Applies to: has-website · Source: Google Search Central
Validate structured data regularly
highRun JSON-LD through Rich Results Test and monitor Search Console. Fix missing properties on LocalBusiness, FAQPage, and BreadcrumbList markup.
Applies to: has-website · Source: Google Search Central
Use schema types that match your vertical
highApply Restaurant, Dentist, LegalService, RealEstateAgent, or other specific subtypes rather than generic LocalBusiness where possible.
Applies to: restaurant, cafe, pub, dentist, solicitor, estate agent, optician · Source: Google Search Central
Fix foundational SEO at rank 4
highRank-4 businesses often lack verified GBP, NAP consistency, mobile speed, and a strong service page. Address basics before advanced tactics.
Applies to: rank-4 · Source: SynapseCRO lead model
Content(4)
Build unique borough landing pages
highOne page per service + area (e.g. "Electrician Islington") with 40–60% unique content: local testimonials, landmarks, and area-specific FAQs.
Applies to: local-service, no-website, has-website · Source: Google doorway pages guidance
Demonstrate E-E-A-T on site and GBP
highShow staff bios with credentials, case studies with outcomes, and original job-site photos. Essential for YMYL trades in London.
Applies to: has-website, ymyl · Source: Google Search Quality Rater Guidelines
Reference local landmarks and neighbourhoods
mediumMention nearby stations, high streets, and borough context naturally. Hyper-local relevance helps match "[service] [area]" queries.
Applies to: local-service · Source: Local SEO neighbourhood targeting
Publish FAQs from real customer questions
mediumAnswer pricing, response times, and service-area questions on-page. Add FAQPage schema where appropriate to capture snippet space.
Applies to: has-website, local-service · Source: Semrush; Google structured data docs
LLM discoverability(5)
Serve meaningful HTML without JavaScript
highAI crawlers often skip JS execution. Use SSR/SSG so title, H1, and body copy appear in curl / view-source — CSR-only shells are partially invisible to LLMs.
Applies to: has-website · Source: LLM SEO / Vercel AI crawler research
Lead with a standalone opening summary
highFirst paragraph should summarize the page in 2–3 sentences: local = who/where/service; personal = who/expertise; global = product/problem solved. Acts as an RAG embedding anchor.
Applies to: has-website · Source: LLM SEO (RAG retrieval best practice)
Use semantic heading hierarchy and scannable layout
mediumOne H1, nested H2/H3, bullet lists over text walls. Clear structure improves semantic similarity matching in AI search — not just traditional rankings.
Applies to: has-website · Source: LLM SEO
Add llms.txt at the site root (optional)
mediumEmerging convention to document AI usage preferences (similar spirit to robots.txt). Low effort, no SEO downside — signals transparency to AI systems.
Applies to: has-website · Source: llms.txt proposal
Fix Google/Bing indexability before LLM tactics
highLLM search retrieves from indexed web content. Valid sitemap, robots.txt, and Search Console coverage are prerequisites — LLM SEO builds on traditional SEO.
Applies to: has-website · Source: Google Search Central; LLM SEO