AGENT SKILLBY AGRICIDANIEL
SEO maps
AT A GLANCE
SEO maps is an SEO agent skill from agricidaniel. Maps platform analysis for local businesses. The agricidaniel/claude-seo repository on GitHub has 10.3K stars and the MIT license. Its SKILL.md runs to about 7,200 words. To add it, run npx skills add agricidaniel/claude-seo --skill seo-maps
- SOURCE REPOSITORY
- agricidaniel/claude-seo (opens GitHub in a new tab)
- REPO STARS
- SOURCE REPOSITORY
- LICENSE
- MIT
- CATEGORIES
- SKILL.MD SIZE
- 50 KB1,367 LINES
QUICK ANSWER
- WHAT IT IS01
- Maps platform analysis for local businesses. Works with external APIs to assess how a business appears on Google Maps, Bing Places, Apple Maps, and OpenStreetMap. The value is a focused slice of search and SEO workflows judgment, useful when several similar skills cover the same ground.
- INPUTS02
- Context for search and SEO workflows: your goals, audience, constraints, and any source material the skill asks for.
- OUTPUT03
- A ready-to-use result for search and SEO workflows: the analysis, copy, or recommendations the agent produces.
INSTALL
One command adds this skill from its source repository.
npx skills add agricidaniel/claude-seo --skill seo-mapsREAD THE SKILL.MD BELOW BEFORE YOU RUN IT. SKILLS INSTRUCT YOUR AGENT.
SKILL.MD
The full file, as published in the source repository. Copy it, download it or open it on GitHub.
ON THIS PAGE · 73
Maps Intelligence (March 2026)#
Maps platform analysis for local businesses. Works with external APIs to assess how a business appears on Google Maps, Bing Places, Apple Maps, and OpenStreetMap.
Boundary with seo-local: This skill analyzes the business on maps PLATFORMS
(via APIs). seo-local analyzes local SEO signals on the WEBSITE (via HTML fetch).
Do not duplicate seo-local on-page analysis. Recommend /seo local <url> for
website-level checks.
Quick Reference#
| Command | What it does | Tier |
|---|---|---|
/seo maps <url> | Full maps presence audit (auto-selects tier) | 0+ |
/seo maps grid <keyword> <location> | Geo-grid rank scan (7x7, 1 keyword default) | 1+ |
/seo maps reviews <business> <location> | Cross-platform review intelligence | 1+ |
/seo maps competitors <keyword> <location> | Competitor radius mapping | 0+ |
/seo maps nap <business-name> | Cross-platform NAP verification | 0+ |
/seo maps schema <business-name> | Generate LocalBusiness JSON-LD from data | 0+ |
/seo maps gbp <business> <location> | GBP completeness audit | 1+ |
Three-Tier Capability Detection#
Before any analysis, detect the available capability tier:
Tier 0 (Free)#
Detection: DataForSEO MCP tools NOT available.
Capabilities: Overpass API competitor discovery, Geoapify POI search, Nominatim geocoding, static GBP checklist, schema generation, cross-platform NAP guidance.
Load: ../seo/references/maps-free-apis.md
Tier 1 (DataForSEO)#
Detection: business_data_business_listings_search MCP tool IS available.
Capabilities: Everything in Tier 0 PLUS geo-grid rank tracking, live GBP profile audit, review intelligence (velocity, sentiment, distribution), GBP post activity, Q&A data, Tripadvisor/Trustpilot reviews.
Load: ../seo/references/maps-api-endpoints.md
Tier 2 (DataForSEO + Google Maps Platform)#
Detection: Tier 1 available AND Google Maps API key in environment.
Capabilities: Everything in Tier 1 PLUS Google Places details, real-time business status, AI-powered place summaries, photo analysis.
Note: Google ToS restricts storage to place_id only. Lat/lng cached 30 days max.
Always communicate the detected tier to the user at the start of analysis.
Geo-Grid Rank Tracking (Tier 1+)#
Simulates Google Maps searches from multiple GPS coordinates to show ranking variation across a geographic area. Requires DataForSEO.
Load: ../seo/references/maps-geo-grid.md for algorithm, SoLV formula, heatmap format.
Load: ../seo/references/maps-api-endpoints.md for Maps SERP endpoint details.
Workflow#
- Geocode business address to get center lat/lng
- Generate grid points (default: 7x7, 5km radius) using Haversine offset formula
- Display cost estimate and ask for confirmation before proceeding
- Fire DataForSEO Maps SERP API calls with
location_coordinateper grid point - Find target business rank at each point
- Calculate SoLV:
(top_3_count / total_points) * 100 - Render ASCII heatmap in output
Cost Warning (REQUIRED)#
Before every geo-grid scan, display:
Geo-Grid Scan: [keyword] at [location]
Grid: 7x7 (49 points) | Keywords: [N] | Est. cost: $[amount]
DataForSEO credits will be consumed. Proceed?GBP Profile Audit (Tier 1 preferred, Tier 0 manual)#
Audits the 25 fields that affect Google Business Profile quality and ranking.
Load: ../seo/references/maps-gbp-checklist.md for full checklist and scoring.
Tier 1 Workflow#
- Fetch business profile via DataForSEO My Business Info API (keyword or CID)
- Map API response fields to 25-field checklist
- Score each field: Present + Optimized = 2pts, Present = 1pt, Missing = 0pts
- Apply industry-specific weight multipliers
- Normalize to 0-100 scale
Tier 0 Workflow#
- Fetch the business website via WebFetch
- Extract any visible GBP signals (Maps embed, place references, review widgets)
- Apply static checklist based on detectable signals
- Mark undetectable fields as "Unknown (requires DataForSEO for live data)"
Review Intelligence (Tier 1+)#
Cross-platform review analysis: velocity, sentiment, rating distribution, fake detection.
Reference: ../seo/references/local-seo-signals.md for benchmarks (shared with seo-local).
Workflow#
- Fetch Google reviews via DataForSEO Reviews API (sort by newest)
- Calculate review velocity: reviews per month over last 6 months
- Check 18-day rule (Sterling Sky): any 3-week gap = ranking risk
- Analyze rating distribution: healthy = bell curve skewed to 5-star
- Calculate owner response rate: responses / total reviews
- Fetch Tripadvisor and Trustpilot reviews (if available)
- Cross-platform comparison table
Fake Review Detection Signals#
Flag reviews matching 2+ of these patterns:
- Uniform timing (multiple reviews same day/hour)
- Reviewer accounts with limited history or single review
- Geographic inconsistencies (reviewer location vs business location)
- Exclusively 5-star velocity spike (vs historical baseline)
- Identical or near-identical text across reviews
- Sudden volume spike without corresponding marketing activity
Competitor Radius Mapping (Tier 0+)#
Identify and analyze competitors within a defined radius.
Tier 0 (Overpass API)#
Load: ../seo/references/maps-free-apis.md for query templates.
- Geocode business address
- Query Overpass API for businesses with same OSM tag within radius
- Parse results: name, address, phone, website, distance from center
- Sort by distance, present as competitor landscape table
Tier 1 (DataForSEO)#
- Use Maps SERP API with business keyword + location
- Extract top 20 competitors with full profile data
- Compare: rating, review count, categories, photos, attributes
- Calculate competitive density score: competitors per km^2
Cross-Platform NAP Verification (Tier 0+)#
Check business listing consistency across Google, Bing Places, Apple, and OSM.
Workflow#
- Search for business name on each platform:
- Google: infer from GBP data or Maps SERP result
- Bing:
WebFetch https://www.bing.com/maps?q=BUSINESS+NAME+LOCATION - Apple: manual check (no public API -- recommend Apple Business Connect at businessconnect.apple.com)
- OSM: Overpass or Nominatim search
- Extract NAP (Name, Address, Phone) from each source
- Compare for consistency: exact match, partial match, missing, or conflicting
- Flag discrepancies as Critical (name mismatch), High (address mismatch), Medium (phone mismatch)
- Recommend claiming unclaimed profiles
Schema Generation (Tier 0+)#
Generate LocalBusiness JSON-LD markup from collected data.
Reference: ../seo/references/local-schema-types.md for industry subtypes (shared with seo-local).
Workflow#
- Determine most specific schema subtype for the industry
- Populate required properties:
@type,name,address,image - Add recommended properties:
telephone,url,geo,openingHoursSpecification,priceRange - Add strategic properties for multi-location:
branchOf,areaServed,sameAs - Add
aggregateRatingif review data available - Output valid JSON-LD block ready for implementation
Do NOT generate self-serving review markup -- Google ignores LocalBusiness review markup from the business itself. Only mark up third-party reviews visible on the page.
Reference Files#
Load on-demand as needed (do NOT load all at startup):
../seo/references/maps-api-endpoints.md: DataForSEO endpoint details, params, costs../seo/references/maps-free-apis.md: Overpass, Geoapify, Nominatim query templates../seo/references/maps-geo-grid.md: Grid algorithm, SoLV formula, heatmap rendering../seo/references/maps-gbp-checklist.md: 25-field GBP audit with industry weights../seo/references/local-seo-signals.md: Ranking factors, review benchmarks (shared)../seo/references/local-schema-types.md: LocalBusiness subtypes by industry (shared)
Output#
Generate MAPS-ANALYSIS-{domain}.md with:
- Maps Health Score: XX/100 with dimension breakdown table
- Capability tier detected (Tier 0 or Tier 1) with explanation of what's available
- Geo-grid heatmap (Tier 1): ASCII grid with SoLV percentage and average rank
- GBP profile audit: field-by-field scoring with industry-specific weights
- Review intelligence: velocity chart, rating distribution, response rate, cross-platform comparison
- Competitor landscape: count in radius, top 5 by rating/reviews, competitive density
- Cross-platform presence: Google/Bing/Apple/OSM listing status
- Schema recommendation: generated LocalBusiness JSON-LD (if missing or incomplete)
- Top 10 prioritized actions (Critical > High > Medium > Low)
- Cost report: DataForSEO credits consumed during analysis (Tier 1 only)
- Limitations disclaimer: what could not be assessed at current tier
Cross-Skill Delegation#
- Website on-page local signals: recommend
/seo local <url> - Full AI search visibility: recommend
/seo geo <url> - Schema validation and fixes: recommend
/seo schema <url> - Live SERP and keyword data: recommend
/seo dataforseo [command]
Error Handling#
| Scenario | Action |
|---|---|
| DataForSEO MCP not available | Drop to Tier 0. Inform user: "DataForSEO not detected. Running free-tier analysis. For geo-grid tracking and review intelligence, install the DataForSEO extension." |
| Business not found in Maps SERP | Try My Business Info with keyword. If still not found, report "Business not found in Google Maps for this location." |
| Geocoding fails (Nominatim) | Ask user to provide coordinates or a more specific address. |
| API rate limit hit | Report the limit. Suggest waiting or using standard (queued) method instead of live. |
| No reviews found | Report zero review state. Recommend review generation strategy with 18-day cadence target. |
| Multi-location detected | Ask user which location to analyze, or offer batch mode with per-location cost estimate. |
Supporting file: LICENSE.txt#
MIT License - see repository root LICENSE file for complete terms.
Copyright (c) 2026 AgriciDaniel
https://github.com/AgriciDaniel/claude-seoSupporting file: skills/seo/references/local-schema-types.md#
<!-- Updated: 2026-03-23 -->Local Schema Types & Industry-Specific Patterns (March 2026)#
Schema is NOT a direct ranking factor (Confirmed: John Mueller, Gary Illyes). It indirectly impacts visibility through rich results (43% CTR increase, Webstix case study), better entity understanding, and AI search features.
Google-Supported LocalBusiness Subtypes#
Food & Dining#
| Schema Type | Use For |
|---|---|
Restaurant | Full-service restaurants |
CafeOrCoffeeShop | Coffee shops, cafes |
BarOrPub | Bars, pubs, taverns |
Bakery | Bakeries |
FastFoodRestaurant | Fast food, quick service |
IceCreamShop | Ice cream, frozen yogurt |
FoodEstablishment | Generic food (avoid if specific subtype exists) |
Healthcare#
| Schema Type | Use For |
|---|---|
MedicalClinic | Clinics, urgent care (eligible for rich results) |
Hospital | Hospitals (eligible for rich results) |
Dentist | Dental offices (eligible for rich results) |
Physician | Individual doctor pages (use with Person) |
Optician | Eye care, optical shops |
Pharmacy | Pharmacies |
MedicalBusiness | Generic medical (avoid if specific subtype exists) |
Legal#
| Schema Type | Use For | Notes |
|---|---|---|
LegalService | Law firms, legal practices | Correct type |
Attorney | DEPRECATED by Schema.org. Use LegalService + Person |
Home Services#
| Schema Type | Use For |
|---|---|
Plumber | Plumbing services |
Electrician | Electrical services |
HVACBusiness | Heating, ventilation, AC |
RoofingContractor | Roofing |
GeneralContractor | General contracting |
HousePainter | Painting services |
Locksmith | Locksmith services |
MovingCompany | Moving services |
HomeAndConstructionBusiness | Generic (avoid if specific subtype exists) |
Real Estate#
| Schema Type | Use For | Notes |
|---|---|---|
RealEstateAgent | Both agents AND brokerages | No RealEstateBrokerage type exists |
Automotive#
| Schema Type | Use For |
|---|---|
AutoDealer | Sales departments |
AutoRepair | Service departments |
AutoPartsStore | Parts departments |
Other Common Local Types#
AnimalShelter, BeautySalon, ChildCare, DaySpa, DryCleaningOrLaundry, EmergencyService, EmploymentAgency, EntertainmentBusiness, FinancialService, FireStation, FurnitureStore, GasStation, GolfCourse, GovernmentOffice, HealthClub, Hotel, InsuranceAgency, Library, LodgingBusiness, NightClub, PetStore, PoliceStation, PostOffice, RecyclingCenter, ShoppingCenter, SkiResort, SportsActivityLocation, Store, TouristInformationCenter, TravelAgency, VeterinaryCare
Required vs Recommended Properties#
Per Google Developers documentation (updated December 10, 2025, Confirmed).
Required (Minimum)#
| Property | Type | Notes |
|---|---|---|
name | Text | Business name, must match GBP exactly |
address | PostalAddress | With streetAddress, addressLocality, addressRegion, postalCode |
Recommended#
| Property | Type | Notes |
|---|---|---|
aggregateRating | AggregateRating | Rating summary with reviewCount |
geo | GeoCoordinates | Minimum 5 decimal places (Confirmed, ~1.1m accuracy) |
openingHoursSpecification | OpeningHoursSpecification | Standard, late-night, 24h, seasonal |
telephone | Text | Must match GBP and page NAP |
url | URL | Canonical URL for this location |
priceRange | Text | Under 100 characters |
image | URL | Business photo |
review | Review | Individual reviews |
department | LocalBusiness | For nested departments (auto dealers) |
menu | URL or Menu | Restaurants only |
servesCuisine | Text | Restaurants only |
SAB-Specific#
| Property | Type | Notes |
|---|---|---|
areaServed | Place/GeoShape | NOT in Google's official recommended list but supported by Schema.org. Industry-recommended for SABs. Use named cities with sameAs links to Wikipedia/Wikidata. |
Industry-Specific Schema Patterns#
Restaurant#
Restaurant (or specific subtype)
+ Menu > MenuSection > MenuItem (name, price, nutrition, suitableForDiet)
+ ReserveAction (booking capabilities)
+ OrderAction (takeout/delivery)
+ servesCuisine, acceptsReservationsNote: Google Food Ordering (GFO) direct checkout discontinued June 2024. "Order Online" button now redirects to third-party platforms.
Healthcare#
MedicalClinic (or Hospital, Dentist)
+ Physician pages: Person + medicalSpecialty + hospitalAffiliation + hasCredential
+ MedicalSpecialty (helps match "hip replacement surgery" to relevant pages)
+ sameAs: link to NPI Registry entry and medical board pageHIPAA constraint: Cannot confirm/deny reviewer is a patient in review responses. Fine precedent: $30,000 (Manasa Health Center, 2023).
Legal#
LegalService (NOT Attorney -- deprecated)
+ Person on attorney bio pages: jobTitle, worksFor, alumniOf, hasCredential (bar admissions)
+ makesOffer > Service (one per practice area)
+ Practitioner GBP: unique phone per attorney, not sole lawyer at firmNote: Reviews follow practitioner listing when attorney changes firms.
Home Services#
Specific subtype (Plumber, Electrician, etc.)
+ areaServed: named cities with sameAs to Wikipedia/Wikidata
+ Service on individual service pages, linked via provider
+ hasOfferCatalog for service listingsSAB note: Service area in GBP does NOT currently impact rankings -- rankings based on verification address (Sterling Sky, March 2025).
Real Estate#
RealEstateAgent (for both agent and brokerage)
+ Person on agent pages: memberOf (brokerage), credentials
+ RealEstateListing + SingleFamilyResidence/Apartment + Offer (pricing)
+ Event for open houses with organizing agentNote: No RealEstateBrokerage type exists on Schema.org.
Automotive#
AutoDealer (sales)
+ Car/Vehicle: VIN, mileage, fuelType, vehicleTransmission
+ Offer: price, priceCurrency, availability
+ Separate GBP: AutoRepair (service), AutoPartsStore (parts)VehicleListing deprecated June 12, 2025 (Confirmed). Use Car + Offer instead. Feed-based Vehicle Listings via Google Merchant Center still functional.
Industry-Specific Citation Sources#
Restaurant#
Yelp, TripAdvisor (1B+ reviews), OpenTable (DA + bookings), DoorDash, UberEats, Grubhub, Foursquare (powers Apple Maps, Uber)
Healthcare#
Healthgrades (50% of Americans who see a doctor visit), Zocdoc (booking + lead gen), WebMD physician directory (high DA), Vitals, Doximity (80% of US physicians), NPI Registry (entity verification source of truth), state medical board directories
Legal#
FindLaw (DA91, dofollow), Martindale-Hubbell (DA84, peer review since 1868), Avvo (1-10 ratings, auto-created from bar data), Justia (DA~70, free profiles), Super Lawyers (top 5%, selection-based), state bar directories (entity verification)
Note: Internet Brands (KKR) owns Avvo + Martindale + Lawyers.com + Nolo. Thomson Reuters owns FindLaw + Super Lawyers + LawInfo.
Home Services#
Thumbtack ($400M revenue 2024, integrations with ChatGPT/Alexa/Zillow), BBB, Nextdoor, Yelp. Declining: Angi (revenue -30% from 2022 peak), Porch (pivoted to insurance), Houzz (pivoted to SaaS)
Real Estate#
Zillow (44% of all RE search traffic, integrated into ChatGPT Oct 2025), Homes.com (#2, overtook Realtor.com, 100M monthly visitors), Realtor.com, Redfin (acquired by Rocket Companies Mar 2025), local MLS sites
Automotive#
Cars.com, AutoTrader, CarGurus, DealerRater (reviews syndicate to Cars.com + OEM sites, supports salesperson ratings), Edmunds, Kelley Blue Book (pricing authority), OEM manufacturer dealer locators (entity verification)
Multi-Location Schema Pattern#
// Homepage: Organization with branchOf references
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://example.com/#org",
"name": "Brand Name",
"url": "https://example.com"
}
// Each location page: individual LocalBusiness
{
"@context": "https://schema.org",
"@type": "Dentist",
"@id": "https://example.com/locations/downtown/#location",
"name": "Brand Name - Downtown",
"branchOf": { "@id": "https://example.com/#org" },
"address": { ... },
"geo": { "latitude": "40.71234", "longitude": "-74.00567" },
"telephone": "+1-555-123-4567",
"openingHoursSpecification": [ ... ]
}Use @id for unique identifiers per location. Subdirectory structure recommended: domain.com/locations/city-name/ (subdirectory consolidates link equity better than subdomain, Bruce Clay study: 50%+ traffic lift).
Deprecated/Invalid Local Schema#
| Type | Status | Date | Use Instead |
|---|---|---|---|
Attorney | Deprecated by Schema.org | -- | LegalService + Person |
VehicleListing | Rich results removed | June 12, 2025 | Car + Offer |
HowTo | Rich results removed | September 2023 | None |
SpecialAnnouncement | Deprecated | July 31, 2025 | None |
Supporting file: skills/seo/references/local-seo-signals.md#
<!-- Updated: 2026-03-23 -->Local SEO Ranking Signals & Benchmarks (March 2026)#
Source Key#
- Confirmed: Google official documentation or employee statements
- Study: Data-driven industry research from recognized firms
- Consensus: Practitioner agreement without controlled testing
- Caution: Single-source or unverified claims
Whitespark 2026 Local Search Ranking Factors#
Published November 6, 2025. 47 experts surveyed across 187 factors. (Study)
Local Pack/Maps Factor Groups#
| Factor Group | Weight | Trend |
|---|---|---|
| GBP Signals | 32% | Stable (top group) |
| Review Signals | ~20% | Up from ~16% in 2023 |
| On-Page Signals | ~15-19% | Slight decline |
| Link Signals | Declining | Continued multi-year drop |
| Behavioral/Engagement | Rising | Clicks, calls, direction requests |
| Citation Signals | Lower for Pack | But 3 of top 5 AI visibility factors are citation-related |
| Social Signals | New entry | First time measured |
| AI Search Signals | New category | Added for the first time |
Top 15 Individual Local Pack Factors#
- Primary GBP category (score: 193)
- Keywords in GBP business title (score: 181)
- Proximity of address to search point (score: 176)
- Verified GBP
- Business open at time of search (Sterling Sky controlled study)
- High numerical Google ratings
- Quantity of native Google reviews
- Additional GBP categories
- Review recency/velocity
- Dedicated service pages
- Domain authority
- NAP consistency
- Spam listing removal
- Quality backlinks
- Review sentiment
Top Negative Factors#
- Incorrect primary category (score: 176) -- single worst mistake
- Duplicate profiles at same address (score: 142)
Search Atlas ML Study (August 2025)#
XGBoost regression model, explains 92-93% of variance. (Study)
| Factor | Variance Explained |
|---|---|
| Proximity | 55.2% |
| Review Count | 19.2% |
| Domain Power | 5.9% |
| Semantic Relevance in Reviews | 5.3% |
| All others | <5% each |
Review Benchmarks#
Sterling Sky Findings (2025, Study)#
- Magic 10 threshold: Significant ranking boost at 10 reviews. 9-to-10 = noticeable increase. 10-to-11 = no similar bump.
- 18-Day Rule: Rankings "fall off a cliff" if no new reviews for 3 weeks. Velocity > volume.
BrightLocal LCRS 2026 (February 2026, Study)#
| Metric | Value |
|---|---|
| Only care about reviews in last 3 months | 74% |
| "Always" read reviews | 41% (up from 29% in 2025) |
| Only use 4.5+ stars | 31% (up from 17% in 2025) |
| Only use 4+ stars | 68% (up from 55% in 2025) |
| Consumers use average review sites | 6 platforms |
Review Platform Usage (BrightLocal 2026)#
| Platform | Usage | Trend |
|---|---|---|
| 71% | Down from 83% in 2025 | |
| 37% | Rising | |
| TikTok | 29% | Rising |
| Apple Maps | 27% | Up from 14% in 2025 |
Enforcement#
- Google blocked/removed 240M+ policy-violating reviews in 2024 (Confirmed, 40% increase over 2023)
- Review deletion rates up 600%+ Jan-Jul 2025; 38% of deleted were 5-star (Study, GMBapi.com)
- FTC Consumer Review Rule effective Oct 21, 2024: penalties up to $53,088/violation (Confirmed, US law)
- Review gating prohibited by both Google (fake engagement policy) and FTC (Confirmed)
Citation Source Tiers#
Tier 1 (Universal, All Industries)#
| Source | Why It Matters |
|---|---|
| Google Business Profile | Primary local signal source |
| Apple Business Connect | Usage nearly doubled, from 14% to 27% (BrightLocal 2026). 1B+ iPhone users |
| Bing Places | Overhauled Oct 2025. Powers ChatGPT, Copilot, Alexa. 900M queries/day |
| Social + citation signal | |
| Yelp | Still ranks on page 1 for many local queries |
Tier 2 (Broad Directories)#
BBB, YellowPages, Manta, Superpages, Foursquare, Nextdoor
Tier 3 (Data Aggregators)#
| Aggregator | Partnerships |
|---|---|
| Data Axle (formerly Infogroup) | Google, Bing, Apple |
| Foursquare | Merged with Factual. Powers Uber, Nextdoor, Yahoo, ChatGPT. 500M+ devices |
| Neustar/TransUnion Digital | 80+ platform partnerships including Bing, Apple |
Industry-specific directories: see local-schema-types.md#
GBP Feature Status (March 2026)#
Deprecated/Removed#
| Feature | Date | Replacement |
|---|---|---|
| Q&A section | Dec 3, 2025 | Ask Maps (Gemini AI) |
| GBP Messaging/Chat | Removed | None |
| Call History/Tracking | Jul 31, 2024 | None |
| GBP-hosted websites | Discontinued | Redirect to social/website |
| School reviews/ratings | Apr 30, 2025 | None |
Active Features#
Posts (with scheduling), Services menu, Attributes (including identity: Women-led, Eco-friendly), Photos/Video, Local Lists (Local Gems, Trending, Top List), AI-generated "Suggest Description", Google Verified badge (replaced Guaranteed/Screened Oct 2025)
Key GBP Insights#
- Posts: No direct ranking impact (WebFX empirical testing). Can trigger Post Justifications. (Study)
- Photos: "Likely a ranking benefit adding some vs none, but not continued benefit adding more" (WebFX). Geotagging has NO impact. 45% more direction requests with photos. (Study/Confirmed mix)
- Attributes: Identity attributes have minor, targeted impact for attribute-specific searches only (WebFX/Sterling Sky). General attributes are filter/informational, NOT direct ranking factors. (Study)
Algorithm Updates Affecting Local (2025-2026)#
| Update | Date | Impact | Source |
|---|---|---|---|
| March 2025 Core | Mar 13-27 | Emphasized E-E-A-T, penalized thin/AI content | Confirmed |
| June 2025 Core | Jun-Jul 17 | General quality focus | Confirmed |
| August 2025 Spam | Aug 26-Sep 22 | Targeted keyword stuffing, fake reviews, PBNs. Local Pack often stable | Confirmed |
| December 2025 Core | Dec 11-29 | Enhanced E-E-A-T, behavioral signal weighting | Confirmed |
| February 2026 Discover Core | Feb 5-27 | Discover-only; favored local expertise | Confirmed |
| "Diversity Update" | 2025 | Harder to rank in both map pack AND organic simultaneously | Study (Sterling Sky) |
Voice Search & Assistants#
- 58% of voice searches are for local business information (Study, BusinessDasher)
- Voice queries typically 4-7 words, phrased as complete questions (Consensus)
- 80%+ of Google Assistant voice answers come from top 3 search results (Study)
| Voice Assistant | Primary Data Source |
|---|---|
| Google Assistant | GBP (transitioning to Gemini) |
| Siri (Apple) | Apple Business Connect + Yelp |
| Alexa (Amazon) | Bing Places + Yelp + aggregators |
AI Search Impact on Local#
| Metric | Value | Source |
|---|---|---|
| ChatGPT/AI for local recommendations | 45% of users (up from 6%) | BrightLocal LCRS 2026 |
| ChatGPT conversion rate | 15.9% | Seer Interactive |
| Google organic conversion rate | 1.76% | Seer Interactive |
| AI Overviews on local searches | Up to 68% | Whitespark Q2 2025 |
| AI Overview CTR reduction for pos 1 | -58% | Ahrefs, Feb 2026 |
| Brand cited in AIO = organic CTR boost | +35% | Seer Interactive |
| ChatGPT traffic vs Google for local | ~2% | Sterling Sky, Feb 2026 |
| Top 5 AI visibility factors: 3 are citation-related | -- | Whitespark 2026 |
ChatGPT sources: Bing web index (primary), Yelp, TripAdvisor, BBB, Reddit. Does NOT access GBP directly. (Study, Search Engine Land)
Perplexity sources: Authority-first. 40% more from high-authority sites. Averages 21.87 citations per question. (Study, Qwairy)
Local Pack Structure#
- Standard: 3 results (universal)
- New: Curated Local Lists (Local Gems, Trending) around position 4 (SOCi, Nov 2025)
- AI-powered local packs (mobile US): Only 1-2 businesses, 32% fewer businesses shown (Sterling Sky)
- Local pack ads grew from ~1% to 22% of tracked mobile keywords in 12 months (Sterling Sky/Places Scout)
- Zero-click rate for local-intent searches: up to 78% on mobile (Similarweb)
Proximity & Search Behavior#
- 46% of all Google searches seek local information (Study)
- 76% of mobile "near me" searches lead to visit within 24 hours (Confirmed, Google)
- 900% increase in "near me" searches over two years (Confirmed/Study, Google)
- Proximity varies: urban 1-2 miles, rural 5-10+ miles, specialty/niche = wider (Consensus)
- Google uses dynamic weighting per query: "emergency plumber near me" = proximity-dominant; "best plastic surgeon" = prominence-dominant (Consensus)
Supporting file: skills/seo/references/maps-api-endpoints.md#
<!-- Updated: 2026-03-23 -->DataForSEO Maps & Business Data API Endpoints#
Source Key#
- Docs: docs.dataforseo.com (official API documentation)
- Pricing: dataforseo.com/pricing (official pricing pages)
Authentication & Limits#
- HTTP Basic Auth (login:password)
- Rate limit: 2,000 API calls/minute across all endpoints
- Each POST supports up to 100 tasks in a single request
- Minimum deposit: $50. $1 free trial credit. Credits never expire.
Google Maps SERP API (Geo-Grid Backbone)#
Endpoint: POST https://api.dataforseo.com/v3/serp/google/maps/live/advanced
Pricing source: https://dataforseo.com/pricing/serp-api (opens in a new tab)
Request Parameters#
| Parameter | Required | Description |
|---|---|---|
keyword | Yes | Search query (e.g., "dentist") |
location_name | No | Named location (e.g., "Austin,Texas,United States") |
location_code | No | DataForSEO location code (e.g., 1026339 for Austin) |
location_coordinate | No | "latitude,longitude,zoom" (max 7 decimals, zoom 3z-21z) |
language_code | No | Default: "en" |
device | No | "desktop" or "mobile" |
depth | No | Number of results to return |
Critical for geo-grid: Use location_coordinate to simulate searches from specific GPS points. Format: "40.7128,-74.0060,15z".
Response Fields (per business item)#
cid, place_id, feature_id, title, domain, url, category, additional_categories, address, phone (via contact_info array), rating.value, rating.votes_count, rating.rating_distribution (1-5 star breakdown), price_level, attributes (grouped: accessibility, payments, children), work_time (per-day timetable + current_status), popular_times (hourly by day), latitude, longitude, local_business_links (booking, menu, order URLs)
Pricing#
| Method | Cost per task | Turnaround |
|---|---|---|
| Standard | $0.0006 (100 desktop / 20 mobile results) | Up to 5 min |
| Priority | $0.0012 | Up to 1 min |
| Live | $0.002 | Up to 6 sec |
Search operators in keyword multiply cost by 5x.
Google My Business Info API (Single Business Deep-Dive)#
Endpoint: POST https://api.dataforseo.com/v3/business_data/google/my_business_info/live
Pricing source: https://dataforseo.com/pricing/business-data (opens in a new tab)
Input Options#
keyword: Business name + location (e.g., "Starbucks Austin TX")"cid:XXXX": Direct CID lookup"place_id:XXXX": Direct Place ID lookup
Response Fields#
Full profile: title, description, category, additional_categories, category_ids, attributes (available + unavailable, grouped by type), contact_info (phone array), domain, url, work_hours (per-day with open/close times), popular_times, cid, place_id, rating (with distribution), address_info (full breakdown), latitude/longitude, photos_count, main_image
Cost: $0.0015 per profile (standard queue)
Use case: Deep-dive on the TARGET business. Maps SERP for competitor discovery.
Google Reviews API (Sentiment & Velocity)#
Endpoint: POST https://api.dataforseo.com/v3/business_data/google/reviews/task_post
Pricing source: https://dataforseo.com/pricing/business-data (opens in a new tab)
Parameters#
| Parameter | Description |
|---|---|
keyword | Business name + location (or CID/place_id) |
depth | Number of reviews to retrieve |
sort_by | "highest_rating", "lowest_rating", "most_relevant", "newest" |
Response Fields (per review)#
review_text, original_review_text, time_ago, timestamp, rating.value, review_id, profile_name, profile_url, profile_image_url, owner_answer (text + timestamp), review_images
Pricing#
| Method | Input Type | Cost |
|---|---|---|
| Standard (per 10 reviews) | keyword | $0.003 |
| Extended (per 20 reviews) | keyword | $0.003 |
| Extended (per 20 reviews) | place_id/CID | $0.00075 |
Optimization: Always use place_id or cid input (4x cheaper than keyword).
Google Q&A API#
Endpoint: POST https://api.dataforseo.com/v3/business_data/google/questions_and_answers/live
Returns questions, answers, upvotes, dates, answer sources. Live and standard methods available.
Use case: Identify unanswered questions, FAQ gap analysis.
Note: Google deprecated GBP Q&A in Dec 2025 (replaced by Ask Maps Gemini AI). This endpoint returns historical data.
Business Listings Search (Pre-Indexed Database)#
Endpoint: POST https://api.dataforseo.com/v3/business_data/business_listings/search/live
Queries DataForSEO's pre-indexed database (not live Google). Faster for bulk category-based queries. Up to 700+ results per query.
Categories Aggregation: /v3/business_data/business_listings/categories_aggregation/live provides category taxonomy.
MCP tool name: business_data_business_listings_search
Cross-Platform Review APIs#
Tripadvisor#
- Search:
/v3/business_data/tripadvisor/search/task_post - Reviews:
/v3/business_data/tripadvisor/reviews/task_post - Billed per 30 reviews. Standard method only.
Trustpilot#
- Search:
/v3/business_data/trustpilot/search/task_post - Reviews:
/v3/business_data/trustpilot/reviews/task_post - ~$0.00075/task. Standard method only.
Cost Estimation Table#
| Operation | API Calls | Est. Cost (Live) |
|---|---|---|
| 7x7 geo-grid, 1 keyword | 49 | $0.098 |
| 7x7 geo-grid, 3 keywords | 147 | $0.294 |
| 3x3 geo-grid, 1 keyword | 9 | $0.018 |
| Target business profile | 1 | $0.0015 |
| 100 reviews (via place_id) | 5 | $0.00375 |
| 20 competitor profiles | 20 | $0.03 |
| GBP posts audit | 1 | ~$0.002 |
| Q&A retrieval | 1 | ~$0.002 |
| Full audit (1-keyword grid) | ~73 | ~$0.13 |
| Full audit (3-keyword grid) | ~171 | ~$0.33 |
Formula: grid_size^2 x keywords x $0.002 (live) or x $0.0006 (standard)
Supporting file: skills/seo/references/maps-free-apis.md#
<!-- Updated: 2026-03-23 -->Free Maps APIs for claude-seo#
Source Key#
- Docs: Official API documentation for each service
- Policy: Official usage policies and terms
Overpass API (Best Free Option for Competitor Discovery)#
Base URL: https://overpass-api.de/api/interpreter
Docs: https://wiki.openstreetmap.org/wiki/Overpass_API (opens in a new tab)
License: ODbL (attribution required: "Data from OpenStreetMap")
Rate Limits#
- Slot-based: ~2 concurrent queries per IP
- Guideline: ~10,000 requests/day, ~1 GB/day download
- Default timeout: 180 seconds, 512 MiB memory per query
- Use
[timeout:25]for lighter queries
Query Templates#
Restaurants within 5km radius:
curl -s "https://overpass-api.de/api/interpreter" \
--data-urlencode 'data=[out:json][timeout:25];(node["amenity"="restaurant"](around:5000,LAT,LNG);way["amenity"="restaurant"](around:5000,LAT,LNG););out body;>;out skel qt;'All businesses on a street:
curl -s "https://overpass-api.de/api/interpreter" \
--data-urlencode 'data=[out:json][timeout:25];way["name"="STREET_NAME"]["addr:city"="CITY"];(._;>;);out body;'Competitor POIs by category in bounding box:
curl -s "https://overpass-api.de/api/interpreter" \
--data-urlencode 'data=[out:json][timeout:25];(node["amenity"="dentist"](SOUTH,WEST,NORTH,EAST);way["amenity"="dentist"](SOUTH,WEST,NORTH,EAST););out body;>;out skel qt;'Key OSM Tags for Local SEO#
| Category | OSM Tag | Examples |
|---|---|---|
| Food & Drink | amenity=restaurant, amenity=cafe, amenity=fast_food | Restaurants, cafes, takeaway |
| Healthcare | amenity=dentist, amenity=doctors, amenity=pharmacy | Dental, medical, pharmacy |
| Legal | office=lawyer, office=notary | Law firms, notaries |
| Home Services | craft=plumber, craft=electrician, craft=hvac | Trades, contractors |
| Retail | shop=supermarket, shop=clothes, shop=car | All retail types |
| Automotive | shop=car, shop=car_repair, amenity=fuel | Dealers, repair, gas |
| Hospitality | tourism=hotel, tourism=motel, tourism=guest_house | Accommodation |
| Financial | amenity=bank, office=insurance, office=accountant | Banks, insurance, accounting |
Response Fields#
Each element returns: id, lat, lon, tags object containing name, phone, website, opening_hours, addr:street, addr:housenumber, addr:city, addr:postcode, cuisine, brand, etc.
Limitations#
- No reviews, ratings, or popularity data
- No GBP-specific information
- Data quality varies by region (excellent in Europe, inconsistent elsewhere)
- Volunteer-contributed data; may be outdated
- Interactive tester: https://overpass-turbo.eu/ (opens in a new tab)
Geoapify Places API (Structured POI Search)#
Base URL: https://api.geoapify.com/v2/places
Docs: https://apidocs.geoapify.com/docs/places/ (opens in a new tab)
Pricing: https://www.geoapify.com/pricing (opens in a new tab)
Free Tier#
- 3,000 credits/day (1 credit = 20 places returned)
- 5 requests/second
- Requires API key (free registration, no credit card)
- Caching and storage explicitly permitted (unlike Google)
Query Template#
curl -s "https://api.geoapify.com/v2/places?categories=catering.restaurant&filter=circle:LNG,LAT,5000&limit=20&apiKey=YOUR_KEY"Category Hierarchy#
Uses dot-separated categories: catering.restaurant, commercial.supermarket, healthcare.dentist, service.financial.accounting, commercial.vehicle.car_dealer
Response Format#
GeoJSON FeatureCollection. Each feature has properties: name, city, state, postcode, country, street, housenumber, phone, website, categories, lat, lon, place_id, formatted (full address string)
Advantages Over Raw Overpass#
- Cleaner, structured responses
- Aggregated data (OSM + OpenAddresses + WhosOnFirst + GeoNames)
- Hierarchical category taxonomy
- No rate limit surprises (clear credit system)
Nominatim (Geocoding Only)#
Base URL: https://nominatim.openstreetmap.org
Docs: https://nominatim.org/release-docs/latest/api/Overview/ (opens in a new tab)
Policy: https://operations.osmfoundation.org/policies/nominatim/ (opens in a new tab)
Rate Limits (STRICT)#
- 1 request/second (absolute)
- Must include valid
User-Agentheader (stock library agents rejected) - Auto-complete queries forbidden
- Bulk geocoding forbidden on public instance
- Repeated identical queries trigger bans (cache results)
Forward Geocoding#
curl -s "https://nominatim.openstreetmap.org/search?q=123+Main+St+Austin+TX&format=json&addressdetails=1" \
-H "User-Agent: claude-seo/1.7.0"Reverse Geocoding#
curl -s "https://nominatim.openstreetmap.org/reverse?lat=40.7128&lon=-74.0060&format=json" \
-H "User-Agent: claude-seo/1.7.0"Response Fields#
place_id, lat, lon, display_name, importance, category, type, address object (house_number, road, city, state, postcode, country)
Best Use#
- Address-to-coordinates conversion for geo-grid center point
- Reverse geocoding to validate business addresses
- NOT suitable for business listing discovery (use Overpass or Geoapify)
Rate Limit Enforcement Pattern#
# Nominatim: enforce 1 req/sec with sleep
for addr in "${addresses[@]}"; do
curl -s "https://nominatim.openstreetmap.org/search?q=${addr}&format=json" \
-H "User-Agent: claude-seo/1.7.0"
sleep 1.1
done
# Overpass: no explicit rate limit, but use reasonable timeouts
# If HTTP 429 returned, implement exponential backoff
# Geoapify: 5 req/sec on free tier, no explicit enforcement neededComparison Table#
| Feature | Overpass | Geoapify | Nominatim |
|---|---|---|---|
| Business discovery | Yes (tags) | Yes (categories) | Limited |
| Reviews/ratings | No | No | No |
| Geocoding | No | Yes | Best |
| Rate limit | ~10k/day | 3k credits/day | 1 req/sec |
| Auth required | No | API key | No |
| Caching allowed | Yes | Explicitly | Required |
| Data quality | Regional | Aggregated | Regional |
| Best for | Radius competitor search | Structured POI search | Address resolution |
Supporting file: skills/seo/references/maps-gbp-checklist.md#
<!-- Updated: 2026-03-23 -->GBP Profile Completeness Checklist (Via API)#
This checklist scores a Google Business Profile using data retrieved from the DataForSEO My Business Info API. It measures profile completeness on the maps PLATFORM, not on-page signals (seo-local handles on-page).
Sources#
- Google official: https://support.google.com/business/answer/7091 (opens in a new tab)
- Whitespark 2026 Local Search Ranking Factors (Study)
- BrightLocal LCRS 2026 (Study)
Scoring System#
Each field: Present + Optimized = 2pts, Present = 1pt, Missing = 0pts
Total possible: 50 points. Normalize to 0-100 scale: (score / 50) * 100
Critical Fields (Direct Ranking Impact)#
| # | Field | Points | Optimized Criteria |
|---|---|---|---|
| 1 | Primary category | 2 | Most specific subtype for industry (e.g., "Cosmetic Dentist" not "Dentist") |
| 2 | Additional categories | 2 | 3-5 relevant categories (optimal: 4 additional per BrightLocal) |
| 3 | Business name | 2 | Matches real-world name exactly (no keyword stuffing) |
| 4 | Physical address | 2 | Complete, matches website NAP |
| 5 | Phone number | 2 | Local number (not toll-free), matches website |
| 6 | Website URL | 2 | Points to correct page (not strongest page -- Diversity Update risk) |
| 7 | Business hours | 2 | Complete with special/holiday hours. Open-at-search-time = factor #5 |
| 8 | Verified status | 2 | Google Verified badge active |
Subtotal: 16 points (8 fields)
Important Fields (Significant Influence)#
| # | Field | Points | Optimized Criteria |
|---|---|---|---|
| 9 | Business description | 2 | 250-750 chars, includes primary service + location keywords naturally |
| 10 | Services list | 2 | All core services listed with descriptions |
| 11 | Products | 2 | Key products/services with prices (if applicable) |
| 12 | Photos | 2 | 10+ photos across types: logo, cover, interior, exterior, team, products |
| 13 | Photo recency | 2 | Photos uploaded within last 30 days |
| 14 | Attributes | 2 | Relevant attributes set (accessibility, payments, amenities, identity) |
| 15 | Service areas | 2 | Defined for SABs, up to 20 areas (cities or zip codes) |
| 16 | Menu/services link | 2 | Menu URL (restaurants) or services URL (others) |
Subtotal: 16 points (8 fields)
Supplementary Fields (Supporting Signals)#
| # | Field | Points | Optimized Criteria |
|---|---|---|---|
| 17 | Google Posts | 2 | Active posting (1+/week). Types: update, offer, event, product |
| 18 | Post recency | 2 | Post within last 7 days |
| 19 | Booking link | 2 | Appointment/reservation URL configured |
| 20 | Social profiles | 2 | Linked via sameAs or GBP social links |
| 21 | Logo | 2 | High-quality square logo uploaded |
| 22 | Cover photo | 2 | On-brand, high-resolution cover image |
| 23 | Videos | 2 | At least 1 video uploaded |
| 24 | Owner responses | 2 | Responding to reviews (target: 80%+ response rate) |
| 25 | Q&A engagement | 2 | FAQ content on website (GBP Q&A deprecated Dec 2025) |
Subtotal: 18 points (9 fields)
Industry-Specific Weight Adjustments#
When scoring, apply multipliers to fields that matter more for specific industries:
Restaurant#
- Menu/services link: x2 (critical for food-related searches)
- Photos: x1.5 (food photos drive engagement)
- Booking link: x1.5 (reservation systems expected)
- Attributes: x1.5 (dietary, dine-in/takeout/delivery critical)
Healthcare#
- Business hours: x1.5 (patients need accurate hours)
- Attributes: x1.5 (insurance, accessibility, telehealth)
- Services list: x2 (insurance and procedure matching)
Legal#
- Business description: x1.5 (practice area clarity)
- Services list: x2 (practice area matching drives visibility)
- Photos: x0.5 (less impactful for legal)
Home Services#
- Service areas: x2 (SAB model depends on this)
- Business hours: x1.5 (emergency availability)
- Photos: x1.5 (before/after project photos)
Real Estate#
- Photos: x2 (property photos critical)
- Social profiles: x1.5 (agent branding)
- Posts: x1.5 (listing updates)
Automotive#
- Products: x2 (vehicle inventory)
- Photos: x2 (vehicle photos)
- Services list: x1.5 (sales + service departments)
Re-normalization After Multipliers#
After applying industry multipliers, re-normalize so the total remains 0-100:
final_score = (weighted_raw_score / max_possible_weighted_score) * 100This ensures consistent scoring regardless of which industry multipliers are active.
Score Interpretation#
| Score | Rating | Action |
|---|---|---|
| 90-100 | Excellent | Maintain posting cadence and photo freshness |
| 75-89 | Good | Fill remaining gaps in supplementary fields |
| 50-74 | Needs Work | Missing important fields, address Critical + Important gaps |
| 25-49 | Poor | Major profile gaps hurting visibility. Prioritize Critical fields |
| 0-24 | Critical | Profile barely exists or unclaimed. Start with verification + Critical fields |
Data Mapping (DataForSEO → Checklist)#
| Checklist Field | DataForSEO My Business Info Field |
|---|---|
| Primary category | category |
| Additional categories | additional_categories |
| Business name | title |
| Address | address_info |
| Phone | contact_info (type: phone) |
| Website | domain, url |
| Hours | work_hours |
| Description | description |
| Services | (separate API or attributes) |
| Photos | photos_count, main_image |
| Attributes | attributes (grouped by type) |
| Popular times | popular_times |
| Posts | My Business Updates API |
| Verified status | Not directly exposed — infer from profile completeness + Maps SERP presence, or flag as "Unknown (manual check required)" |
Supporting file: skills/seo/references/maps-geo-grid.md#
<!-- Updated: 2026-03-23 -->Geo-Grid Rank Tracking Algorithm#
Concept#
Geo-grid rank tracking simulates Google Maps searches from multiple GPS coordinates around a business to show how rankings vary across a geographic area. The output is a heatmap revealing where the business ranks well (green) and where competitors dominate (red).
Grid Generation (Haversine-Based)#
Algorithm#
- Take center coordinates (business location):
center_lat,center_lng - Define grid size (e.g., 7x7 = 49 points) and radius in km
- Calculate spacing:
step = (2 * radius_km) / (grid_size - 1) - Generate grid points using offset formula:
For each row i (0 to grid_size-1) and column j (0 to grid_size-1):
dy = (i - center_index) * step_km
dx = (j - center_index) * step_km
new_lat = center_lat + (dy / 111.32)
new_lng = center_lng + (dx / (111.32 * cos(center_lat * pi/180)))Where center_index = (grid_size - 1) / 2 and 111.32 km = 1 degree latitude.
Grid Sizes and Use Cases#
| Grid | Points | Typical Radius | Best For | Est. Cost (Live) |
|---|---|---|---|---|
| 3x3 | 9 | 2 km | Quick snapshot, low budget | $0.018/keyword |
| 5x5 | 25 | 3 km | Standard urban audit | $0.050/keyword |
| 7x7 | 49 | 5 km | Default. Best balance of coverage and cost | $0.098/keyword |
| 9x9 | 81 | 8 km | Suburban/wide service area | $0.162/keyword |
| 13x13 | 169 | 15 km | Rural or large metro | $0.338/keyword |
Radius guidelines: Urban dense = 2-5 km, suburban = 5-10 km, rural = 10-25 km.
DataForSEO Integration#
Use the Google Maps SERP API with location_coordinate parameter:
{
"keyword": "dentist",
"location_coordinate": "30.2672,-97.7431,15z",
"language_code": "en",
"device": "mobile",
"depth": 20
}For each grid point, fire one API call with the point's lat/lng. Parse the
items array to find the target business rank (position in results).
Rate optimization: DataForSEO allows up to 100 tasks per POST. For a 7x7 grid, batch all 49 tasks into a single request to minimize HTTP overhead.
Share of Local Voice (SoLV)#
Metric pioneered by Local Falcon. Measures visibility across the grid.
Calculation#
SoLV = (points_in_top_3 / total_grid_points) * 100Interpretation#
| SoLV | Interpretation |
|---|---|
| 80-100% | Dominant. Business owns the local area. |
| 60-79% | Strong. Visible in most of the service area. |
| 40-59% | Moderate. Significant gaps in coverage. |
| 20-39% | Weak. Competitors dominate most areas. |
| 0-19% | Critical. Nearly invisible in maps results. |
Extended Metrics#
- Average Rank: Mean position across all grid points (lower = better)
- Visibility Score: Weighted average where top 3 = 3pts, 4-10 = 1pt, 10+ = 0pts
- Worst Quadrant: Identify which compass direction has weakest rankings
ASCII Heatmap Rendering#
For terminal/Markdown output, render a grid using rank-position symbols:
Format#
Geo-Grid: "dentist" (7x7, 5km radius, center: 30.267, -97.743)
W -------- E
N 1 1 2 3 5 8 -
| 1 1 1 2 3 6 9
| 2 1 [1] 1 2 4 7
| 3 2 1 1 1 3 5
| 5 3 2 1 2 4 8
| 8 5 3 2 3 6 -
S - 8 5 4 5 9 -
Legend: [1]=center, 1-3=top 3 (strong), 4-10=visible, -=not ranked
SoLV: 57% (28/49 grid points in top 3)
Avg Rank: 3.4 | Weakest: NE quadrant (avg rank 7.2)Color Mapping (for enhanced output)#
| Position | Symbol | Meaning |
|---|---|---|
| 1 | 1 | #1 ranking (best) |
| 2-3 | 2, 3 | Top 3 (strong local presence) |
| 4-10 | 4-9 | Visible but not dominant |
| 11-20 | + | Buried in results |
| Not found | - | Not ranking at this point |
Multi-Keyword Grid#
For comprehensive analysis, scan 2-3 keywords on the same grid:
- Primary service keyword (e.g., "dentist")
- Brand + location (e.g., "Smith Dental Austin")
- Long-tail intent (e.g., "emergency dentist near me")
Cost for 3-keyword 7x7 scan: 147 API calls = ~$0.29 (live) or ~$0.088 (standard)
Cost Warning Template#
Before running a geo-grid scan, display:
Geo-Grid Scan Estimate:
Grid: 7x7 (49 points)
Keywords: 3
API calls: 147
Estimated cost: $0.09 (standard) - $0.29 (live)
Proceed? [DataForSEO credits will be consumed]SHOWING THE FIRST PART OF 50 KB · THE FULL TEXT IS ON THIS PAGE
FAQ
07 QUESTIONS
01What is the SEO maps agent skill?
Maps platform analysis for local businesses. Works with external APIs to assess how a business appears on Google Maps, Bing Places, Apple Maps, and OpenStreetMap. It is listed under SEO in the 100xLab agent skills directory.
02How do I install SEO maps in Cursor, Claude Code, or Codex?
Run npx skills add agricidaniel/claude-seo --skill seo-maps in the project where you want it, then ask your agent for the skill by name. The --skill flag installs only SEO maps, not every skill in the repository.
03What does the SEO maps SKILL.md cover?
The SKILL.md includes sections on Quick Reference, Three-Tier Capability Detection, Tier 0 (Free), Tier 1 (DataForSEO), Tier 2 (DataForSEO + Google Maps Platform) and Geo-Grid Rank Tracking (Tier 1+). Read the full text on this page or in plain markdown at /resources/agent-skills/agricidaniel-claude-seo--seo-maps--x7h4jt/raw.
04Which agents can use SEO maps?
SEO maps installs with the cross-agent skills installer (npx skills add), which sets it up for agents such as Claude Code, Cursor and Codex. Each agent loads the SKILL.md when you ask for the skill by name.
05What license is SEO maps under?
The agricidaniel/claude-seo repository declares the MIT license. Read the license file in the repository before you copy or redistribute the skill.
06Is SEO maps free to use?
Reading, copying and installing SEO maps costs nothing: it is published in a public GitHub repository under the MIT license. Reuse and redistribution follow that license.
07Where is the source of SEO maps?
SEO maps comes from https://github.com/agricidaniel/claude-seo, which has 10.3K GitHub stars. The SKILL.md is at https://github.com/agricidaniel/claude-seo/blob/HEAD/skills/seo-maps/SKILL.md. The author is agricidaniel.
Need an agent workflow built around your stack?
Tell us the workflow you want automated. We reply within 4 working hours (IST).
ATTRIBUTION
SEO maps was written by its original authors and is published in agricidaniel/claude-seo (opens GitHub in a new tab) under the MIT license. All rights stay with the original authors.
100xLab did not write, maintain or endorse this skill. This page lists it for discovery. Repo stars belong to the source repository, not to the skill. Review any skill before you install it.