# LocalBusiness schema includes required fields

- **Pattern:** `ab-001765` (`marketing-local-seo.local-schema.schema-required-fields`)
- **Severity:** high
- **Lifecycle:** active
- **Last modified:** 2026-04-18
- **Canonical URL:** https://auditbuffet.com/patterns/ab-001765
- **License:** CC-BY-4.0 — attribute to AuditBuffet Pattern Catalog (https://auditbuffet.com/patterns/ab-001765)

## Why it matters

A LocalBusiness JSON-LD block without `name`, `address`, and `telephone` is structurally incomplete per schema-org LocalBusiness and schema-org PostalAddress specifications. Google requires these three fields to associate your structured data with a real physical entity. A schema missing `telephone` or a properly nested `PostalAddress` with at least `streetAddress` and `addressLocality` will not generate a Knowledge Panel entry or local pack listing, and Google may ignore the entire block.

## Severity rationale

High because incomplete required fields cause Google to discard the LocalBusiness schema entity, negating the visibility benefit of having structured data at all.

## Remediation

Add the missing required fields directly to your LocalBusiness JSON-LD in `app/layout.tsx` or a dedicated `src/components/structured-data.tsx`.

```json
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "Springfield Plumbing",
  "telephone": "+15555555555",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 Main St",
    "addressLocality": "Springfield",
    "addressRegion": "OH",
    "postalCode": "45501",
    "addressCountry": "US"
  }
}
```

All three fields — `name`, `telephone`, and `address` — must be non-empty. An address object missing `addressLocality` is treated as absent.

## Detection

- **ID:** `schema-required-fields`
- **Severity:** `high`
- **What to look for:** If a LocalBusiness JSON-LD block exists (from the previous check), inspect its fields. Required fields are: `name`, `address` (with at minimum `streetAddress`, `addressLocality`, and `addressCountry` as sub-properties), and `telephone`.
- **Pass criteria:** Enumerate all fields present in the LocalBusiness JSON-LD. 100% of the 3 required fields must be present: `name` (non-empty string), `address` (object with at least 2 sub-properties: `streetAddress` and `addressLocality`), and `telephone` (non-empty string). Must not pass when any of the 3 required fields is missing or empty.
- **Fail criteria:** Any of the three required fields (`name`, `address`, `telephone`) is missing or empty in the LocalBusiness schema. Quote the actual JSON-LD to show which fields are present and which are absent.
- **Skip (N/A) when:** No LocalBusiness JSON-LD exists (caught by `local-business-jsonld` check), or whole-audit N/A rule applies.
- **Detail on fail:** List the missing fields. Example: `"LocalBusiness schema missing: telephone. address.streetAddress present but address.addressLocality absent"` or `"LocalBusiness schema has name and address but no telephone field"`
- **Remediation:** Add the missing fields to your JSON-LD in `app/layout.tsx` or a dedicated `src/components/structured-data.tsx`:

  ```json
  { "@context": "https://schema.org", "@type": "LocalBusiness",
    "name": "Your Business", "telephone": "+15555555555",
    "address": { "@type": "PostalAddress", "streetAddress": "123 Main St", "addressLocality": "Springfield" }
  }
  ```

## External references

- schema-org LocalBusiness
- schema-org PostalAddress

Taxons: findability, content-integrity

HTML version: https://auditbuffet.com/patterns/ab-001765
