What a restaurant website needs
Most people open a restaurant website on a phone to answer one of five questions: what's on the menu, are you open, where are you, can I book or order, and what's it like. Put the menu, today's hours, the address, a tappable phone number, and your reservation and ordering buttons within one tap of the home page. Publish the menu as a web page, not a PDF, and keep your hours identical everywhere they appear.
The basics every small business site shares, such as owning your domain, security, speed, and upkeep, are in WordPress for small businesses.
The pages you need
| Page | What goes on it |
|---|---|
| Home | One strong photo, a line on what you serve, today's hours, address, and buttons for Menu, Reserve, and Order |
| Menu | One page per menu if you have several (lunch, dinner, brunch, drinks, kids), with prices |
| Visit (or Hours & Location) | Hours by day, kitchen closing time, address, map, parking, transit, entrance and restroom accessibility, phone |
| Reservations and Order online | A button or widget from your booking and ordering systems |
| Private events and catering | Rooms and capacities with photos, sample menus, and an inquiry form |
| About | Your story, the chef and team, where your ingredients come from if that matters to you |
| Gift cards | A link to your point-of-sale system's gift card page |
| Jobs | Open roles and how to apply. Restaurants hire all year, and this page saves you phone calls |
A small place can fold Visit, Reservations, and Order into the home page. The rest still needs its own page.
Put the menu on a web page, not a PDF
A PDF menu is easy to upload, but it's a poor experience on a phone: visitors download a file, then pinch and scroll to read it. A PDF exported from a design program is often hard or impossible for a screen reader to read. And because updating it means redesigning and re-uploading a file, PDF menus tend to go out of date. A photo of your printed menu is worse: no one can search it, copy it, or have it read aloud.
Build the menu as text on a page:
- Use a heading for each section: Starters, Mains, Desserts, Wine by the glass.
- Under each, list the dish name, price, and a short description.
- Mark dietary options with a short key (V, VG, GF) and explain the key at the top of the menu.
- Add a line on substitutions and allergies, such as "Tell your server about any allergies."
- If you want a printable version too, link to a PDF under the web menu, not instead of it.
When prices or dishes change, change the web page the same day. An out-of-date menu online sets the wrong expectation before anyone walks in.
Allergens and dietary information
If you mark allergens, be specific and keep it current. Wrong allergen information online is worse than none.
- The FDA lists nine major food allergens: milk, eggs, fish, crustacean shellfish, tree nuts, peanuts, wheat, soybeans, and sesame. If you mark allergens on your menu, use these names so customers recognize them.
- Federal allergen labeling rules cover packaged food. They don't cover most dishes made to order in a restaurant, but state and local rules can. Check what applies where you operate.
- If you're part of a chain with 20 or more locations operating under the same name, the FDA's menu labeling rules require calorie counts on menus and menu boards. See FDA: Menu labeling requirements.
- Say plainly whether your kitchen can avoid cross-contact. "We can't guarantee a dish is free of nuts" is more useful than silence.
Sources: FDA: Food allergies.
Hours, including holidays
People check your hours on Google, on maps apps, on review sites, on your reservation platform, and on your website. If any of those disagree, someone turns up to a locked door.
- Keep one list of everywhere your hours appear, and update all of them the same day.
- List what people actually ask: kitchen closing time if it's earlier than the bar, brunch days, happy hour, and when the patio is open.
- Plan holidays ahead. Set special hours on your Google Business Profile before each holiday, and put a short note on your site. See Set up and optimize your Google Business Profile.
- Seasonal closures: say when you'll reopen, so people don't assume you've closed for good.
Online ordering and reservations
Your website doesn't need to take orders or bookings itself. It needs to send people to the systems you already run, quickly and reliably.
- Ordering: if your point-of-sale system offers its own online ordering, link to that first. Third-party delivery apps charge a commission on each order, so a customer who was already on your website is cheaper to serve through your own ordering page.
- Reservations: booking services such as OpenTable, Resy, and Tock give you a link and usually a widget to embed.
- Link or embed? A button that links out is simplest and never breaks your page. A widget keeps people on your site but adds scripts that slow the page down. If you embed one, put it on the reservations page only, not in the footer of every page.
- Test on a phone after every change: tap Order and Reserve from the home page and make sure each one lands on the right restaurant and location.
- Add the same links to Google. Your Google Business Profile can show links for ordering, reservations, and the menu. See Set up and optimize your Google Business Profile.
Photos
Photos sell food more than words do, and stock photos do the opposite: customers notice when the plate on the website isn't the plate in front of them.
- Shoot your real dishes, your room, and your team, in daylight if you can.
- Use a wide (landscape) photo for the top of the home page, and check how it crops on a phone. See Set a focal point on an image.
- Resize and compress photos before upload. Large photos are the most common reason restaurant sites load slowly. See Best image size and format for your website.
- Describe each dish in its alt text ("Grilled octopus with charred lemon and potatoes"), not "food photo". See How to write alt text for images.
- Refresh photos when the menu changes. Add the same photos to your Google Business Profile.
Private events and catering
Private dining and catering inquiries are often worth more than a week of covers, so make them easy to send.
- Show each room or space with a photo, how many it seats and how many standing, and whether it can be fully private.
- Put sample menus on the page as text, with price per person if you're comfortable sharing it.
- Use an inquiry form that asks for the date, guest count, type of event, budget range, and how to reach them. Say how quickly you'll reply.
- Send the form to an inbox someone checks daily, and test it. See Fix contact form emails that don't arrive.
Common mistakes
- The menu is only a PDF or a photo, or it's last season's menu.
- Hours on the website don't match Google.
- The phone number isn't tappable. See Add a clickable phone number.
- The Order button goes to a delivery app when you have your own online ordering.
- A pop-up covers the menu the moment the page loads.
- A slideshow or video at the top of the home page makes the page slow on a phone.
- The address and parking information are buried in the footer.
If your site runs on Dirigible
- Menus: the Price List block lists dishes with a title, price, and description, with Heading blocks between sections such as "Starters" and "Mains". See Price List.
- Hours: with Dirigible Hours, you enter your weekly hours once and show them in the footer, the header menu, or the utility bar, and they're added to the business details the theme gives search engines. It has one weekly schedule, with no separate holiday hours: announce a holiday closure with the utility bar's banner text or the site-wide pop-up. See Enter and display business hours.
- Reserve or Order button: the header button puts one call to action, such as Reserve a table, on every page. See Add a header menu button.
- Ticketed dinners and events: Dirigible Events lists wine dinners, live music, and classes, and can sell tickets through WooCommerce with QR code check-in. See Sell event tickets with QR code check-in.
- Calls you can count: Dirigible Analytics, in Dirigible Optimize, counts clicks on your phone number and email address, and Gravity Forms submissions, as leads. See Dirigible Analytics.
- More than one restaurant: see SEO for a business with several locations.