Restaurant website: structure, menu, reservations, and local SEO to bring in guests

Restaurant website guide: 12 essential blocks, HTML menu, reservations and delivery, local SEO, speed, and 6 common mistakes. From MOVE Agency.

MOVE Agency article cover: black background, lime sign, and the word 'Website'

In short

A restaurant website needs to do four things: show the menu, let people book a table or order delivery, show how to get there, and convince them the place is worth visiting. Everything else is decoration. Below is the 12-block structure we put on every restaurant website, the speed and mobile requirements, the local SEO basics, why the menu should be a page and not a PDF, what goes into the price, and the mistakes we fix most often. Written from the experience of MOVE Agency, which runs dozens of HoReCa brands in Poltava, Kyiv, Kharkiv, Dnipro, and Lviv.

What a restaurant website needs to do

Guests don’t land on a restaurant website to “read about it.” They’ve either already decided to come and are looking for how to do it, or they’re weighing you against two other places. The site has to serve both scenarios in 10 to 20 seconds.

Five jobs a site can’t work without:

  • Menu. Current, with prices, easy to read on a phone. This is the main reason people open a restaurant website in the first place.
  • Reservations or ordering. One button in the header that leads to an action, not a 12-field form.
  • Address, hours, directions. A “Get Directions” button, a clickable phone number, exact hours for today.
  • Reviews and social proof. A Google rating, a few genuine reviews, press mentions if you have them.
  • Photos and video that sell the atmosphere. Your dining room, your kitchen, your people. Stock photos of plates don’t work here.

If even one item on this list isn’t reachable from a phone in two taps, the site loses guests who were already ready to show up.

Restaurant website structure: 12 blocks

This is the base framework we adapt to the format: for a coffee shop we merge some blocks, for a chain we expand into separate pages for each location.

#BlockWhat’s insideWhy
1HeaderLogo, menu, phone, “Book Now” buttonAction available from any page
2Hero sectionOne sentence about the concept, a photo or video of the dining room, two buttons: menu and reservationsGuest understands where they landed in 3 seconds
3MenuCategories, prices, photos of key dishes, tags (spicy, vegan)The main reason for visiting the site
4ReservationsWidget or form with date, time, party sizeConverts visitors into guests
5Delivery and pickupZone, time, minimum order, link to orderSecond revenue source
6About the venueStory, chef, concept, 2 to 3 paragraphsEmotional connection
7GalleryDining room, dishes, team, eventsSells the atmosphere
8ReviewsGoogle rating, 4 to 6 quotes, link to all reviewsRemoves doubt
9Events and banquetsFormats, capacity, request formHigh average ticket
10Contacts and directionsAddress, map, hours, parking, transitRemoves the “how do I get there” barrier
11Social media and newsletterIcons, embedded feed, subscribe for dealsRepeat contact
12FooterDuplicated NAP, legal information, links to policiesTrust and SEO

For a restaurant chain, each location gets its own page with blocks 3, 4, 8, and 10. This is critical for local search, which we’ll return to below.

Speed and mobile version

Most visits to a restaurant website come from a phone: from maps, from Instagram, from ads, from a “where to eat nearby” search. So the mobile version is designed first, and the desktop version is built around it.

What we check on every project:

  • The hero section loads instantly. No 40-megabyte background video loading over mobile data in the middle of the city.
  • The menu is readable without zooming. Font size, contrast, spacing between items.
  • The reservation and call buttons are always within reach. A fixed bottom bar or a header button that stays put on scroll.
  • Images are compressed and in modern formats. Food photos weigh more than everything else on the site, and they’re usually what slows it down.
  • No full-screen popups on the first visit. The guest came to look at the menu, not sign up for a newsletter.

Speed affects both Google rankings and conversion: someone who waits more than a few seconds for a page to load goes back to maps and picks the place next door.

Local SEO for a restaurant: the basics

A restaurant website needs to rank for city- and district-specific queries: “restaurant downtown Poltava,” “pizza delivery Kyiv Podil,” “where to get breakfast Lviv.” This doesn’t take thousands of articles, just a handful of correct settings.

Google Business Profile. A venue’s Google listing is often the first point of contact with a guest. Fill in everything: category, hours, menu, photos, attributes, a link to reservations. For exactly what to fill in and in what order, see the full Google Business Profile setup checklist. And add a link to your website: that’s how the listing and the site reinforce each other.

