Organization / LocalBusiness Schema Missing
Issue No: 57
Category: Structured Data & Rich Results
Issue type: Issue
Priority: CRITICAL
Description
The homepage or About page is missing Organization schema, and/or a site with a physical location is missing LocalBusiness schema. Without these, Google cannot recognise the brand as a named entity with a logo, contact details, and social profiles, and local businesses lose eligibility for the local 3-pack, Maps knowledge panels, and voice search results.
How do we capture it
- Fetch homepage, About page, and Contact page HTML
- Extract JSON-LD blocks and check for
"@type": "Organization","@type": "LocalBusiness", or a recognised subtype (Corporation,Restaurant,Store,MedicalClinic, etc.) - Detect visible physical address or phone number on any page
- If
Organizationabsent on homepage/About → trigger Organization rule - If physical address/phone detected but
LocalBusinessabsent → trigger LocalBusiness rule
What to store
StructuredDataAudit record with schemaType = Organization or schemaType = LocalBusiness, issueNumber = 57, plus StructuredDataField rows:
| Field | Type | Comment |
|---|---|---|
has_logo | boolean | logo property with an image URL present |
has_same_as | boolean | sameAs array linking to social profiles |
has_contact_point | boolean | contactPoint with phone or email present |
has_founding_date | boolean | foundingDate declared |
has_address | boolean | address with PostalAddress present |
has_phone | boolean | telephone present |
has_opening_hours | boolean | openingHoursSpecification present |
has_geo | boolean | geo with lat/long coordinates present |
detected_subtype | string | Specific LocalBusiness subtype detected |
Core audit fields used: isPresent, hasName, hasUrl, hasId, hasImage, isServerSide, rawJson
Condition for trigger
Organization
-
Trigger Rule 1: Organization schema absent
- Target Field:
isPresent - Evaluation Logic:
isPresent = falsefor Organization on homepage/About - Severity: CRITICAL
- Diagnostic Message: "No Organization schema block found on homepage or About page."
- Target Field:
-
Trigger Rule 2: Name missing
- Target Field:
hasName - Evaluation Logic:
hasName = false - Diagnostic Message: "No Organization schema block found on homepage or About page."
- Target Field:
-
Trigger Rule 2: Name missing
- Target Field:
hasName - Evaluation Logic:
hasName = false - Severity: CRITICAL
- Diagnostic Message: "Organization schema block exists but the
nameproperty is absent."
- Target Field:
-
Trigger Rule 3: URL missing
- Target Field:
hasUrl - Evaluation Logic:
hasUrl = false - Severity: IMPORTANT
- Diagnostic Message: "Organization schema block exists but the
urlproperty is absent."
- Target Field:
-
Trigger Rule 4: Logo missing
- Target Field:
has_logo - Evaluation Logic:
has_logo = false - Severity: IMPORTANT
- Diagnostic Message: "Organization schema has no
logoproperty — prevents Knowledge Panel logo from appearing."
- Target Field:
LocalBusiness
-
Trigger Rule 5: LocalBusiness schema absent on local site
- Target Field:
isPresent - Evaluation Logic:
isPresent = falseAND physical address is detectable on any page - Severity: CRITICAL
- Diagnostic Message: "Physical address detected on page but no LocalBusiness schema found."
- Target Field:
-
Trigger Rule 6: Address missing
- Target Field:
has_address - Evaluation Logic:
has_address = false - Severity: IMPORTANT
- Diagnostic Message: "LocalBusiness schema present but no
PostalAddressdeclared."
- Target Field:
-
Trigger Rule 7: Phone missing
- Target Field:
has_phone - Evaluation Logic:
has_phone = false - Severity: STANDARD
- Diagnostic Message: "LocalBusiness schema present but
telephoneis not declared."
- Target Field:
Sources
- Schema.org — Organization
- Schema.org — LocalBusiness
- Google — Organization Schema
- Google — Local Business Structured Data
- Google — Logo Structured Data
- Google Business Profile
- Schema Markup Validator
Long description
Organization
Organization defines a company or brand as a formal entity. It powers Google's Knowledge Graph panel — the information box appearing to the right of branded search results showing logo, description, social links, and contact info.
The sameAs property links your schema entity to your LinkedIn, Twitter, Facebook, and other profiles, telling Google all these accounts belong to the same brand.
Full example:
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://www.example.com/#organization",
"name": "Example Corp",
"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/example",
"https://twitter.com/example"
"@type": "Organization",
"@id": "https://www.example.com/#organization",
"name": "Example Corp",
"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/example",
"https://twitter.com/example"
]
}
Without it: No Knowledge Panel, no logo in SERPs, weaker brand entity for AI systems.
LocalBusiness
LocalBusiness extends Organization with physical location context. It is the foundation for local SEO, directly influencing the local 3-pack, Google Maps knowledge panel, and voice search ("find a coffee shop near me").
Common subtypes: Restaurant, Store, MedicalClinic, LegalService, Hotel, AutomotiveBusiness, FinancialService, EducationalOrganization.
Example:
{
"@context": "https://schema.org",
"@type": "Restaurant",
"name": "The Example Bistro",
"url": "https://www.example.com",
"image": "https://www.example.com/photo.jpg",
"telephone": "+1-800-555-0199",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main St",
"addressLocality": "Austin",
"addressRegion": "TX",
"postalCode": "78701",
"addressCountry": "US"
},
"geo": { "@type": "GeoCoordinates", "latitude": 30.2672, "longitude": -97.7431 },
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
"opens": "11:00",
"closes": "22:00"
}
],
"sameAs": ["https://maps.google.com/?cid=YOUR_ID", "https://www.yelp.com/biz/example"]
}
How to Fix
- Add
OrganizationJSON-LD to the homepage<head>for all sites - For sites with a physical location, use the most specific
LocalBusinesssubtype (e.g.Restaurant, not genericLocalBusiness) - Include
logoas an absolute URL to a real, accessible image - Add
sameAswith all official social profiles and directories - Use
@idto make the entity referenceable fromArticleand other schema types - For
LocalBusiness: add fullPostalAddress,telephone,openingHoursSpecification, andgeocoordinates - Keep
openingHoursSpecificationcurrent — stale hours are worse than none - Validate at Rich Results Test