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.

Restaurant storefront with a rising search ranking chart
Search visibility is the modern equivalent of a busy patio: it signals demand before anyone walks in.
What this guide coversLocal pack mechanics for restaurants, the pages that actually rank, menu markup and structured data, review velocity, photo strategy, reservation-intent keywords, seasonal campaigns, multi-location structure, AI search visibility, and the metrics that map to covers rather than vanity traffic.

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.

Restaurant searches performed on mobile82%
Diners who read reviews before choosing77%
Clicks captured by the local map pack64%
Sessions lost when the menu is a PDF38%

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

Phone showing a Google map pack of three restaurant listings
Three listings, one screen. Everything below the fold is a consolation prize.

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:

Review velocity

Steady weekly reviews beat a burst of forty followed by silence. Aim for a consistent trickle that never stops.

Photo freshness

Profiles that add new dish and interior photos monthly get materially more discovery views than static ones.

Citations and mentions

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

PageTarget intentWhy 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
A single well-built private dining page routinely outperforms an entire blog for revenue, because one booking is worth thirty covers.

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.

  1. 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.
  2. Remove friction A QR code on the bill folder linking directly to the review form. One scan, one tap, done.
  3. Reply to everything within 48 hours Replies are public and are read by future diners far more often than the review itself.
  4. 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.
  5. Track velocity monthly Ten reviews a month at 4.7 beats a hundred reviews in one week followed by nothing.
Lift in map pack clicks: 4.2 to 4.6 star rating+31%
Diners who read owner replies before deciding52%
Negative reviews resolved after a good reply34%

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

WindowDemand spikePublish by
Valentine’s DayPrix fixe, romantic dinner, date nightMid-January
Patio seasonOutdoor dining, rooftop patioLate March
Summer festivalsPre-event dinner, group bookingsEarly May
Thanksgiving / holidaysGroup dining, set menus, cateringEarly September
Corporate party seasonPrivate dining, office cateringLate September
New Year’s EveTicketed dinners, late seatingEarly 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:

Machine-readable facts

Hours, address, price range, cuisine and dietary options as text and schema — not baked into an image or PDF.

Third-party corroboration

Models weight consensus. Local food media, city guides and directories agreeing about you matters more than your own claims.

Answer-shaped content

Short, self-contained paragraphs that answer one question cleanly are far easier to lift into an answer than a wandering brand story.

Entity clarity

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

  1. 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.
  2. 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.
  3. 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.
  4. 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.

Get a free SEO audit

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.

Leave a Reply

Your email address will not be published. Required fields are marked *