NAP: name, address, phone. Written identically on the website, in Google, on Instagram, on aggregators, and in directories. A mismatch like “12 Sobornosti St.” versus “Sobornosti St., 12a” reads to search engines as a trust problem.

Schema.org markup. The Restaurant type (a LocalBusiness subtype) with address, coordinates, hours, cuisine, price range, and a link to the menu and reservations. This gives Google structured data and gives you rich snippets in search results.

City in the headings. The Title and H1 of the homepage and location pages should include the city, and for larger cities the district too. Instead of “Home” or “Restaurant,” write “Georgian Restaurant in Downtown Kharkiv.”

A separate page for each location. This is mandatory for a chain. Its own address, hours, menu, reviews, and map, with its own markup. One general “Our Locations” page listing addresses won’t rank for any of the cities.

This is the minimum we build into every restaurant website at the prototype stage, because adding it later costs more.

The most common restaurant website mistake starts with a “Menu” button that opens a PDF. On a phone you have to pinch to zoom, it loads slowly, Google can’t see individual dishes in it, and changing one price requires a designer.

A menu as a website page solves all of these problems:

  • dishes get indexed for queries like “khachapuri Dnipro” or “breakfast Lviv Rynok”;
  • you can change a price or remove an item from the CMS in a minute;
  • you can show photos of key dishes, allergen tags, and calorie counts;
  • analytics show which categories get viewed most and where people stop scrolling;
  • every item can link to ordering or reservations.

A printable PDF menu can stay as an extra link at the bottom of the page for people who want to forward the file. But the main menu should live in HTML.

Reservations and delivery: integrations

A “Book Now” button that opens a form saying “We’ll call you back” loses a large share of guests: people book in the evening, when the front desk isn’t picking up the phone. Options that actually work:

  • A reservation widget with a live calendar and instant confirmation. The restaurant sees the booking in its own system, the guest gets an SMS or email.
  • Booking through a messenger. Telegram or WhatsApp with a pre-filled message. Simpler for a small venue, but no automatic confirmation.
  • A form with a callback. Only as a fallback option, and with an honest response-time note.

For delivery, the options are: your own online ordering with a cart and payment on the site, ordering through a messenger, or a link to a delivery aggregator. Your own ordering system costs more to build, but skips the commission and keeps the guest’s contact information with you. If you’re still testing delivery, start with a link to an aggregator, but keep a page on your site with your own terms and delivery zone, so guests search for you specifically.

For chains and venues with more complex logic (loyalty programs, pre-orders, a Telegram Mini App for delivery), we design a web app separately from the website: in our web app and AI automation development format, a prototype is ready in 7 days.

Photo and video: content matters more than code

A restaurant website sells visually. The best-structured site with stock photos of plates loses to a simple site with real photos of your dining room and your dishes.

A minimum content package for a website:

  • 8 to 12 photos of key dishes on a consistent background for the menu;
  • 10 to 15 interior photos in daylight and evening light;
  • 5 to 8 photos of the team and kitchen process;
  • one short video for the hero section: 10 to 15 seconds, no sound, compressed for web.

This same material later works on Instagram, on your Google listing, and in ads. That’s why we plan the shoot for the website and social media as one session: it’s cheaper and the content comes out in a consistent style. See what this looks like with our content production: MOVE has its own cinema camera, lighting, and sound, and photo and video production starts at $500.

You can see how visual communication changes the perception of a venue with history in the IL Molino case: a chain with 15 years in the market, for which we produced video and content and got 1.3 million views in 3 months. The same kind of content goes on a website and keeps working there for years.

How much a restaurant website costs

The honest answer: it depends on what’s inside. At MOVE, website development starts at $500, and the price grows from there along with the scope.

ComponentWhat affects the cost
Number of pagesA landing page with a menu or a multi-page chain site with a separate page for each location
MenuA static list or a dynamic menu with categories, photos, filters, and CMS management
IntegrationsReservation widget, online ordering with payment, CRM, loyalty program
ContentWhether photos and copy are ready, or a shoot and copywriting are needed
CMSWhether you’ll update the menu, deals, and events yourself
LocalizationNumber of languages
Local SEOMarkup, location pages, Google Business Profile setup

A cheap website builder site often costs more in the long run: it’s slower, it’s hard to bring up to proper local SEO, and every integration turns into a workaround. For reference, among the sites we’ve built are a Batch online store with a custom admin panel, the Azia Foods site for HoReCa wholesale sales, and a redesign of the Yavir-2000 corporate site. In each case, the structure and price were shaped by the task, not by a template.

