URL: /glossary/nap-consistency

---
title: "What is NAP in local SEO? Consistency and checks"
description: "NAP consistency means a business's name, address and phone number read the same across its pages, its structured data and its listings. How it is checked."
sidebarTitle: "NAP consistency"
---

**NAP consistency** means a business's name, address and phone number are written the same way everywhere they appear: across the site's pages, in its `LocalBusiness` structured data and in its listings elsewhere.

NAP is local search shorthand rather than a standard, and no search engine publishes a NAP score. What the documentation does say is concrete. Google's local business structured data asks for the address as a `PostalAddress` and the phone as `telephone`, and schema.org defines the parts of an address. A business that publishes those details has an interest in publishing one version of them.

{/* glossary:hub:start */}

Category: [Local SEO](/rules/local)

{/* glossary:hub:end */}

## Why it matters

Inconsistency creeps in quietly. The header has an old phone number, the footer has the new one, and the contact page has a third format. A suite number appears on one page and not another. A branch page shows its own number, which is correct, but the main number differs between templates. For a reader, two numbers raise the question of which one works. For anything that reads the site to build a picture of the business, it is a contradiction to resolve.

## How squirrelscan checks it

[local/nap-consistency](/rules/local/nap-consistency) runs across the crawl. It takes each page's primary phone number, from its first `tel:` link and then the `telephone` of its JSON-LD, and its postal address from JSON-LD `address`, and compares them across pages. A different number on some pages fails, and the same number written in several formats warns. It treats two numbers as the same when their last seven digits match. Phone and address are judged separately, each needing 10 pages that declare it and 70% agreement, so a multi-location site whose pages each show their own branch is not judged. It also notes whether any page has `LocalBusiness` or `Organization` markup, and whether the contact page carries a `tel:` or `mailto:` link. [schema/local-business](/rules/schema/local-business) checks the address parts in the markup. [eeat/physical-address](/rules/eeat/physical-address) looks for address markup and runs on sites the audit classifies as local businesses. It reads structured data only, so an address printed in the footer as plain text is not detected.

squirrelscan only sees the site. It does not check business listings or directories.

{/* glossary:rules:start */}

| Rule | What it flags | Severity |
|---|---|---|
| [NAP consistency: same name, address and phone everywhere](/rules/local/nap-consistency) | One phone number or address written several ways across a site. squirrel finds the site norm and lists every page that disagrees with it. | warning |
| [LocalBusiness schema: required name, address or areaServed](/rules/schema/local-business) | LocalBusiness markup with no name, an incomplete PostalAddress, or neither an address nor a service area. squirrel checks all three. | warning |
| [Physical address: PostalAddress and LocalBusiness schema](/rules/eeat/physical-address) | A real address is a trust signal a visitor can verify. squirrel looks for address structured data across the crawl. | info |

{/* glossary:rules:end */}

## How to fix it

Render the contact block from one source and include it in the layout:

```html
<address>
  Acme Coffee<br />
  1 Market Street, Suite 400<br />
  San Francisco, CA 94105<br />
  <a href="tel:+14155550142">(415) 555-0142</a>
</address>
```

Use the same written forms in the header, footer, contact page and `LocalBusiness` JSON-LD, and keep the `tel:` href in E.164 form ([the NAP fix](/rules/local/nap-consistency#how-to-fix-it)). Mark the address up as a `PostalAddress` on the node that owns it ([the address fix](/rules/eeat/physical-address#how-to-fix-it), [the LocalBusiness fix](/rules/schema/local-business#how-to-fix-it)). Then make your listings elsewhere match the site.

## Run the check

{/* glossary:run:start */}

```bash
squirrel audit https://example.com --rule-include local/nap-consistency,schema/local-business,eeat/physical-address
```

{/* glossary:run:end */}

A signed-out local audit costs nothing.

{/* glossary:related:start */}

## Related terms

- [LocalBusiness schema](/glossary/local-business-schema): LocalBusiness structured data with address, opening hours and geo coordinates for a physical business.
- [Geo meta tags](/glossary/geo-meta-tags): Legacy geo.region, geo.placename and geo.position meta tags that state a page's location; not to be confused with GEO, generative engine optimization.

{/* glossary:related:end */}

## References

- [Local business structured data, Google Search Central](https://developers.google.com/search/docs/appearance/structured-data/local-business)
- [LocalBusiness, schema.org](https://schema.org/LocalBusiness)
- [PostalAddress, schema.org](https://schema.org/PostalAddress)
