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.
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.
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.
ID: marketing-local-seo.local-schema.business-hours-schema
Severity: medium
What to look for: Check the LocalBusiness JSON-LD for an openingHoursSpecification property (array of objects with dayOfWeek, opens, and closes) or an openingHours property (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 openingHoursSpecification or openingHours with at least 1 entry covering at least 1 day of the week, OR the business has explicitly indicated it operates 24/7 via openingHours: ["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" }
]