Free tool · NAP, GBP & LocalBusiness schema

SEO NAP Checker for Google Business Profile & Schema

Compare one local page with the public business name, address and phone you enter. Check NAP consistency, LocalBusiness schema and hreflang — without implying live Maps rankings.

Local SEO signals checked: NAP, Schema, GBP, hreflang LocalBusiness NAP Schema GBP Lang

Website-to-GBP comparison · Rules-based score · No login · No live Maps rankings

Usually your homepage or contact / location page.

Google Business Profile details (recommended for NAP match)

Names, addresses and phone numbers can drift between a website and its public listing. Paste what people see on Google to compare it with this page.

Paste a full maps.google.com/…/place/… link to pre-fill the business name. Short goo.gl links and address/phone still need manual paste — we never call the Google API.

8 free checks left today

Simple process

How the Local SEO Checker works

  1. Paste a page URL

    Your homepage or a location/contact page usually carries the clearest NAP and LocalBusiness signals. No account or install required.

  2. Add your GBP details (optional but recommended)

    Paste a full Google Maps place URL to pre-fill the business name, then add the public address and phone. Short maps.app.goo.gl links cannot be expanded here — open them and copy the full place URL, or paste NAP text by hand. Without GBP fields, the tool cannot compare the page with the public listing details you supplied.

  3. We fetch and parse the page

    A server-side, SSRF-safe fetch (the same infrastructure the AEO Readiness Checker uses) pulls the live HTML, then extracts LocalBusiness/Organization JSON-LD, microdata, tel: links, hreflang alternates, and plain-text phone numbers and address-like blocks from footer and contact regions, even when they carry no markup at all.

  4. Read the findings and fix what is flagged

    Each check lists a severity, what was found, and why it matters. If no GBP details were provided, the score is explicitly capped and labelled unverified rather than presenting a misleadingly high number.

Why Google Business Profile and your website must tell the same story

NAP consistency is an important local trust and entity-resolution signal that businesses can verify directly.

Definition

NAP consistency means a business name, address, and phone number agree across its public website, Google Business Profile, and structured data such as LocalBusiness JSON-LD. Consistent details help customers reach the correct business and give parsers matching public entity data; they do not guarantee local rankings.

Drift happens quietly. A business moves office and updates the GBP listing, but a footer template still shows the old suite number. A phone number gets ported to a new provider and the JSON-LD is never touched. A regional franchise page inherits the parent company's address by copy-paste. None of these show up as a broken link or a 404 — they only show up as inconsistency between two sources that both look correct in isolation.

That inconsistency has a direct customer cost: a visitor may call an outdated number or travel to the wrong address. Google documents local ranking mainly in terms of relevance, distance, and prominence; this checker measures none of those. It focuses on a narrower, verifiable job — whether the live page, its structured data, and the public profile details you supplied agree.

This free checker catches the technical half of that problem in seconds. For the ongoing half — rollout across multiple locations, structured-data audits, and monitoring after every template change — see our technical SEO and local schema work.

How the Local SEO score works

A rules-based 0–100 summary of measurable page, schema, language, and submitted NAP-alignment signals—not a Google ranking or local-pack forecast.

The score rewards complete LocalBusiness data, visible contact details, consistent submitted Google Business Profile information, and usable language signals. If you skip all GBP fields, the default score ceiling is 84 because listing alignment was not verified; the remaining technical findings are still valid.

85–100

A — Strong local signals

70–84

B — Good — minor fixes

55–69

C — Mixed — NAP or schema gaps

40–54

D — Weak local consistency

0–39

F — Critical local or language issues

What the Local SEO Checker checks

Four signal groups, from raw markup to a real GBP comparison — and an honest list of what it deliberately does not claim to do.

NAP & structured data

  • LocalBusiness / Organization JSON-LD presence and completeness
  • PostalAddress and telephone properties, not just a bare name
  • tel: links and microdata itemprop attributes
  • Plain-text phone numbers and address blocks in footers with no markup

GBP comparison

  • Fuzzy name / address / phone match against what you pasted from GBP
  • Exact last-10-digit phone comparison (avoids false matches on shared local exchanges)
  • Explicit "score capped — unverified" flag when no GBP details are provided

Multilingual & hreflang

  • html[lang] attribute presence and value
  • rel="alternate" hreflang link elements, including x-default
  • Whether language and locale signals stay consistent with your primary market

What it does not do

  • Does not call the official Google Business Profile API
  • Does not check review count, star rating, or map-pin proximity
  • Does not guarantee a local-pack ranking position

Automated check vs. comparing GBP by eye

Eyeballing two browser tabs misses the sources that do not render visually — JSON-LD, microdata, and hreflang.

Most teams "check" NAP consistency by opening the website and the Google Business Profile side by side and reading them. That catches obvious visible typos, but it cannot see what a browser does not render: a stale phone number inside LocalBusiness JSON-LD, a missing hreflang tag on the German version of the page, or an address baked into structured data that no longer matches the footer text next to it. This tool reads exactly what search engines and AI crawlers read.

