Your food is great. But if Google and ChatGPT cannot read your website, hungry people never find you.
Restaurant schema markup fixes that. It is a small piece of behind-the-scenes data that tells search engines and AI tools exactly what your restaurant is, what you serve, when you are open, and how to book a table. Get it right and your listing can show hours, price range, and a menu link right in search. Skip it and you blend into every other blue link.
This guide breaks down the schema markup for restaurants, the mistakes that quietly cost you clicks, and how to set it all up in WordPress without writing a single line of code.
What is Restaurant Schema Markup?

Restaurant schema markup is a small block of code (called JSON-LD) that you add to your website. It labels your restaurant details in a way machines can read. Search engines use it to show rich results like star ratings, hours, price range, and menu links. AI tools use it to answer questions like “What does this place serve?” or “Is it open now?”
The schema types that matter most for restaurants are:
- Restaurant for your main business details (name, address, hours, cuisine, price)
- Menu, MenuSection, and MenuItem for your dishes and prices
- acceptsReservations and ReserveAction for table bookings
- Review and AggregateRating for customer feedback
- FAQPage for common questions on your page
You can add all of these with one WordPress plugin or by pasting code by hand. Both methods are covered below.
Why Restaurant Schema Matters (and What It Will Not Do)
Schema markup helps in three ways.
1. Richer search listings. When Google understands your data, your listing can show extra details like price range, hours, and a menu link. Rich results tend to earn more clicks than plain blue links.
2. Better AI and voice answers. Tools like Google AI Overviews, ChatGPT, Perplexity, and voice assistants read structured data to build answers. When someone asks an AI, “Where can I get gluten-free pizza near me tonight?”, clean menu and hours data makes your restaurant easier to pick and quote. This is what people mean by AEO (Answer Engine Optimization) and GEO (Generative Engine Optimization).
3. Fewer mistakes. Structured data removes guesswork. You state your hours, address, and phone once, in a clear format, so search tools stop guessing.
Now the honest part. Schema markup is not a direct ranking factor. Google has said this many times. Adding it will not push you to position one by itself. What it does is make you eligible for rich results and easier for AI to understand. Think of it as clarity, not magic.
Key Schema Markup Types for Restaurants
These are the schema types worth knowing. Start with Restaurant, then add the others as you go.
Restaurant Your main business type. Holds your name, address, hours, cuisine, and price. Example: Bella Napoli Pizzeria, Italian, $$, open until 10pm.
MenuSection A group of dishes on the menu. Example: A “Starters” section with garlic bread and salad.
Offer The price and currency for a dish. Example: Margherita listed at $14.00 USD.
OpeningHoursSpecification Your hours, day by day. Example: Open Monday to Thursday, 11am to 10pm.
acceptsReservations Tells search tools you take bookings. Example: Set to your booking page link.
AggregateRating Your overall star score from many reviews. Example: 4.7 stars from 218 reviews.
Review A single customer review. Example: Maria gave 5 stars and praised the fast service.
FAQPage Common questions and answers on your page. Example: “Do you have vegan options?” “Yes, several.”
Event A special night or one-time happening. Example: Live jazz night this Friday at 8pm.
Use the most specific type that fits. Restaurant is your base, and the food-specific types like Menu and servesCuisine are what set you apart from a plain local business listing.
Good Read: LocalBusiness Schema Guide for Local SEO & Google Business Profile
How to Add Restaurant Schema in WordPress (no code needed)
You have two paths.
Path 1: Paste the code by hand
Write your own JSON-LD or grab a base Restaurant template from Google’s structured data docs, edit the values, and place it in the page. You can use a code block widget, your theme’s header settings, or your SEO plugin’s custom schema field. This works but breaks easily. If your hours or menu change, you have to remember to update the code too.
Path 2: Use a schema plugin
A plugin is faster and safer, especially if you have more than one page or location. SchemaEngine AI by RadiusTheme is one option built for this. It generates clean JSON-LD and checks it against Google’s Rich Results requirements before it goes live, so your markup stays error-free.
It gives you three ways to work:
- Manual mode for full control over every field, if you like to fine-tune.
- Auto mode to apply schema rules across your whole site by page type.
- AI mode to read your content, pick the right schema type, and fill in fields in one click.
It supports 30+ schema types including Local Business, works with WooCommerce and Easy Digital Downloads, and runs alongside Yoast SEO and RankMath without conflicts. There is a free version on WordPress.org, and Pro adds the AI features.
It also has a built-in review system that collects real reviews on your site and generates Review and AggregateRating markup for you.
Quick setup with a plugin looks like this.

