Schema markup generator for restaurants
Restaurants should use the Restaurant type, not plain LocalBusiness. Fill in the form and I’ll build valid JSON-LD you can paste into your site.
Restaurant JSON-LD
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Restaurant",
"@id": "https://stephenavekitchen.example/#business",
"name": "Stephen Avenue Kitchen",
"description": "A downtown Calgary restaurant serving seasonal Alberta dishes for lunch and dinner.",
"url": "https://stephenavekitchen.example/",
"telephone": "+1-403-555-0142",
"email": "hello@stephenavekitchen.example",
"image": "https://stephenavekitchen.example/images/photo.jpg",
"address": {
"@type": "PostalAddress",
"streetAddress": "100 Example Street SW",
"addressLocality": "Calgary",
"addressRegion": "AB",
"postalCode": "T2P 1J9",
"addressCountry": "CA"
},
"openingHours": [
"Mo-Fr 09:00-17:00"
],
"priceRange": "$",
"areaServed": [
"Calgary",
"Airdrie",
"Cochrane",
"Okotoks"
],
"servesCuisine": [
"Canadian",
"Seasonal",
"Alberta beef"
],
"acceptsReservations": true,
"hasMenu": "https://stephenavekitchen.example/menu",
"paymentAccepted": "Credit card, Debit",
"sameAs": [
"https://www.instagram.com/stephenavenuekitchen",
"https://www.linkedin.com/company/stephenavenuekitchen"
]
}
</script>Paste this into your page’s head, then test it with Google’s Rich Results Test and validator.schema.org. The example values are made up: replace every one.
Want this added to your restaurant’s website?
Send me your site and I’ll check your current structured data and send back corrected JSON-LD for it. Free.
The properties that matter for restaurants
Type: Restaurant. Every property below is a real schema.org property.
| Property | Why it matters |
|---|---|
servesCuisine | Cuisine is one of the first filters people use. It is how AI tools answer questions like where to get Alberta beef downtown. |
hasMenu | A link to an HTML menu page lets search engines read your dishes. |
openingHours | Hours are the most checked detail for any restaurant. Keep them right, including holidays. |
priceRange | A simple $ or $$ tells people what dinner will cost before they arrive. |
acceptsReservations | People want to know if they can book. It is a small field that answers a real question. |
Common mistakes
Linking hasMenu to a PDF. Use a real web page so search engines and screen readers can read it.
Leaving old hours in the schema after changing them on Google. Keep the two in sync.
Marking up reviews you collected yourself as stars. Google won’t show self-serving review stars for a LocalBusiness.
How to add it to your site
- Replace every example value in the form with your own details. They should match your Google Business Profile exactly.
- Copy the code and paste it into your page’s
<head>. Most site builders have a custom code field. On a hand-built site, it goes in the template. - Test the live page with Google’s Rich Results Test and validator.schema.org, and fix anything they flag.
- Add the same facts to the visible page. Structured data should describe what visitors can see. My website checklist for restaurants covers the rest.
Schema for restaurants: questions
The hasMenu property can link to your menu page. The menu page itself should be HTML, not a PDF. That is what search engines and AI tools can read.
Update openingHours when your hours change. If only the patio changes, explain that on the page.
Yes. Each location needs its own page with its own address, phone and hours. One block per real place.
Keep reading
- nick@tavro.ca
- 587-439-9994
- Calgary, Alberta