How we build a restaurant website: the process

  1. Briefing and analysis. Concept, format, competitors in the city, where guests currently come from, what the site’s main job is: bookings or delivery sales.
  2. Structure and prototype. Page map, a draft layout of every screen with real copy, not “Lorem ipsum.” This is where menu and reservation logic gets agreed on.
  3. Design. Visual style built on your identity. If you don’t have one yet, we build it first as part of branding.
  4. Content. Photo and video shoot, menu and page copy, translations.
  5. Development and integrations. Layout, CMS, reservations, delivery, analytics, Schema.org markup.
  6. Launch and setup. Google Business Profile, Search Console, analytics goals, speed checks on real phones.
  7. Support. Menu and deals updates, seasonal pages, review management. You can handle this yourself through the CMS or with our team.

The longest stage is almost always content. If photos and copy are ready before the start, the project moves much faster.

What to measure after launch

A restaurant website is judged by the actions that lead to guests in the dining room. Traffic on its own says nothing. Here are the events we set up in analytics on every project:

MetricWhat it shows
ReservationsNumber of completed bookings from the site, by day of week and time
CallsClicks on the phone number from the mobile version
”Get Directions” clicksHow many people are actually planning to drive over
Delivery ordersCount and average order value, if ordering happens on the site
Menu viewsScroll depth, most-viewed categories
SourcesWhere the people who booked came from: maps, search, Instagram, ads
Local search rankingsVisibility for city- and district-specific queries

Once a month, these numbers are worth reviewing alongside Google Business Profile data: how many people saw the listing, how many clicked through to the site, how many called. That shows exactly where guests are being lost: at the listing, on the site, or at the booking step.

6 restaurant website mistakes

  1. Menu as a PDF or menu photos in the gallery. Doesn’t read on a phone, doesn’t get indexed, doesn’t get updated.
  2. No reservation button on the hero section. The guest scrolls through three screens, can’t find the button, and goes to maps to check the place next door.
  3. Outdated hours and prices. The fastest way to get a bad review: someone shows up at 10 PM and you closed at 9 PM a month ago.
  4. Stock photos. Guests notice the substitution immediately, and Google won’t show these pages in image results for your brand.
  5. One page for every chain location. None of the cities get search rankings, and guests can’t tell which venue has which menu.
  6. No analytics. The site “exists,” but nobody knows if it’s brought in a single guest. Without goals set up in analytics, there’s no way to know what to improve.

A restaurant website as part of marketing, not a standalone project

The best restaurant websites we’ve worked on don’t live in isolation. They get traffic from the Google listing and social media, welcome guests coming from ads, and feed data back: what people look at, when they book, which neighborhood they’re coming from. That data then drives content and advertising.

That’s exactly how the work with Toi Samyi Baranchyk is built: we started when the brand was opening its first restaurant and nobody knew about it, and over 8 years of working together the chain grew to 6 cities, with Reels passing 1 million views. In that setup, the website is the point where reach turns into reservations. It’s far from a simple brochure site.

Want a website that brings guests into the dining room? The MOVE team designs restaurant websites from structure and menu through to reservations, photo and video production, and local SEO. See how we approach website development, or start with a marketing strategy and audit: that’s where we break down where your guests are coming from now and what the site needs to do to bring in more of them.

Frequently asked questions

Does a restaurant need a website if it already has Instagram and Google Maps?
Yes. Instagram doesn't get indexed by Google for queries like 'restaurant + city,' and a Maps listing doesn't offer reservations, a full menu, or analytics. A website is the one place maps, social media, and ads all lead back to, and the only one you fully control.
How much does a restaurant website cost?
At MOVE, website development starts at $500. The final price depends on the number of pages, integrations (reservations, delivery, payment), the volume of photo and video production, and whether you need a CMS to update the menu yourself.
How long does it take to build a restaurant website?
A one-to-three-page landing page with ready content takes a few weeks. A multi-page site for a chain with integrations and photo shoots takes longer, and most of that time usually goes into content: photos, menu copy, approvals.
Should the menu be a PDF download or a page?
A page. A PDF reads poorly on a phone, doesn't get indexed as individual dishes, gives you no analytics, and is hard to update. An HTML menu with categories, prices, and photos works for both the guest and Google.
What's the best platform for a restaurant website?
Whichever one you can update yourself without a developer. Most venues do fine with a fast site on a simple CMS. A website builder works for a quick start, but speed and local SEO often suffer on that kind of platform.
Add MOVE to your Google sources