Restaurant local SEO: how GBP signals, menu schema and PageSpeed fill tables
The kitchen can be better than the place down the street and still lose the Friday night table. This is the system that keeps that from happening, built from how diners actually search, judge and book.
Friday, 6:40 pm, two people in a parked car
A couple has just checked into a downtown hotel, hungry and without a reservation. One of them types "italian restaurant near me" into Google Maps. Three names appear. The first shows a 4.7 rating, forty photos of pasta from the last month, a Reserve a table button and hours that say open until 10. The second shows a 4.6, a storefront photo from 2021 and a link to a PDF menu. The third has no menu link at all. They book 7:15 at the first one.
The second restaurant may have the better chef. It does not matter. Diners decide in under a minute, and Google and the AI assistants that answer "where should we eat tonight" run the same process at scale: gather facts from the profile, the site, the reviews and the wider web, and check whether they agree.
The whole system on one napkin
At Digital Domination we treat that decision as three load-bearing parts. Google Business Profile entity signals tell Google what kind of restaurant this is, whether it is open now and how to book. Schema describes the restaurant and its menu so machines connect cuisine, dishes, prices, hours and chef. PageSpeed makes the menu load on a phone on the sidewalk before the party moves on. Reviews, social proof and a Search Console, GA4 and reservation-data loop hold the three together.
Google ranks local results on relevance, distance and prominence. You cannot move the building, so the work is the other two, plus conversion.