Comparison of manual GBP comparison and the Local SEO Checker
Checking by eye Local SEO Checker
What you compare Your memory of what the listing says The exact GBP text you paste, matched against your live page
What it reads on your site Whatever is visible in your browser JSON-LD, microdata, tel: links, and plain-text footer/contact copy
Multilingual sites Easy to miss a missing hreflang tag on one locale Flags html[lang] and hreflang presence directly
Speed Several minutes per page, per locale Seconds, repeatable after every edit

Multilingual and multi-region sites

Local business information gets harder to maintain once a second language or region enters the picture. Each locale needs clear, consistent contact and location details so people and parsers can tell which business and physical location the page describes.

  1. Each major locale should have a stable URL and consistent html[lang] markup — do not let one locale silently fall back to the default language attribute.
  2. Use hreflang (and x-default where appropriate) so Google can match users to the right language version.
  3. Align the GBP primary category, business description, and on-page copy with the same target market per locale; a page in Turkish describing a market the GBP listing does not serve is a mismatch of its own.
  4. If you run separate GBP listings per branch or region, re-run this checker against each corresponding page — a single pass on the homepage will not catch a location-specific mismatch on a branch page.

Methodology & limitations

  1. Server-side fetch only: bot blocks, geo restrictions, or heavy client-side rendering may show different content than what a signed-in browser sees.
  2. Scores and severities are rules-based on measurable page signals; the tool does not read your GBP dashboard, verify live ranking positions, or call any Google API.
  3. Plain-text phone and address extraction is heuristic — it looks inside footer, address, and contact-labelled regions for number- and text-shaped candidates, and is intentionally conservative to avoid false positives from unrelated page content.
  4. Always confirm business-critical changes against Google Search Central guidelines and your own legal/communications policy before publishing.

References

Official and independent documentation (not endorsements of this tool):

Frequently asked questions

Is this a Google Maps rank tracker or geo-grid tool?
No. It audits page-to-GBP consistency, NAP, LocalBusiness schema and language signals. It does not query live Maps positions, reviews, proximity or geo-grid rankings.
Why compare the website to GBP at all?
Customers may rely on either source. A mismatched phone number or address can send a call or visit to the wrong place and gives parsers contradictory public business data.
Is my data stored?
We do not store the URL or Google Business fields you enter. Only a short-lived rate-limit hash of your IP is kept on our servers (see this site’s privacy policy for details). Do not paste secrets or personal data into optional fields.
What happens if I skip the Google Business Profile fields?
The tool still runs the technical checks — schema, hreflang, and plain-text NAP extraction — but the overall score is explicitly capped and labelled as not verified against your listing. NAP-to-GBP alignment is an important local consistency signal this tool measures, so a score without it cannot represent a complete comparison.
Does the tool detect a phone number that has no markup at all?
Yes. Beyond tel: links and schema.org microdata, the checker scans footer, address, and contact-labelled regions of the page for plain, unmarked-up phone-number-shaped text and address-like blocks, so a number just sitting in a footer as regular text is still picked up.
Why does an address partially match but not score 100%?
Address matching is fuzzy on purpose — formatting differences (abbreviated "St." vs "Street", suite numbers, line breaks) should not register as a full mismatch. The default similarity floor is intentionally strict enough to reject half-matched street text; a high-but-not-perfect score usually means the core address matches with minor formatting drift.
Why does phone matching look only at the last 10 digits?
Comparing full national numbers (not an arbitrary short suffix) avoids a false "match" between two genuinely different numbers that happen to share the same local exchange or extension. It also means country-code or leading-zero formatting differences between your page and your GBP listing will not cause a false mismatch.
Should I use LocalBusiness or Organization schema?
If customers can visit a physical location, use LocalBusiness or the most specific applicable subtype (Store, ProfessionalService, FoodEstablishment, and so on) with a PostalAddress. The more specific type gives parsers clearer business information than a bare Organization node.
Does this tool work for multi-location or multi-language businesses?
Yes, but run it once per page: each location or locale should have its own consistent NAP and hreflang signals, and a single check against your homepage will not catch a mismatch that only exists on a branch or translated page.
How is this different from Google Search Console?
Search Console reports how Google already sees your indexed pages and structured data errors after the fact. This tool checks NAP consistency and hreflang signals against a live fetch and — optionally — your actual GBP text, before you wait for Google to notice a mismatch.

Why trust this local SEO tool?

Same SSRF-safe fetch infrastructure as the AEO checker, built for production sites, not a generic template.

The SEO NAP Checker is built and maintained by Maksut — the same WordPress engineering and technical AEO practice behind the AEO Readiness Checker. Every check targets a reproducible implementation issue found on production sites: stale structured data, missing language signals, and NAP drift that becomes visible only when the public listing is compared with the live page.

This is not the official Google Business Profile API and does not read data from your GBP dashboard — you decide what to paste, and nothing you paste is stored (see this site's privacy policy). Do not paste secrets or personal data you would not want logged. Results are heuristic checks, not a substitute for Search Console or a guarantee of ranking position.