Local SEO Pro
Manage location data, schema, nearest-location content, and visitor discovery from one WordPress workspace
Overview
ProRank SEO's Local SEO module provides a comprehensive solution for businesses to improve their local search visibility. Whether you have a single location or manage hundreds of locations, our system handles everything from schema markup to KML sitemaps with schema preview and validation and AI optimisation.
The module features four tabs: Locations Manager for managing your business locations,Schema & Settings for configuring business information and schema markup,Maps & GBP for Google Business Profile tools, and Nearest Locations for page rules, display settings, and background geocoding.
Key Features
Multi-Location Management
Add, edit, and manage unlimited business locations with full address, contact, and hours information
Advanced Schema Markup
LocalBusiness schema configuration with business type selector, hours, and schema preview and validation
KML Sitemap Generation
Automatic KML file creation at /locations.kml for Google Maps integration
Nearest Locations
Append cache-safe local content and real distances to matching landing pages using safe wildcard rules
Store Finder
Publish a searchable, filterable location list with the [prorank_store_finder] shortcode
AI-Powered Optimisation
Generate SEO-optimised descriptions and keywords for each location using AI
Business Details
Logo URL field and business details configuration
Schema Preview & Validation
Schema preview with validation and error reportingg
How It Works
1. Access Local SEO
Navigate to ProRank SEO → Local SEO in your WordPress admin menu. The unified interface opens with Locations Manager as the default tab.
2. Configure Business Information
Click on the Schema & Settings tab to set up your organization details, including name, logo URL, address, contact information, and social profiles. All settings are properly sanitized and saved via WordPress options API.
3. Add Business Locations
Use the Locations Manager to add your business locations. Each location can have complete NAP (Name, Address, Phone) data, geo-coordinates, opening hours, and AI-generated descriptions.
4. Configure Nearest Locations
Open the Nearest Locations tab, add safe page-slug rules, choose miles or kilometres, and run background geocoding. Page rendering reads only saved coordinates.
5. Publish a Store Finder
Add [prorank_store_finder] to a page. Visitors can search active locations, filter opening hours and amenities, and optionally calculate nearby results after clicking the location button.
6. Enable KML Sitemap
Activate the KML feature to automatically generate a Google-compatible KML file at/locations.kml containing all your locations with coordinates. Submit/locations-sitemap.xml as the XML sitemap.
7. Validate & Optimise
Run the schema validation tool to check for errors and get recommendations. Use the AI optimisation feature to generate SEO-friendly descriptions for all locations automatically.
Technical Implementation
Admin UI
The Local SEO admin page is a React/TSX application mounted at src/admin/pages/LocalSEO/index.tsx.
REST API Endpoints
- •
/prorank-seo/v1/local-seo/locations— CRUD for locations - •
/prorank-seo/v1/local-seo/schema-settings— Get/update schema config - •
/prorank-seo/v1/local-seo/schema-preview— Preview generated schema - •
/prorank-seo/v1/local-seo/validate— Validate schema markup - •
/prorank-seo/v1/local-seo/nearest-locations— Read or update Nearest Locations settings - •
/prorank-seo/v1/store-finder/search— Public active-location projection used by Store Finder - •
/prorank-seo/v1/local-seo/google-business/*— Google Business Profile routes
Security
- • Capability checks (
manage_options) - • Data sanitization with WordPress functions
- • Nonce verification on REST requests
Schema.org Output
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Your Business Name",
"image": "https://example.com/logo.jpg",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main St",
"addressLocality": "New York",
"addressRegion": "NY",
"postalCode": "10001",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 40.7128,
"longitude": -74.0060
},
"telephone": "+1-555-123-4567",
"openingHours": "Mo-Fr 09:00-18:00",
"sameAs": [
"https://facebook.com/yourbusiness",
"https://twitter.com/yourbusiness"
]
}
</script>