Google Business Profile: teach Google what is on the plate
The primary category does the heaviest lifting, and "Restaurant" alone is weak. "Italian restaurant", "Taco restaurant" or "Steak house" tells Google which searches you belong in; secondary categories such as "Bar" or "Catering service" add the rest. Attributes decide filtered searches: outdoor seating, dog-friendly patio, reservations, takeout, happy hour, vegan options. An unchecked box makes you invisible to that filter. The profile should also carry:
- ▸A menu link to a real HTML menu with prices, plus menu items entered into the profile so Popular dishes shows your food.
- ▸Reservation and order links to the platforms you actually use (OpenTable, Resy, Tock, Toast) so the buttons appear on the listing.
- ▸Hours by day, brunch and happy hour as more hours, holiday hours set in advance because "open now" is a top restaurant search, and fresh photos of plated dishes every week.
- ▸One profile per location, each linked to its own location page with UTM parameters.
What has to be visible before the diner scrolls
Restaurant websites are judged on a phone by someone who has picked the cuisine and is now picking the place. The first screen must answer what you serve and where, why you are worth it, and how to book. Authority here is recognition a diner can verify:
- ▸Cuisine and neighborhood in the headline ("Wood-fired Neapolitan pizza in the Arts District"), not "Welcome to our website".
- ▸Google rating and review count, and press that exists: a Michelin Bib Gourmand, a James Beard semifinalist nod, a local best-brunch list, each with the year.
- ▸The chef or owner by name with a real photo, years open, specific sourcing (the named farm, not "locally sourced"), and the health inspection grade where your city posts one.
- ▸An example strip for a generic Example Trattoria: Family-owned since 2009 | 4.8 stars on Google | Best Italian, City Weekly readers poll | Reserve tonight. A template, not a claim.
Reviews that name the dish, the server and the night
Restaurants live on review velocity because diners assume a place with no review in six weeks has slipped. The words matter as much as the count. "The birria tacos were the highlight and the patio was perfect for the dog" connects a dish and an attribute, exactly what AI assistants pull for "dog-friendly Mexican place". A healthy program includes:
- ▸A review ask built into the visit: check presenter, receipt QR code or the post-visit text from your reservation platform, sent the same evening.
- ▸Owner responses that name the dish the guest praised and answer complaints with a specific fix, never a canned apology.
- ▸Google first, because it feeds the Map Pack, then Yelp, TripAdvisor and OpenTable.
Schema: describing the restaurant and its menu to machines
Schema is JSON-LD that labels what the page already says so a machine can read it without guessing. With it, a crawler learns that Example Trattoria is a Restaurant serving Italian cuisine, that its Menu has a MenuItem called Cacio e Pepe at a stated price, and that the Yelp and OpenTable profiles are the same place. Most restaurant sites we audit have a plugin's bare LocalBusiness at best; menu schema is the piece almost everyone skips. The architecture:
- ▸The restaurant: Restaurant, with servesCuisine, priceRange, acceptsReservations, address, geo and openingHoursSpecification per day, including split lunch and dinner hours.
- ▸The menu: Menu, MenuSection nodes (Antipasti, Pasta, Brunch) and MenuItem nodes with suitableForDiet where true and an Offer carrying the price.
- ▸Chef or owner: Person, connected with worksFor or founder; private dining as Service with areaServed and an Offer.
- ▸sameAs linking Google Maps, Yelp, OpenTable and Instagram, and a separate Restaurant node per location under one parentOrganization.
- ▸Permanent @id values such as example.com/#restaurant and example.com/menu/#menu, so every page references one restaurant and one menu.
PageSpeed: the menu has to load on the sidewalk
The typical restaurant site is one of the slowest we test: a kitchen video, an Instagram embed, a reservation widget and a 12 MB PDF menu, served to a diner on cellular. Google measures Core Web Vitals on real visitors at the 75th percentile; the good thresholds are Largest Contentful Paint at or under 2.5 seconds, Interaction to Next Paint at or under 200 milliseconds and Cumulative Layout Shift at or under 0.1. We build to a PageSpeed Insights score of 90 or higher and a 2/2 pass on agentic browsing checks, since AI agents now book tables too. The fixes that matter most:
- ▸Replace the PDF or image menu with an HTML menu page: real text, real prices, one section per meal period. The largest win most restaurants have.
- ▸Drop the autoplay hero video or show a poster image first; preload that image and never lazy-load it.
- ▸Serve food photography as WebP or AVIF at responsive sizes; oversized plated shots are where the weight hides.
- ▸Replace the live Instagram embed with a static grid, load reservation widgets on click, and reserve dimensions so the call button does not jump.
Prices, minimums and menus that AI can quote
When someone asks an assistant "how much is dinner for two at Example Trattoria", the system needs crawlable numbers. Restaurants have an advantage here: prices are already public. The mistake is hiding them in a PDF, an image or an ordering app. Publish, as text:
- ▸Menu prices with a last-updated date, and a plain-words range that matches your GBP price tier ("most entrees $18-$32").
- ▸Happy hour days, hours and discounted items, and prix fixe or bottomless brunch pricing per person.
- ▸Private dining minimums and catering per head, because planners search these before they call.
- ▸The same numbers mirrored in GBP menu items and MenuItem Offer schema so all three sources agree.
Content for every step from craving to check
Restaurant content is not a blog about food trends. It is the set of answers a diner needs between being hungry and paying the check. The journey runs cuisine and occasion, then dish, then logistics, then booking. Pages that earn bookings:
- ▸A menu page per meal period with dish descriptions in the words diners search: birria, smash burger, omakase, pho.
- ▸Occasion pages (date night, rehearsal dinner, corporate lunch) and a private events page with capacities, minimums and an inquiry form.
- ▸A visit page: parking, dress code, wait times, walk-in policy, dog policy for the patio.
- ▸Dietary sections naming specific dishes, and a chef page with real names and faces, where Person schema lives.
Search Console, GA4 and the reservation book as one loop
Search Console shows which searches surface your pages, and the revealing ones are dish-level and occasion-level: "best brunch downtown", "ramen open late", "private dining room for 30". Impressions without clicks means the title misses the searcher. GA4 shows what happened after the click: menu views, reservation clicks, tap-to-call. Your reservation platform and POS close the loop with covers by source. Every month:
- ▸Measure the baseline: Map Pack positions across the trade area, clicks, reservation clicks, covers by source.
- ▸Pick the single highest-value gap, make one focused change, note the date, compare over the following weeks, keep what worked.
- ▸Clicks without reservations is a speed, menu or trust problem. No repeat visits is a kitchen question no SEO will fix.
Instagram, TikTok, food writers and the best-tacos thread
Diners search Instagram and TikTok for where to eat, so every reel of the pasta being tossed should point back to the same restaurant name, dishes, neighborhood and booking link that live on the site and in the GBP. Google now reports supported social and video platform properties inside Search Console. Brand mentions without links matter too: a city subreddit comment saying "Example Trattoria in the Arts District, get the cacio e pepe" connects restaurant, location and dish. Axios reported in August 2026 that Reddit's share of visible ChatGPT Search citations fell roughly 86 percent, yet OpenAI still holds a Reddit data partnership, so do not build on one platform:
- ▸Weekly GBP posts for specials, and short vertical video captioned with dish name, cuisine and neighborhood.
- ▸Outreach to the food lists diners read: the city's Eater or Infatuation equivalent, the alt-weekly best-of poll.
- ▸Yelp, TripAdvisor and OpenTable profiles matching the site and GBP exactly, and community ties that earn mentions on their own.
A 90-day plan built around the menu and the book
Fix the menu and the listing first, because everything else sends diners to them. Then proof, then content, then let the data drive.
- ▸Days 1-14, baseline: GeoGrid scan for your cuisine across the trade area; audit every GBP category, attribute, menu item and link; test Core Web Vitals; inspect current schema.
- ▸Days 15-30, foundation: fix categories and attributes; enter menu items and photos; replace the PDF menu with HTML; rebuild the first screen; publish the Restaurant, Menu and Person graph; connect Search Console, GA4 and reservation reporting.
- ▸Days 31-60, proof and content: launch the same-night review ask; publish occasion, events, visit and dietary pages; post weekly to GBP, Instagram and TikTok; pitch the local food lists.
- ▸Days 61-90, optimize: rewrite titles for high-impression low-click queries; fix high-traffic low-reservation pages; compare covers by source; rerun the GeoGrid scan and repeat whatever moved it.
One restaurant, one story, told the same way everywhere
The restaurants that own their Map Pack are the ones where the Google Business Profile, the website, the menu, the schema, the reviews and the Instagram captions all describe the same place the same way: this cuisine, these dishes, this neighborhood, this way to book. When every source agrees, Google and the AI assistants can recommend you with confidence, and the couple in the parked car taps your name.
At Digital Domination that is the outcome we stake our work on: top 3 in the Google Map Pack in 12 weeks or you do not pay. The first step costs nothing. Our free GeoGrid scan checks 169 points across your market and shows where you rank from the hotel district, not just from your own front door.
Keep reading
Related guides
Put it into action
Frequently Asked Questions
Should a restaurant put its menu online as a PDF or as a web page?
As a web page, always. An HTML menu with text prices loads fast, can be read by Google and AI assistants, and can carry Menu and MenuItem schema. A PDF or a photo of the printed menu is invisible to search.
Which Google Business Profile category should a restaurant choose?
The most specific primary category that matches what people order most, such as Mexican restaurant or Steak house, not the generic Restaurant category. Add secondary categories for real offerings like Bar, and check every attribute, because unchecked filters hide you.
Does menu schema directly improve restaurant rankings?
Not on its own. It helps Google and AI systems understand that a specific dish, price, cuisine and location belong to your restaurant, and it can make pages eligible for supported rich results. It works best describing a menu page that is already good for a human.
How often should a restaurant add photos to its Google Business Profile?
Weekly during service: plated dishes, drinks, the dining room, the patio. Google favors recent imagery and diners judge freshness by it.
Do Instagram and TikTok posts help a restaurant rank on Google Maps?
Google does not confirm that likes or followers directly move Maps rankings. Social posting still drives branded searches, reviews and mentions that support prominence, and Google now reports supported social and video content inside Search Console.
Should restaurants publish prices and private-event minimums?
Yes. Menu prices, happy hour deals and private dining minimums are questions diners ask before they call, and AI assistants need crawlable numbers to answer them. Publish them as text and mirror them in GBP and Offer schema.
Ready to dominate your map?
Top 3 in the Google Map Pack in 12 weeks, or you don't pay.