Café and Bakery Schema: Copy-Paste JSON-LD Example
A customer asking where to get a pastry before work needs the right location and the right morning hours. Bakery markup labels those basics; a coffee-led business can use CafeOrCoffeeShop instead.
Choose the right business type
This example uses Bakery because baked goods are the main business. If drinks and café seating define the place, switch @type to CafeOrCoffeeShop. Use one type that best describes the location. See the schema.org Bakery definition for the type and its inherited fields.
Copy-paste Bakery JSON-LD
Copy the complete block into your homepage’s <head>. Change every example value, including the service and hours. Remove fields that do not apply.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Bakery",
"name": "Example Crumb Bakery",
"url": "https://example.com/cafe-bakery-schema-example/",
"telephone": "+1-217-555-0108",
"description": "Neighborhood bakery serving breads and pastries.",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main St",
"addressLocality": "Springfield",
"addressRegion": "IL",
"postalCode": "62701",
"addressCountry": "US"
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"https://schema.org/Tuesday",
"https://schema.org/Wednesday",
"https://schema.org/Thursday",
"https://schema.org/Friday",
"https://schema.org/Saturday",
"https://schema.org/Sunday"
],
"opens": "07:00",
"closes": "15:00"
}
],
"makesOffer": {
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Bread and pastries"
}
},
"servesCuisine": "Bakery"
}
</script>
What each field does
@contexttells readers that the property names come from schema.org.@typesays this is aBakery, a specific kind of local business.nameis the business name customers see.urlis its official website page.telephoneis the public number, including country and area code.descriptionbriefly names what the business really does. Keep it consistent with visible page copy.addressgroups the street, city, state, ZIP and country underPostalAddress. Use a real customer-facing location, not a mailing address that people cannot visit.openingHoursSpecificationgives local opening and closing times for the listed days. Closed days are left out. Change the schedule to your actual regular hours.makesOffernames one example service customers can ask about. Replace it with a service you actually provide, or remove the whole field.servesCuisinelabels the kind of food. Remove it if it does not fit your business.
One detail to check for Bakery
A menu URL is useful only if the menu page is live and current. If daily items change, describe the selection plainly on the site instead of promising a particular item in structured data.
If the kitchen stops serving before the shop closes, explain that on the visible menu or hours page. The weekly opening hours here should reflect when customers can actually visit.
How to add it to your site
Add the code once on the homepage or the matching location page. Put it in the page’s head section when the platform allows it. Keep your visible name, contact details and hours in sync with the code.
- WordPress: Use a trusted header code plugin or your theme’s head-code setting. Paste the entire script into the homepage head. If an SEO plugin already outputs Bakery data, edit that data instead of creating a conflicting duplicate.
- Squarespace: Open Settings → Advanced → Code Injection and paste the block in Header. If you have multiple locations, use page-level injection where available so this location’s details appear on its own page.
- Wix: Open Settings → Custom Code, add the block to Head, and set it to the relevant page. Publish the site after saving.
- Shopify: In Online Store → Themes → Edit code, add the block to
theme.liquidinside<head>. For a single physical location, restrict it to the homepage so product pages do not all claim to be the location page. - GoDaddy Website Builder: Use its custom HTML or head-code setting if your plan exposes one. Some versions only offer a body HTML section; check the published source to make sure the JSON-LD script is present. If your plan does not allow custom code, ask support or your site editor about head injection.
Test the published page
- Paste the live page URL into Schema Markup Validator. Confirm it detects
Bakeryand that each property contains your real details. - Run the same URL through Google Rich Results Test. It checks Google-supported rich result features; a valid schema type may show no eligible rich result. That does not mean the JSON-LD is invalid.
- View page source and search for
application/ld+json. Make sure the script appears once for this location, without leftover fictional values or mismatched hours.
Valid markup helps machines read facts on a page. It does not guarantee a Google feature or a recommendation from an AI assistant.
Want a second set of eyes?
Run the free site check to see whether your homepage exposes its business details. If you want us to write the schema and customer FAQ, check your listings, and compare AI answers before and after, the AI Visibility Kit is $149.
Run the free checkAsk about the Kit