Skip to content

Local SEO Module

Module ID: local_seo | Type: Conditional (auto-detected) | Profiles: full, local

The Local SEO module audits signals critical for businesses that serve customers in a geographic area -- checking structured data, Google Business Profile integration, NAP consistency, click-to-call links, and local trust signals.


What It Checks

Check What It Looks For
LocalBusiness schema JSON-LD with @type LocalBusiness or subtypes (Restaurant, Store, Dentist, etc.)
NAP in schema Name, Address, Phone present in structured data
Google Maps embed Embedded Google Maps iframe
Click-to-call <a href="tel:..."> links
WhatsApp link Links to wa.me or api.whatsapp.com
GBP link Link to Google Business Profile
Service area Service area information in schema or content
Opening hours OpeningHoursSpecification in schema
Review schema AggregateRating or Review in structured data
Trust signals Awards, certifications, accreditations, testimonials
Prominent CTAs Visible call-to-action buttons (call, book, quote)

Scoring Breakdown

Criterion Deduction Condition
No LocalBusiness schema -20 No JSON-LD with local business type
Missing name in schema -10 No business name in structured data
Missing address in schema -10 No address object in structured data
Missing phone in schema -10 No telephone property
No Google Maps -5 No embedded map
No click-to-call -10 No tel: links
No opening hours -5 No hours in schema
No reviews/ratings -5 No aggregate rating schema
No trust signals -5 No testimonials, awards, or certifications
No prominent CTA -10 No visible call-to-action

Auto-Detection Signals

The module activates when any of these patterns match:

  • "@type": "LocalBusiness" (or subtypes: Restaurant, Store, AutoRepair, Plumber, Dentist, Electrician, LegalService, MedicalBusiness, RealEstateAgent, FinancialService, etc.)
  • google.com/maps/embed or maps.googleapis.com
  • href="tel:"
  • service-area in class or ID attributes

Example Findings

P0 CRITICAL: No LocalBusiness structured data
  Search engines cannot identify this as a local business without
  LocalBusiness JSON-LD schema. This impacts local pack rankings.
  Fix: Add JSON-LD with @type "LocalBusiness" (or a specific subtype)
       including name, address, telephone, and openingHours.
  Effort: Medium

P1 HIGH: No click-to-call link
  Mobile users expect to tap a phone number to call. Without tel: links,
  users must copy and paste the number.
  Fix: Wrap phone numbers in <a href="tel:+441234567890">01234 567890</a>
  Effort: Low