Business hours structured data is present
Why it matters
Business hours in structured data via schema-org OpeningHoursSpecification or schema-org openingHours enable Google to display your open/closed status directly in search results and Maps. Without this, customers clicking through from search have no immediate answer to whether you're currently open — a friction point that drives them to competitors who have the data surfaced. Hours omission also prevents Google's "Open now" filter from returning your business.
Severity rationale
Medium because missing hours degrade the search result snippet and exclude the business from 'Open now' filter queries, reducing click-through without blocking indexing entirely.
Remediation
Add openingHoursSpecification to your LocalBusiness JSON-LD in app/layout.tsx. Use one object per day group, with 24-hour time strings.
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
"opens": "09:00",
"closes": "17:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Saturday"],
"opens": "10:00",
"closes": "14:00"
}
]
For 24/7 businesses, use "openingHours": ["Mo-Su 00:00-23:59"] instead.
Detection
-
ID:
business-hours-schema -
Severity:
medium -
What to look for: Check the LocalBusiness JSON-LD for an
openingHoursSpecificationproperty (array of objects withdayOfWeek,opens, andcloses) or anopeningHoursproperty (array of strings in the format "Mo-Fr 09:00-17:00"). Also check for a dedicated hours component or page section that could contain this data. -
Pass criteria: Count all hours-related properties in the LocalBusiness JSON-LD. The schema must include either
openingHoursSpecificationoropeningHourswith at least 1 entry covering at least 1 day of the week, OR the business has explicitly indicated it operates 24/7 viaopeningHours: ["Mo-Su 00:00-23:59"]. -
Fail criteria: No hours data in the LocalBusiness schema and no indication that the business is always open.
-
Skip (N/A) when: No LocalBusiness JSON-LD exists (caught by parent checks), or the business type is one that inherently has no regular hours (e.g., a purely online service), or whole-audit N/A rule applies.
-
Detail on fail:
"LocalBusiness JSON-LD has no openingHoursSpecification or openingHours property. Business hours missing from structured data." -
Remediation: Add hours to your LocalBusiness JSON-LD in
app/layout.tsx:"openingHoursSpecification": [ { "@type": "OpeningHoursSpecification", "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"], "opens": "09:00", "closes": "17:00" } ]
External references
- schema-org · OpeningHoursSpecification — OpeningHoursSpecification type
- schema-org · openingHours — openingHours property on LocalBusiness
Taxons
History
- 2026-04-18·v1.0.0·Initial import from marketing-local-seo·automated