Most restaurants do not lose bookings because the food is average. They lose them in the ninety seconds between “where should we eat tonight?” and someone tapping a competitor’s phone number. Restaurant SEO is the work of making sure your dining room wins that ninety seconds — on Google Maps, in the organic results, and now inside AI answers that recommend three places before a diner ever sees a search page.

Why restaurant search behaves differently
Most local industries deal with a considered purchase. A homeowner researching a furnace replacement will read three pages, compare quotes and call two days later. Restaurant search is the opposite: it is impulsive, mobile, time-boxed and heavily influenced by photographs. The average diner query happens within two hours of the meal and within a few kilometres of where they are standing.
That compresses everything. There is no nurture sequence. Either your listing appears with an appetising photo, a 4.6-plus rating, an accurate “Open now” status and a working reservation link, or the table goes to the restaurant that did.
Those four numbers dictate the strategy. Mobile-first means speed and thumb-sized tap targets. Review-driven means reputation is a ranking input, not a soft brand exercise. Map-pack dominance means your Google Business Profile is more valuable than your homepage. And PDF menus are the single most common self-inflicted wound in the industry.
The map pack is your front door

Google ranks the local pack on three broad factors: relevance, distance and prominence. You cannot move your building, so the work concentrates on the other two.
Relevance: describe what you actually sell
Your primary category is the highest-leverage field in the entire profile. “Restaurant” is a weak choice. “Neapolitan pizza restaurant”, “Vietnamese restaurant”, “brunch restaurant” or “halal restaurant” line up with how people search and with the refinement chips Google shows above the map. Add secondary categories for genuinely distinct revenue lines — catering, bar, bakery — but never stack unrelated ones to farm keywords; it dilutes relevance and invites suspension.
Fill every attribute Google offers. Outdoor seating, accepts reservations, good for groups, wheelchair accessible entrance, serves vegan options, late-night food, kid-friendly. Each one is a filter a diner can toggle, and each toggle removes every restaurant that left the field blank.
Prominence: reviews, photos, and the web talking about you
Prominence is Google’s read on how well known and well regarded you are. Three inputs move it fastest:
Steady weekly reviews beat a burst of forty followed by silence. Aim for a consistent trickle that never stops.
Profiles that add new dish and interior photos monthly get materially more discovery views than static ones.
Local food blogs, event listings, neighbourhood guides and delivery marketplaces all reinforce that you exist where you say you do.
The posting habit almost nobody keeps
Google Posts expire, which is exactly why they work — they are a freshness signal you control. A weekly post covering the specials board, a seasonal menu change, a live music night or a holiday closure takes six minutes and keeps the profile visibly active. Restaurants that post weekly for three months consistently see higher discovery impressions than those that post once a quarter.
Your website still decides whether the click converts
The map pack gets attention; the site closes it. Four fixes cover the majority of lost bookings.
1. Kill the PDF menu
A PDF cannot be crawled usefully, cannot be read comfortably on a phone, and cannot rank for the dish names people search. Publish the menu as HTML: section headings, item names as text, prices as text, short descriptions, and dietary tags. Then add Menu structured data so search engines can pull individual items into rich results.
2. Make reservations one tap
Every path to booking should be reachable without scrolling: a sticky call button, an OpenTable or Resy link, and — if you take walk-ins only — a clearly stated wait-time expectation. Every extra tap between intent and confirmation costs roughly a fifth of the people who started.
3. Get under two seconds on mobile
Food photography is heavy. Serve it as WebP, size it correctly for the container, lazy-load everything below the fold and drop the autoplaying background video. A restaurant homepage should not weigh more than about 1.2 MB in total.
4. Write the pages diners actually search for
| Page | Target intent | Why it earns rankings |
|---|---|---|
| Menu (HTML, per section) | “[dish] near me”, “[cuisine] menu [city]” | Dish-level keywords are low competition and extremely high intent |
| Private dining / events | “private dining room [city]”, “birthday dinner venue” | Highest average cheque per booking of any page on the site |
| Catering | “office catering [city]”, “corporate lunch delivery” | Recurring B2B revenue that survives slow dining seasons |
| Neighbourhood / location page | “restaurants in [neighbourhood]” | Anchors the geography for multi-location and travel search |
| Dietary pages (vegan, gluten-free, halal) | “vegan restaurant [city]” | Diners with dietary needs choose the restaurant for the whole table |
| Happy hour / brunch | “brunch near me”, “happy hour [city]” | Fills your softest revenue windows, not your busiest ones |
Structured data that earns rich results
Restaurants have one of the richest schema vocabularies available, and most use none of it. The full stack worth implementing:
- Restaurant — name, address, geo coordinates, phone, price range, cuisine served, accepted payments and opening hours specification, including holiday overrides.
- Menu / MenuSection / MenuItem — item names, descriptions, prices and dietary suitability. This is what feeds dish-level rich results.
- Reservation action — a potential action pointing at your booking platform so Google can surface a reserve button.
- AggregateRating and Review — only for reviews genuinely hosted on your own site; never mirror Google reviews into markup.
- Event — live music, tasting dinners, holiday sittings. Events are chronically under-used and frequently surface in dedicated modules.
- FAQPage — parking, dress code, corkage, group size limits, accessibility.
Keep hours accurate above everything else. A profile that says open when the door is locked generates the specific one-star review that costs the most: the one from someone who never ate the food.
Reviews: a system, not a hope
Review count and rating correlate with local pack position more tightly in food service than almost any other vertical. Treat it operationally.
- Ask at the peak Train staff to ask when the plates are cleared and the guest has just said something positive — not on the way out the door.
- Remove friction A QR code on the bill folder linking directly to the review form. One scan, one tap, done.
- Reply to everything within 48 hours Replies are public and are read by future diners far more often than the review itself.
- Handle negatives in a specific pattern Acknowledge, apologise for the experience, state the concrete change, invite them back offline. Never argue about the facts in public.
- Track velocity monthly Ten reviews a month at 4.7 beats a hundred reviews in one week followed by nothing.
Photography is a ranking factor in practice
Google counts photo views, and diners choose with their eyes. A working cadence: eight to twelve new images per month, shot on a phone in daylight near a window, no filters. Cover the dishes people order most, the room at service, the exterior at the exact angle someone approaches from, and the staff. Geotagging images does nothing for rankings — the filename, the surrounding page content and the alt text do.
Seasonality: plan campaigns, do not react to them
| Window | Demand spike | Publish by |
|---|---|---|
| Valentine’s Day | Prix fixe, romantic dinner, date night | Mid-January |
| Patio season | Outdoor dining, rooftop patio | Late March |
| Summer festivals | Pre-event dinner, group bookings | Early May |
| Thanksgiving / holidays | Group dining, set menus, catering | Early September |
| Corporate party season | Private dining, office catering | Late September |
| New Year’s Eve | Ticketed dinners, late seating | Early November |
Publish six to eight weeks ahead of the demand curve so the page has time to be crawled, indexed and to accumulate engagement before the searches arrive. Keep the same URL year after year and refresh the content — a page in its third year outranks a new one built in January.
Multi-location restaurants
Two or more rooms turns this into an architecture problem. The rules that hold up:
- One indexable location page per address, with unique copy, that location’s photos, its own hours, its own embedded map and its own reviews.
- One Google Business Profile per address, each with its own manager and its own posting cadence.
- A single brand-level menu page only if the menus are genuinely identical; otherwise a menu per location.
- Consistent NAP formatting across every profile, directory and page — down to the suite number and punctuation.
- Internal links from the homepage location switcher to every location page, and from each location page back to the relevant menu and booking pages.
AI search: how diners will find you next
Perplexity, ChatGPT Search and Google’s AI Overviews increasingly answer “best ramen near King Street” with three named recommendations and citations. Being cited depends on different signals than blue-link rankings:
Hours, address, price range, cuisine and dietary options as text and schema — not baked into an image or PDF.
Models weight consensus. Local food media, city guides and directories agreeing about you matters more than your own claims.
Short, self-contained paragraphs that answer one question cleanly are far easier to lift into an answer than a wandering brand story.
One consistent business name everywhere. “Bella’s” on the site and “Bella’s Trattoria Inc.” on the profile splits your identity in two.
Measuring what matters
Sessions are not a restaurant metric. Track these instead, monthly:
- Google Business Profile calls, direction requests and website clicks — the closest proxy to walk-ins.
- Reservation completions by source, with the booking platform’s referral data reconciled against analytics.
- Map pack ranking for your top ten dish and cuisine queries, measured from a grid of points around the restaurant rather than one address.
- Review count and average rating trend, plotted month over month.
- Catering and private dining enquiries, tagged by landing page.
- Share of AI answers citing you for your core cuisine query in your city.
A realistic 90-day plan
- Days 1 to 14: foundations Audit and correct the Business Profile, categories and attributes. Convert the PDF menu to HTML. Fix hours including holidays. Compress images and get mobile load under two seconds.
- Days 15 to 30: structure Ship Restaurant, Menu and FAQ schema. Build or rewrite the private dining and catering pages. Add one-tap booking to every template.
- Days 31 to 60: demand capture Publish dietary and neighbourhood pages, launch the review request system, start weekly Google Posts and a monthly photo upload cadence.
- Days 61 to 90: expansion Build the next seasonal campaign page, pursue local food media coverage and directory listings, and start reporting on calls, directions and reservations rather than sessions.
Want this run for your restaurant?
We build the profile, the pages and the review engine, then report on covers — not clicks.
Frequently asked questions
How long does restaurant SEO take to show results?
Google Business Profile improvements often move within two to four weeks because the profile is re-crawled frequently. Website page rankings for competitive cuisine terms usually take three to six months. Dish-level and neighbourhood long-tail terms can rank in four to eight weeks because competition is thin.
Do delivery apps hurt my own rankings?
They compete for the same queries, but the bigger issue is margin. Use them for discovery and drive repeat customers to direct ordering with an on-site option, a loyalty incentive and a clearly linked reservation path. A strong direct channel also reduces your dependence on marketplace algorithms.
Is a blog worth it for a restaurant?
Only if it serves search intent. Recipe posts rarely convert. Neighbourhood guides, event round-ups, seasonal menu explanations and “best places for X in [city]” style content built around your own strengths earn links and local relevance, which is the point.
How many reviews do I need to rank in the map pack?
There is no threshold — it is relative. Look at the three restaurants currently in the pack for your target query, note their counts and ratings, and plan to exceed the median within six months while maintaining a rating at or above theirs.
Should each location have its own website?
Almost never. One domain with strong location pages consolidates authority. Separate domains split your links, your content effort and your brand signal three ways.
