NAP inconsistency — variations in your business name, address, or phone number across footer, contact page, JSON-LD schema, and config files — is one of the most heavily weighted negative factors in local search ranking algorithms. Citation aggregators and Google's local index cross-reference every mention of your NAP data; even minor format differences like Main St vs Main Street or (555) 555-1234 vs +15555551234 create conflicting signals that suppress local pack placement. This is a schema-org LocalBusiness correctness issue with direct revenue impact for any location-dependent business.
Critical because NAP inconsistency directly suppresses local pack rankings by creating conflicting entity signals across the citation graph that Google uses to determine local search placement.
Centralize all NAP data in a single source-of-truth module and import it everywhere it's rendered or serialized.
// src/lib/business-info.ts
export const BUSINESS = {
name: "Springfield Plumbing",
phone: "+15555555555",
phoneDisplay: "(555) 555-5555",
address: {
street: "123 Main Street",
city: "Springfield",
state: "OH",
zip: "45501",
country: "US",
},
} as const;
Replace every hardcoded NAP string in src/components/footer.tsx, app/contact/page.tsx, and any JSON-LD generator with imports from this file.
ID: marketing-local-seo.nap-business-info.nap-consistency
Severity: critical
What to look for: Locate every instance of the business name, address, and phone number across the codebase. Check footer components, contact page, about page, JSON-LD schema, and any constants or config files. Compare all instances for consistency. Look for variations like different phone number formats (555-1234 vs (555) 555-1234 vs +15555551234), abbreviated vs full street names (St vs Street), suite number variations, or business name shortened in some places.
Pass criteria: Enumerate all locations where NAP data appears (footer, contact page, schema, headers). The business name, address, and phone must be identical in 100% of locations. Report the count of NAP instances found even on pass.
Cross-reference: For phone clickability and address display, see the phone-clickable and address-displayed checks below.
Fail criteria: Any inconsistency in the business name, address, or phone number across different files or components. Even minor format differences count as inconsistencies (e.g., "Main St" vs "Main Street" in different places).
Skip (N/A) when: No NAP data is found anywhere in the codebase (the business has not yet added its address/phone to the site), or whole-audit N/A rule applies.
Detail on fail: Describe the specific inconsistency. Example: "Phone number appears as '555-555-1234' in footer.tsx and '+1 (555) 555-1234' in structured data — formats differ" or "Address in contact/page.tsx says '123 Main St' but JSON-LD schema says '123 Main Street'"
Remediation: Centralize NAP data in a single constants file:
// src/lib/business-info.ts
export const BUSINESS = { name: "Springfield Plumbing", phone: "+15555555555", address: "123 Main St, Springfield, OH 45501" }
Import this everywhere to keep all instances synchronized.