How to add opening hours (and hours schema)
When your hours are published as both visible text and structured data, Google can show a live “Open now” or “Closes 5 PM” label on your listing — the kind of detail that turns a search into a visit.
When your hours are published as both visible text and structured data, Google can show a live “Open now” or “Closes 5 PM” label on your listing — the kind of detail that turns a search into a visit.
Opening hours schema (openingHoursSpecification) is JSON-LD that states, for each day, when you open and close in 24-hour format. It usually lives inside your LocalBusiness markup.
Pair it with the same hours shown as visible text on your contact page or footer — Google wants the structured data to match what a visitor can see.
Accurate hours schema lets Google display “Open now,” closing time, and special-hours notices directly in the local pack and Maps. That real-time context influences whether a nearby searcher chooses you, and stale or missing hours are a common reason customers arrive to a closed door and leave a bad review.
Abby flags “Opening Hours” when a local business page has no openingHoursSpecification in its schema (or no visible hours). The fix is publishing hours in both places, consistently.
Run Abby's free scan — it checks this and 25 other on-page, technical, and structured-data signals in about 60 seconds, no signup.
Scan my site freePublish your hours as visible text AND in openingHoursSpecification JSON-LD (dayOfWeek plus opens/closes in 24-hour format). Consistent hours let Google show "Open now" and closing time in the local pack and Maps.
Before
<!-- Hours not in schema: Google cannot show an Open-now label -->
After
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"openingHoursSpecification": [{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
"opens": "08:00",
"closes": "17:00"
}]
}
</script>
Yoast Local SEO and Rank Math can output opening-hours schema from your settings; also display the hours in a footer or contact-page block.
Add an opening-hours section to your contact page and include openingHoursSpecification in your LocalBusiness JSON-LD.
Applies to businesses with customer-facing hours (storefronts, clinics, restaurants). By-appointment-only, 24/7, or online-only businesses may have no fixed hours to publish.
Abby's free scan finds which of 26 checks your site fails. The $8.99 fix guide turns each one into a copy-ready fix for your exact pages — prioritized, with code — or bundle it with a security fix guide for $19.99.
Get my fix plan24-hour HH:MM format (e.g. 08:00, 17:00) in the opens/closes fields, with dayOfWeek naming the days. Google converts it to the visitor's local display format.
Use a separate OpeningHoursSpecification entry with validFrom and validThrough dates for the special period. Keeping holiday hours current prevents customers arriving to an unexpectedly closed business.
Yes. Google expects the structured data to reflect what a visitor sees on the page. Update both together whenever your hours change.