Google Maps NAP Consistency Checker
Pricing
from $10.00 / 1,000 business checks
Google Maps NAP Consistency Checker
Checks whether a business's Google Business Profile (name/address/phone) matches its own website, by lightly fetching the homepage and a linked contact/about page. Flags mismatches and GBP fields that are missing but findable on the site.
Pricing
from $10.00 / 1,000 business checks
Rating
0.0
(0)
Developer
オレンジ Tb
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
a day ago
Last modified
Categories
Share
What does Google Maps NAP Consistency Checker do?
This Actor takes the output of any Google Maps scraper (such as Google Maps Scraper) and, for every place that has its own website, lightly fetches the homepage (and a linked contact/about page if one exists) to check whether the Name, Address (postal code), and Phone on the business's Google Business Profile actually match what's on their own site.
Unlike directory-based NAP checkers that compare a listing against other directories, this Actor compares against the business's own website — the most credible source and the strongest talking point for a sales pitch ("your Google listing doesn't match your own site").
| This Actor (GBP vs. own website) | Directory-wide citation checkers | |
|---|---|---|
| Compares against | The business's own homepage (the source they control) | Dozens of third-party directories (e.g. 36+ listing sites) |
| Cost per business | ≈ $0.02 at 1,000 businesses (see Pricing below) | Typically a per-report or subscription fee, often priced per business or per bundle of directories |
| Best for | A single, undeniable talking point in a sales pitch — "your own site says X, but Google says Y" | A broad audit of consistency across the wider directory ecosystem |
Key features
- Compares against the business's own site, not just other directories — the strongest, most credible pitch you can show a prospect.
- 📈 Change tracking between runs, including a
FIXEDstatus — re-run on the same list later and see which flagged issues are still unresolved (a strong "we told you two weeks ago" follow-up angle) vs. which prospects fixed it themselves. - 🚫 Closed businesses excluded automatically — nothing wasted checking a site that's no longer trading.
- Respects
robots.txtand identifies itself with a proper User-Agent — fetches at most 2 pages per business.
Why use this Actor?
Local SEO agencies sell NAP-consistency fixes as a service. A mismatch (or a field GBP is simply missing that the website has) is a concrete, provable problem you can show a prospect in one screenshot. This Actor surfaces those cases automatically instead of manually checking each business's site.
How to use Google Maps NAP Consistency Checker
- Run a Google Maps scraper for the area and category you want, and grab its dataset output.
- Paste that array of place objects into the Google Maps places input field.
- Run it. Only places with a real (non-social-media) website are checked; the rest are skipped automatically.
Input
| Field | Type | Description |
|---|---|---|
places | array | The place objects from a Google Maps scraper's dataset output |
Example input:
{"places": [{ "title": "benchmark TOKYO", "placeId": "ChIJh7CHNpSNGGARCSaXuKdrpF0" }]}
Output
{"title": "benchmark TOKYO","placeId": "ChIJh7CHNpSNGGARCSaXuKdrpF0","fetchedOk": true,"postalMatch": true,"phoneStatus": "gbp_missing_on_site_found","nameFoundOnSite": true,"changeStatus": "NEW","reasons": ["GBP has no phone number, but the website lists one — quick fix opportunity"]}
phoneStatus is one of: match, mismatch, gbp_missing_on_site_found, site_missing_gbp_has, both_missing, or unknown (fetch failed). changeStatus is NEW, UPDATED, UNCHANGED, or FIXED (had issues last run, none now) vs. your previous run on this Actor.
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
Data table
| Field | Type | Description |
|---|---|---|
title | string | Business name |
placeId | string | Google Maps place ID |
fetchedOk | boolean | False if the website couldn't be fetched (down, blocked, disallowed by robots.txt) |
postalMatch | boolean | null | Whether the GBP postal code matches one found on the site; null if not comparable |
phoneStatus | string | match, mismatch, gbp_missing_on_site_found, site_missing_gbp_has, both_missing, or unknown |
nameFoundOnSite | boolean | null | Whether the GBP business name is clearly present on the site |
changeStatus | string | NEW, UPDATED, UNCHANGED, or FIXED vs. the previous run on this Actor |
reasons | array | Plain-English list of the specific issues found |
Pricing / cost estimation
Pay-per-event: a small flat fee when a run starts, plus a per-check fee for each business checked ($0.01 run start + $0.01 per business checked). This Actor fetches at most 2 pages per business (homepage + one linked contact/about page if found), so cost stays predictable — it doesn't crawl the whole site. Unlike the zero-fetch Actors in this family, each check does real HTTP requests, which is why it is priced per business checked rather than as a fraction of scraping cost.
How much does checking 1,000 businesses cost, on top of scraping them?
| Step | Cost for 1,000 places |
|---|---|
| Scrape 1,000 places with Google Maps Scraper | Listed "from $1.50 / 1,000 places" on its Store page; ≈ $4 / 1,000 measured in practice (Aug 2026) |
| NAP-check those same 1,000 businesses with this Actor | $0.01 run start + 1,000 × $0.01 ≈ $10.01 |
The scraping is already paid for; this Actor adds about $10.01 per 1,000 businesses checked — still far cheaper than manually visiting each site yourself.
Tips
- Run this after Google Maps Lead Priority Scorer or No-Website & Unclaimed Leads to layer NAP findings onto your existing lead list.
- Businesses without a real website are automatically skipped (there's nothing to check against) — use the companion no-website Actor for those instead.
- Want flagged issues pushed to Slack, Telegram, or your own webhook automatically? Set that up under this Actor's Integrations tab in Apify Console — no extra code needed.
FAQ, disclaimers and support
- If the site can't be fetched (down, blocks bots, times out), the result is marked
fetchedOk: falserather than silently treated as a match. - If the Google Business Profile has a
postalCodefield (as returned by most Google Maps scrapers), that code is checked against the site's text directly — with or without a 〒 mark, so US ZIP codes and other formats work too. If the GBP has nopostalCodefield, this Actor falls back to extracting 〒-marked postal codes from both the GBP address and the site text and comparing those; if either side has none, the result ispostalMatch: null(not comparable). - Found an edge case? Use the Issues tab on this Actor's page.
- Limitations: if no postal code can be found anywhere in the site's text,
postalMatchis reported asfalse(a mismatch), notnull— the site not showing its postal code at all is itself flagged, rather than treated as unknown.
Legal & responsible use
This Actor is an independent, unofficial tool. It is not affiliated with, endorsed by, or sponsored by Google. "Google Maps" and "Google Business Profile" are trademarks of Google LLC, used here only to describe compatibility.
The presence of a phone number or address on a public Google Business Profile does not by itself constitute consent to receive marketing calls or messages. Before using this data for outreach you are responsible for complying with the laws that apply to you and your recipients — for example GDPR/UK GDPR, CAN-SPAM and TCPA in the US, and Japan's Act on Regulation of Transmission of Specified Electronic Mail and Act on Specified Commercial Transactions. This Actor does not verify consent or opt-in status.
This Actor fetches at most two pages per business, only where the site's robots.txt allows it, and identifies itself with a descriptive User-Agent. You remain responsible for complying with the terms of service of any site you check and for using the results only for legitimate purposes.