1. Install and activate. In your WordPress dashboard, go to Plugins, click Add New, search for the plugin, then install and activate it. Once active, it shows up in your admin sidebar.

2. Run the setup wizard. Open the plugin from the sidebar and start the setup wizard. Here you pick which post types get schema, like pages, posts, or products.

3. Choose the Restaurant type. For each location page, select Restaurant (a Local Business type). This unlocks the food-specific fields you need, like cuisine and menu.

4. Fill in your core details. Enter your name, address, phone, hours, cuisine, and price range. Add your menu link here too. Keep every detail the same as your Google Business Profile.

5. Add your description and opening hours. Scroll to the Site Others Info block. Write a short description of your restaurant, then set your Opening Hours day by day. Pick each day and its open and close time, and use the Add Hours button for more days.

6. Set cuisine, menu link, and reservations. In the same Site Info area, fill in three key restaurant fields. Enter your food styles in Serves Cuisine. Paste your full HTML menu page link in Restaurant Menu URL. Then turn on the Accepts Reservations toggle if you take bookings.
Validate & Keep Your Schema in Sync
Adding schema is not a one-time job. Your data must match what people see on the page.
Test your markup. Use two free tools:
- Rich Results Test by Google to check if you qualify for rich results.
- Schema Markup Validator by Schema.org to catch code errors.

Watch Search Console. The Enhancements and structured data reports flag errors and warnings on your live pages. Check them monthly.
Keep it current. This is where restaurants slip. If you change your hours, raise prices, or swap the seasonal menu, update the schema the same day. A diner who sees truffle pasta in search and cannot order it will not be happy, and mismatched data can hurt trust with search tools.
Common Errors & Quick Fixes
- No rich results appear. Your markup is valid, but the type you used is not a supported visual result in Google. Not every schema type shows as a special listing. Set the right expectation, since many types just help search and AI understand your page.
- Review stars will not show. The cause is almost always self-review markup on your own local business. Google limits those stars to sites that review other businesses. Lean on your Google Business Profile for public stars instead.
- “Missing field” warning. A recommended property is empty. Add the field the testing tool flags, like priceRange or image, then test again.
- Wrong location shows. You likely copied the same schema block onto every page. Give each location page its own unique block with its own address, phone, and @id so search tools know which details belong where.
- Menu not read. The problem is usually a PDF menu, which search engines and AI struggle to read. Publish a normal HTML menu page and link to it so your dishes become readable.
Good Read: AI Search Visibility Metrics and Methodology Guide
Common Mistakes to Avoid
- Using LocalBusiness instead of Restaurant. Always use the most specific type. Restaurant unlocks food-only fields.
- Copying the same schema to every location. Each venue needs its own address, phone, and @id.
- Marking up hidden content. Your schema must match what the visitor can see on the page.
- Trusting a PDF menu. Search tools and AI struggle to read PDFs. Use a real web page.
- Pulling in Yelp or Google star ratings. This breaks the rules and risks a penalty.
- Setting it and forgetting it. Update schema whenever your real details change.
Frequently Asked Questions (FAQs)
Does restaurant schema improve my Google ranking?
Not directly. Schema is not a ranking factor. It makes you eligible for rich results and easier for AI to understand, which can lift clicks and visibility.
Do I still need schema if I have a Google Business Profile?
Yes. They work together. Your profile powers your map listing and public reviews. Your website schema reinforces your details and feeds AI answers about your menu, hours, and booking.
Can I use a PDF menu?
You can link to one, but it is a weak choice. Publish an HTML menu page so search engines and AI can read your dishes and prices.
Why are my review stars not showing?
Google limits review stars for local businesses to sites that review other businesses. For your own restaurant, most public stars come from your Google Business Profile, not your site schema.
Does restaurant schema help with voice search and AI assistants?
Yes. Clear data about your cuisine, hours, menu, and diet options makes it easier for voice assistants and AI tools to pick and describe your restaurant.
How long until I see results?
It can take several days for Google to recrawl and process your pages. Use the URL Inspection tool in Search Console to ask for a recrawl after you publish.
I have five locations. What do I do?
Give each location its own page with its own Restaurant block, unique address, phone, and @id. Do not reuse one block across pages.
Your next step
Pick one location page and add the base Restaurant schema today. Then test it in Google’s Rich Results Test. Once that passes, add your menu, reservation link, and a short FAQ block.
If editing code by hand feels slow or risky, a plugin like SchemaEngine AI can generate and validate all of it for you, then keep it consistent across every page. Start with your busiest location, get it right, and repeat the same steps for the rest.



