NAP consistency checker and local schema audit
This free NAP consistency checker reads one page and compares the name, address and phone in your business schema with what is actually written on the page. Phones are matched digit for digit, addresses word by word after normalising abbreviations, and it checks opening hours, geo coordinates and sameAs profile links too.
- Checks
- 7, on one page
- Matches
- schema against visible text
- Cost
- free, no signup
Seven checks
Open any check for why it matters and how to fix it
-
Not runBusiness schema present—
Why it mattersWithout a LocalBusiness or Organization node, search engines infer your details from page text. The checker looks for LocalBusiness, Organization, Store, Restaurant, Dentist, Physician and ProfessionalService nodes.
How to fixAdd a JSON-LD node of the most specific type that fits, with name, telephone and a full PostalAddress that match the page.
-
Not runPhone matches the page—
Why it mattersA phone number in your markup that appears nowhere in your visible text is a mismatch a directory may treat as a different business. Formatting is ignored; the digits must agree.
How to fixShow the same number in the visible text, ideally as a tel: link, as the one in your schema. Use your real primary line, not a tracking number.
-
Not runAddress matches the page—
Why it mattersA human sees Suite 4 and Ste 4 as one address; a matching system may see two. The checker normalises street, avenue, road and suite abbreviations, then measures how many address words appear in the text and how many are written identically.
How to fixWrite the address the same way in schema and on the page, including the postcode. It passes when both shares reach 80%.
-
Not runOne primary number—
Why it mattersSeveral distinct numbers on one page make it ambiguous which is your main line.
How to fixKeep two or fewer distinct numbers on the page, and label any secondary line clearly, for example sales or support.
-
Not runOpening hours in markup—
Why it mattersHours written only as text have to be interpreted. Declared in markup, they are stated in a standard format.
How to fixAdd openingHoursSpecification (or openingHours) to the business node, matching the hours shown on the page.
-
Not runGeo coordinates—
Why it mattersCoordinates remove ambiguity when a street name repeats across a city or region.
How to fixAdd a GeoCoordinates object with latitude and longitude taken from your map pin.
-
Not runsameAs profile links—
Why it matterssameAs is the clearest way to state which profiles belong to you, such as your Business Profile and social accounts. Most local sites omit it, which leaves the connection to be inferred.
How to fixAdd a sameAs array of the URLs of your official profiles.
What the checker read
Business nodes in the JSON-LD and every phone number in the visible text
Nothing to show yet. After a check, the business nodes found in JSON-LD (type, name, phone, address) and every phone number found in the visible text appear here.
How to read the address match
The address check reports two shares: how many of the schema address words appear in the page text, and how many are written identically. Both need to reach 80% to pass. The overall score is passes plus half of the needs-work results, divided by 7 and shown out of 100.
Strong agreement. Your markup and your page describe the same address in compatible terms.
Partial. Usually an abbreviation difference or a missing element such as the postcode.
Your markup and your page are effectively describing different addresses. Fix this before touching any directory listing.
Score bands: 100 is Consistent, 70 to 99 is Minor gaps, below 70 is Inconsistent. Matching is word-based after normalising common abbreviations, so a high percentage means strong agreement rather than character-identical formatting.
Why do machines match on strings?
Directories and search engines build a business entity by matching records. A person reading Suite 4 and Ste 4 sees one address; a matching algorithm across dozens of directories may see two. When records disagree, the entity can fragment, and there is no warning or error: the listing simply performs worse than it should.
Most inconsistency does not begin at a directory. It begins on your own site, with markup that says one thing and page text that says another. Abbreviations, punctuation in phone numbers and a missing postcode are each enough to make two records look like two businesses.
Google's structured data guidelines say not to mark up content that is not visible to readers of the page. A phone or address that lives only in your schema is exactly that, and it is what this checker compares.
How to run and fix the check
-
Step 1
Check your contact or location page
That is where your details should be most complete. The checker reads the JSON-LD and the visible text of that one page.
-
Step 2
Confirm a business node exists
If Business schema fails, nothing else can be compared. Add a LocalBusiness node of the most specific type first.
-
Step 3
Align phone and address
Make the schema phone appear digit for digit on the page and write the address identically in both places, postcode included.
-
Step 4
Add hours, geo and sameAs
These are missing signals rather than mismatches. Add them to the same node so the details are complete.
-
Step 5
Repeat for every location and the footer
If your details also appear in a footer or on other location pages, run the checker against each. One page per location, one node per page.
This checks the part you control, not the whole problem
Getting your own markup and page to agree is necessary, and it is where most inconsistency starts. It is not the same as auditing your presence across the web, and we would rather say so than imply otherwise.
Consistency is not ranking. Review velocity, profile completeness and proximity move the map pack. Consistency stops you losing ground you already hold.
What the checker does
- Reads one page's JSON-LD business nodes
- Extracts phone numbers from visible text and tel: links
- Compares phone digits and address words
- Checks for opening hours, geo coordinates and sameAs
What it does not do
- Query Google Business Profile, Yelp, Justdial or Apple Maps
- Show your map pack position, which needs live SERP data
- Compare several pages at once
- Validate the rest of your schema (use the Schema Markup Validator)
Need help aligning your business details?
Review the business name, address and phone details across the pages and profiles you maintain.
NAP consistency, answered plainly
Short, standalone answers. Email editorial@moxseo.com if any of them is wrong.
What does NAP consistency mean?
NAP stands for name, address and phone. NAP consistency means those details are written the same way everywhere they appear, starting with your own site's structured data and visible text. The NAP Consistency Checker compares the two on one page.
Does formatting really matter that much?
For entity matching, yes. Different systems normalise differently, and the safest position is that your details are written identically everywhere you control.
Does this checker look at my Google Business Profile or directories?
No. It reads one page on your site and compares its schema with its own visible text. Verifying Google Business Profile, Yelp, Justdial or Apple Maps means checking each of those listings directly.
What if I have several locations?
Each location needs its own page and its own LocalBusiness node. One node listing several addresses is ambiguous. Run the checker against each location page.
Should the phone in schema be the tracking number?
No. Use your real primary line in markup. Call tracking numbers that appear only in schema are a common source of mismatch.
Is sameAs actually important?
It is the clearest way to state which profiles belong to you. Most local sites omit it, which leaves the connection to be inferred.
How is the NAP score calculated?
There are seven checks. Each pass counts as one, each needs-work result as a half and each fail as zero. The total is divided by seven and shown out of 100. A score of 100 is Consistent, 70 to 99 is Minor gaps and below 70 is Inconsistent.
Run the next check
All 24 free tools- Schema Markup GeneratorGenerate LocalBusiness JSON-LD that matches your NAP.
- Schema Markup ValidatorCheck required properties on your LocalBusiness node.
- Person and Organization Schema GeneratorBuild Organization JSON-LD with sameAs links.
- Knowledge Panel Readiness CheckerSee which Wikidata items match your business name.
- On-Page SEO AuditIndexability, headings and meta for the same page.
Consistent markup is the floor,
not the ceiling.
Once your own details agree, the work that moves the map pack begins: citations, profile completeness, review velocity and the pages that support each location. See our local SEO services or book a free 30-minute call with Sakshi Kumari or Ashish Khan.
A call is not an engagement. We never guarantee rankings or map pack positions.




