Google Maps NAP Consistency Checker avatar

Google Maps NAP Consistency Checker

Pricing

from $10.00 / 1,000 business checks

Go to Apify Store
Google Maps NAP Consistency Checker

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

オレンジ Tb

Maintained by Community

Actor 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 againstThe 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 forA 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 FIXED status — 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.txt and 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

  1. Run a Google Maps scraper for the area and category you want, and grab its dataset output.
  2. Paste that array of place objects into the Google Maps places input field.
  3. Run it. Only places with a real (non-social-media) website are checked; the rest are skipped automatically.

Input

FieldTypeDescription
placesarrayThe 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

FieldTypeDescription
titlestringBusiness name
placeIdstringGoogle Maps place ID
fetchedOkbooleanFalse if the website couldn't be fetched (down, blocked, disallowed by robots.txt)
postalMatchboolean | nullWhether the GBP postal code matches one found on the site; null if not comparable
phoneStatusstringmatch, mismatch, gbp_missing_on_site_found, site_missing_gbp_has, both_missing, or unknown
nameFoundOnSiteboolean | nullWhether the GBP business name is clearly present on the site
changeStatusstringNEW, UPDATED, UNCHANGED, or FIXED vs. the previous run on this Actor
reasonsarrayPlain-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?

StepCost for 1,000 places
Scrape 1,000 places with Google Maps ScraperListed "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: false rather than silently treated as a match.
  • If the Google Business Profile has a postalCode field (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 no postalCode field, 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 is postalMatch: 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, postalMatch is reported as false (a mismatch), not null — the site not showing its postal code at all is itself flagged, rather than treated as unknown.

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.