SEO for a restaurant website: a plain plan that brings in local diners
SEO for a restaurant website means making sure that when someone nearby searches for what you serve, Google shows your restaurant and your own site, not only a delivery app or a review site. For an independent restaurant it comes down to five things: a complete Google Business Profile, a menu on your site as real text, one clear page title per page with your dish type and town, a fast site that works on a phone, and other local sites linking to you. None of it needs a paid tool, and most owners can do the first month's work in a few evenings.
Below: what diners search and which page should answer each search, how to write your titles and menu, the restaurant code Google reads (with an example to copy), speed, Google Search Console, links, how long it takes, and a four-week plan.
How restaurant SEO is different
A national shop competes with the whole country. A restaurant competes with the places within a few miles, and most searches for food carry a place in them: "ramen near me", "brunch downtown", "pizza delivery Springfield". Google shows those searches in two places:
- The map pack: the map with three or so restaurants under it. It comes from Google Business Profiles, ranked by relevance, distance and prominence [1].
- The web results under it: restaurant websites, review sites, delivery apps, food blogs.
Your website helps in both. Google lists your site's position in web results as part of prominence for the map pack [1], and the website field on your profile is where the profile sends people for the menu and ordering. So the website and the profile are one job, not two. Setting up the profile itself is covered in Google Business Profile for restaurants, and getting on the map in the first place in how to get your restaurant on Google Maps.
What diners search, and which page should answer
Don't guess the words. Type the start of a search into Google on your phone and read the suggestions; they are what people actually type. Then match each kind of search to one page on your site:
| What people search | Example | The page that should answer it |
|---|---|---|
| Your name | "marco's trattoria" | Home page, with hours, address and the menu one tap away |
| Your name + menu | "marco's trattoria menu" | A menu page in text, with prices |
| Food + place | "italian restaurant oak park" | Home page title and first lines naming the food and the area |
| Food + near me | "lasagna near me" | Mostly the map pack; the dish named on your menu page helps relevance |
| Ordering | "marco's trattoria order online" | Your ordering page, linked from the home page and your profile |
| Occasions | "private dining oak park", "catering for office lunch" | A page for each service you really offer: private events, catering |
| Practical | "marco's trattoria parking", "gluten free" | A short section on the home or menu page |
One page per kind of search. A catering page and a private dining page are two pages because the people searching want different things; "gluten free options" is a line on the menu page, not its own page.
Titles and descriptions for each page
The page title (the <title> in the page's code) is the blue link in Google's results. Google's advice: every page gets its own title, descriptive and short, no repeated keywords, your name at the start or end with a separator [2]. Google sets no character limit but cuts long titles to fit the screen [2], so the important words go first.
| Page | Weak title | Better title |
|---|---|---|
| Home | Home | Marco's Trattoria · Italian Restaurant in Oak Park |
| Menu | Menu | Marco's | Menu and Prices · Marco's Trattoria, Oak Park |
| Order | Order Online Best Pizza Pasta Italian Food Oak Park | Order Pickup Online · Marco's Trattoria |
| Catering | Services | Office and Party Catering in Oak Park · Marco's |
The meta description is the grey text under the link. Write one or two sentences for each page that say what's there and why to tap: "Fresh pasta made each morning, wood-fired pizza and a patio on Lake Street. Open daily from 11, pickup ordering online." Google doesn't use the old "meta keywords" tag at all [3], so skip it.
Each page also needs one main heading (<h1>) that says the same thing as the title; Google uses that heading, among other things, when it writes the link [2].
Put the menu on the page as text
The menu is the page most people look for, and the one most restaurants hide from Google inside a photo or a PDF. A menu written as text on the page:
- lets Google match searches for your dishes ("birria tacos", "oat milk latte") to your restaurant;
- can be copied by Google into your Business Profile menu [4];
- loads fast and reads well on a phone, with no zooming;
- is easy to update when a price changes.
Keep a PDF to download if you like, but the text version is the menu. Use the dish names your guests use, a short description with the main ingredients, the price, and dietary marks (V, GF) with a key. The details, including the menu markup Google reads, are in how Google reads your menu; ways to make the menu page are in how to create a restaurant menu online for free.
Restaurant structured data (the code Google reads)
Structured data is a block of code in the page that tells Google, in a fixed format, that this is a restaurant with this address, these hours and this menu. Google's documentation for local businesses lists name and address as required, and recommends servesCuisine, menu, priceRange, openingHoursSpecification, telephone, url and geo [5]. For a restaurant, use the type Restaurant. An example to copy into the home page's <head>, with your own details:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Restaurant",
"name": "Marco's Trattoria",
"image": "https://www.example.com/img/front.jpg",
"url": "https://www.example.com/",
"telephone": "+1-708-555-0100",
"servesCuisine": "Italian",
"priceRange": "$$",
"menu": "https://www.example.com/menu",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Lake St",
"addressLocality": "Oak Park",
"addressRegion": "IL",
"postalCode": "60301",
"addressCountry": "US"
},
"openingHoursSpecification": [{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],
"opens": "11:00",
"closes": "21:00"
}]
}
</script>
Check it with Google's Rich Results Test, then use the URL Inspection tool in Search Console to see how Google reads the live page [5]. The details must match your Business Profile and the visible page exactly. Don't add star ratings of your own restaurant to this block: Google says review markup in local business data is for sites that collect reviews of other businesses [5].
Name, address and phone the same everywhere
Write your restaurant's name, address and phone number the same way on your website footer, your Google Business Profile, Apple Maps, Bing Places, Yelp, Facebook, Instagram and any delivery app. "123 Lake St" in one place and "123 Lake Street, Suite B" in another is fine for people, but a different phone number or an old address leaves both Google and diners unsure which is right. When you move or change your number, update every listing the same week.
Speed and phones
Most restaurant searches happen on a phone, often outside, on mobile data. Google measures real visitors' experience as Core Web Vitals, and calls a page good when [6]:
| Measure | What it means | Good |
|---|---|---|
| Largest Contentful Paint (LCP) | How fast the main content shows | 2.5 seconds or less |
| Interaction to Next Paint (INP) | How fast the page reacts to a tap | 200 milliseconds or less |
| Cumulative Layout Shift (CLS) | How much things jump around while loading | 0.1 or less |
What slows restaurant sites most, and the fix:
- A full-screen video or slideshow on the home page. Use one good photo instead.
- Huge photos straight from a camera (5 MB each). Resize to the width they show at and save as WebP or JPEG; under 200 KB each is a fair aim.
- A menu as a PDF that has to download before anyone can read it.
- Pop-ups asking for an email before the visitor has seen the menu.
- Many add-ons (chat, reviews widgets, booking scripts) on every page.
Test any page free at PageSpeed Insights (pagespeed.web.dev), on the mobile tab. Every photo also gets alt text: a short line saying what's in it ("wood-fired margherita pizza"), which helps Google understand the picture [3].
Google Search Console: see what people search to find you
Search Console is Google's free tool for site owners. It shows which searches your pages appeared for, how often, your average position, and how many people clicked. To set it up:
- Go to search.google.com/search-console and add your site (the domain property covers every page).
- Verify you own the domain, usually by adding a line Google gives you at your domain company; many website builders do this for you.
- Submit your sitemap (often
yoursite.com/sitemap.xml). Google says a sitemap helps but isn't required; most pages are found through links [3]. - After a few weeks, open Performance → Search results and sort by impressions.
Read it like this: a search with many impressions and few clicks means Google shows you but the title doesn't win the tap, so rewrite the title in those words. A search where you sit at position 8 to 20 is close: add a section answering it on the page that already shows. That's the routine we use on our own pages.
Links from other local sites
Links are how Google finds most new pages [3], and links and articles about you count toward prominence [1]. A restaurant earns them by being part of its town, not by buying them. Places that link to restaurants:
- The local newspaper, city magazine and food bloggers (an opening, a new chef, a charity night);
- Your chamber of commerce or business improvement district's member list;
- Farms, roasters, breweries and bakeries you buy from, often listing "where to find us";
- Local events and festivals you cook at;
- Schools, teams and charities you sponsor;
- Wedding and event venue lists, if you cater;
- Tourism sites for your town or county.
Each one should link to your own website, not your delivery app page. Skip anyone selling "100 backlinks for $50": Google's spam rules cover bought links, and they don't send diners.
Pages and posts worth adding
Most restaurants need five to eight pages, not fifty. Add a page when people search for something you really offer:
- Catering, with what you cater, minimums, lead time and how to order.
- Private events, with room size, menus and a contact form.
- About: who runs it, since when, where the recipes come from. Real names and faces build trust.
- A page per location if you have more than one, each with its own address, hours, menu and profile link.
- Seasonal or event pages (Thanksgiving pies, Valentine's dinner) that you update each year at the same address, so the links they earn keep counting.
A blog only helps if you'll write about things people search for (your town's food events, a dish's story, how to reheat your takeout) and keep at it. A blog last updated in 2021 helps no one.
Order online from your own site
If the only way to order is a delivery app, the searches with "order online" in them send diners there, and you pay the app's commission on every order. An ordering page on your own site, linked from your home page and set as the preferred Order button on your Google profile [7], keeps those searches on your site. The costs are compared in commission-free online ordering. How the button decides which link to show, and what each costs, is in Google online ordering for restaurants.
How long restaurant SEO takes
Google says some changes take effect in a few hours and others take several months, and suggests waiting a few weeks before judging a change [3]. In practice for a restaurant:
- Business Profile fixes (category, hours, menu): changes show in 24–48 hours [4]; the effect on searches shows over the following weeks.
- A new site or new titles: Google has to crawl it again first. Watch Search Console from week two.
- Reviews and links: slow and steady, month by month.
Anyone promising first place on Google by a date can't keep that promise: Google says it can't guarantee a site will even be indexed [3], and there's no way to pay for local rank [1].
A four-week plan you can do yourself
| Week | Do this | Time |
|---|---|---|
| 1 | Claim and complete the Google Business Profile: category, hours, menu, photos, website, your own Order link | 2 hours |
| 2 | Menu page in text; a title and description on every page; one h1 each; name, address, phone in the footer | 2–3 hours |
| 3 | Restaurant structured data on the home page; photos resized with alt text; PageSpeed check on mobile; Search Console and sitemap | 2 hours |
| 4 | Same name, address and phone on Apple Maps, Bing, Yelp, Facebook; ask three local partners for a link; start asking every guest for a review | 2 hours |
After that, 15 minutes a week: reply to reviews, keep hours and menu prices right, add photos, and once a month read Search Console.
Common mistakes
- The menu only as a photo or PDF.
- Every page titled "Home" or just the restaurant's name.
- Keywords stuffed into titles and text ("best pizza Oak Park pizza near me pizza delivery"); Google treats it as spam [3].
- The Google profile's website set to a delivery app.
- Old hours on the website that disagree with Google.
- A slow home page with an autoplay video.
- Paying for links, or for a "monthly SEO" package with no report of which searches moved.
Questions
Do restaurants need SEO?
Every restaurant gets searched for by name; most also want to show up for their food plus their area. The basics (a complete profile, a text menu, good titles, a fast site) are what let Google show you for both. You don't need an agency for them.
What is local SEO for restaurants?
Showing up in the map results for searches near you. It depends on relevance, distance and prominence [1]: your Business Profile, your reviews, and your website's place in the web results.
How do I get my restaurant website on the first page of Google?
For your own name, a complete profile and a site with your name in the home page title usually does it. For "food + town" searches, add the food and area to the home title and first lines, put the menu in text, earn reviews and local links. No one can guarantee a position [3].
Does a PDF menu hurt SEO?
Google can read some PDFs, but a text menu on the page is easier for Google to match to dish searches, faster on a phone, and can feed your Business Profile menu [4]. Keep the PDF as an extra if you like.
How much does restaurant SEO cost?
The work above costs nothing but time. Agencies charge monthly; ask any of them which searches they will move and how they'll show it in Search Console. What the website itself costs is in what a restaurant website costs.
Do reviews help restaurant SEO?
Google says more reviews and positive ratings can improve your local ranking [1]. Ask every guest the same way, never with a reward; the rules are in our Google Business Profile guide.
The fastest start is a site that does the technical part for you: build your menu site free from a photo of your menu, with the menu as text, a title and description on each page, phone-fast pages and pickup ordering with no fee per order. More answers are in all our guides for restaurant owners.
Sources
- Tips to improve your local ranking on Google, Google Business Profile Help, read Nov 1, 2026.
- Influencing your title links in search results, Google Search Central, read Nov 3, 2026.
- SEO Starter Guide, Google Search Central, read Nov 3, 2026.
- About the menu editor, Google Business Profile Help, read Nov 3, 2026.
- Local business (LocalBusiness) structured data, Google Search Central, read Nov 3, 2026.
- Web Vitals, web.dev (Google), as published.
- Manage online ordering options, Google Business Profile Help, read Nov 3, 2026.