No Organization or LocalBusiness schema
What is this issue?
This issue reports an Organization or LocalBusiness schema block your page already declares that is missing a required identity property — not a page that has no such schema at all.
A declared Organization is checked for name and url. A declared LocalBusiness
(or a specific subtype such as Restaurant, Store, MedicalClinic, Dentist or
Hotel) is checked for name and a well-formed address — a PostalAddress object
with streetAddress, addressLocality and postalCode. Either type is also checked
for url, and for a logo of at least 112×112px when one is declared.
What this issue is not:
- It does not guess. A page with no Organization or LocalBusiness schema is never reported, however clearly it names a company or lists a physical address in its visible content. Whether a page is meant to declare this schema is an editorial decision the markup cannot settle.
- It is not the location check.
address.addressCountry,geocoordinates,telephoneand opening hours are a declared LocalBusiness's location block, and are reported separately under issue #96 so that no fact is reported twice.
Why it matters
Organization and LocalBusiness schemas are critical for brand visibility and local SEO:
- Knowledge Graph panels: Organization schema powers the information box shown in branded search results
- Local 3-pack: LocalBusiness schema is required to appear in Google's local 3-pack results
- Google Maps: LocalBusiness schema helps your business appear in Google Maps results
- Voice search: Voice assistants rely on LocalBusiness schema to answer "near me" queries
- Brand entity recognition: Organization schema helps Google understand your brand as a distinct entity
- Social profile linking:
sameAsproperty connects your website to your social media profiles
Resolving this issue improves your SEO health score by ensuring search engines can properly identify and display your business information in search results.
How to fix it
If this issue was raised, your page already declares an Organization or LocalBusiness block — open the finding for the exact property at fault and correct it there. The steps below are for a page that declares none yet: worthwhile to add, and never reported as a defect while absent.
For Organization Schema:
Add JSON-LD structured data to your homepage or About page:
{ "@context": "https://schema.org", "@type": "Organization", "@id": "https://www.example.com/#organization", "name": "Your Company Name", "url": "https://www.example.com", "logo": "https://www.example.com/logo.png", "contactPoint": { "@type": "ContactPoint", "telephone": "+1-800-555-0100", "contactType": "customer support" }, "sameAs": [ "https://linkedin.com/company/yourcompany", "https://twitter.com/yourcompany", "https://facebook.com/yourcompany" ] }Include recommended properties:
foundingDate: When your company was foundedaddress: Company address (if applicable)description: Brief company description
Validate with Google's Rich Results Test
For LocalBusiness Schema:
Choose the correct LocalBusiness subtype from Schema.org:
Restaurant,Store,MedicalClinic,Hotel,HairSalon, etc.- Use the most specific type that matches your business
Add JSON-LD structured data to your Contact or About page:
{ "@context": "https://schema.org", "@type": "Restaurant", "name": "Your Business Name", "address": { "@type": "PostalAddress", "streetAddress": "123 Main St", "addressLocality": "City", "addressRegion": "State", "postalCode": "12345", "addressCountry": "US" }, "telephone": "+1-555-123-4567", "openingHoursSpecification": [ { "@type": "OpeningHoursSpecification", "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"], "opens": "09:00", "closes": "17:00" } ], "geo": { "@type": "GeoCoordinates", "latitude": "40.7128", "longitude": "-74.0060" } }Validate with Google's Local Business Structured Data Testing Tool
Examples
Example 1: No Schema Declared — Not This Issue
<!-- Homepage without any Organization schema -->
<html>
<head>
<title>Example Corp - Home</title>
</head>
<body>
<header>
<img src="/logo.png" alt="Example Corp Logo" />
<h1>Example Corp</h1>
</header>
<p>Welcome to our website.</p>
</body>
</html>Nothing is reported. The page names the company and shows a logo, but whether it was meant to declare Organization schema is an editorial decision the markup cannot settle — see How to fix it for why adding it anyway is worthwhile.
Example 2: LocalBusiness Schema for a Restaurant (passes)
{
"@context": "https://schema.org",
"@type": "Restaurant",
"name": "Joe's Pizza",
"url": "https://joespizza.example.com",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main St",
"addressLocality": "New York",
"addressRegion": "NY",
"postalCode": "10001",
"addressCountry": "US"
},
"servesCuisine": ["Italian", "Pizza"]
}name, url and a well-formed address are all present, so this passes #89. The
location fields declared alongside it — telephone, geo, opening hours — are
evaluated separately, under issue #96.
Example 3: Organization Schema Missing url (fails)
Problematic state:
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Tech Startup"
}Reported: url missing. A missing logo is not part of this finding — it is
recorded as a recommendation, since Google does not require one.
Corrected state:
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Tech Startup",
"url": "https://www.techstartup.com",
"logo": {
"@type": "ImageObject",
"url": "https://www.techstartup.com/logo.png",
"width": 200,
"height": 200
},
"sameAs": ["https://linkedin.com/company/techstartup"]
}Example 4: LocalBusiness With a Malformed Address (fails)
Problematic state:
{
"@context": "https://schema.org",
"@type": "Store",
"name": "Corner Bookshop",
"address": "4 Market Row, Leeds, LS1 6DG"
}Reported: address must be a PostalAddress object, not a plain string.
Corrected state:
{
"@context": "https://schema.org",
"@type": "Store",
"name": "Corner Bookshop",
"address": {
"@type": "PostalAddress",
"streetAddress": "4 Market Row",
"addressLocality": "Leeds",
"postalCode": "LS1 6DG",
"addressCountry": "GB"
}
}How PixyScan detects this
This check never guesses whether a page "should" carry Organization or LocalBusiness schema. It only examines schema the page actually declares.
Read the declared structured data: every JSON-LD block on the page is parsed, and
@graphwrappers (the shape Yoast, RankMath and stock WordPress emit) are flattened so each entity inside is seen individually.Select the declared entities: any schema whose
@typeisOrganization,LocalBusiness, or one of the recognised LocalBusiness subtypes —Restaurant,Store,MedicalClinicand others — including a@typewritten as an array, a full IRI (https://schema.org/Organization), or aschema:prefix. A page that declares none of these is not examined at all, and nothing is reported.Check the required properties:
Organization—nameandurlmust be presentLocalBusiness(and its subtypes) —nameandaddressmust be present
Check additional identity fields, regardless of type:
url— flagged if missing, even thoughSCHEMA_REQUIRED_PROPERTIESonly lists it forOrganizationlogo— if declared as anImageObject, itswidth/heightmust be present and at least 112×112px; if no logo is declared at all, that is recorded as a recommendation, never a findingaddress(LocalBusiness subtypes only) — must be aPostalAddressobject carrying non-emptystreetAddress,addressLocalityandpostalCode. A bare string, or an@idpointer to an address defined elsewhere, is not the same fault: a pointer is followed, not flagged.
Check for conflicting duplicates: if the page declares two or more
Organizationblocks (or twoWebSiteblocks, checked under #90) that disagree onnameorurl, that is reported once as a conflicting-declaration finding — duplicate blocks that agree are harmless and not flagged.This is reported when: the page declares
Organizationor aLocalBusinesstype and that declaration is missing a required property above, or is otherwise malformed. A page that declares no Organization/LocalBusiness schema at all is never reported — that state is out of scope for this check (see #96 for the location-specific fields of an already-declared LocalBusiness:geo,telephone, opening hours, andaddress.addressCountry).
What we store
Storage Level
Page Level — This issue is evaluated for each individual URL that contains structured data.
Database Table / Prisma Model
PageStructuredData
Stored Fields
| Field | Type | Description |
|---|---|---|
| schemaType | SchemaType | The type of schema (e.g., Organization, Person) |
| schemaFormat | SchemaFormat | The format of the schema (JSON-LD, Microdata, RDFa) |
| schemaIdentifier | String? | Unique identifier for the schema |
| rawJson | Json? | The raw JSON-LD or structured data content |
| schemaErrors | Json? | Array of validation errors found in the schema |
| isValidSchema | Boolean? | Whether the schema is valid according to validation |
| missingFields | Json? | Reserved for future use — the crawler always writes null here today; no check currently populates it |
Detection Dependencies
- The following data sources are required to evaluate this issue:
- HTML Document — The crawler parses the HTML to find structured data (JSON-LD, Microdata, RDFa)
- Structured Data Validation — The extracted schema is validated against Schema.org definitions
- Schema Parser — JSON-LD scripts, Microdata attributes, and RDFa markup are parsed