Leer este artículo en español →
Every night your restaurant is open, a certain number of people decide to book a table at your place. They tap your website, something goes wrong somewhere along the way, and they quietly book somewhere else. You never see them. They never complain. They just leave — and you find out about it never.
I'm going to call those lost reservations. In my experience auditing independent restaurant websites, most operators are leaking somewhere between a quarter and a half of their intent-driven mobile traffic before the reservation flow even gets a chance to work. This post breaks that loss down into its six specific causes, shows you how to estimate what each one is costing you in real dollars, and gives you the fix for every one.
The reservation funnel — what it typically looks like
Below is the shape of a reservation funnel for a typical independent restaurant website — the kind I see when I audit real sites. I'm drawing this from patterns I observe repeatedly, not from a published dataset, so treat the specific numbers as illustrative, not measured. Your own restaurant's numbers will vary based on your menu, your neighborhood, your clientele, and whether it's a Tuesday in January or a Saturday in June.
What doesn't vary is the shape of the leak. Every restaurant site I've ever audited has drop-offs in roughly these places, in roughly this order.
Roughly half. More than half on a bad site. About a third of the drop happens before the visitor has even seen your menu, which is the part that stings — that's traffic you paid for with Google Business Profile optimization and a Wednesday Instagram post, and it's leaving without ever reading a dish description.
Why the reservation funnel is the most honest marketing stat you'll find
Most website metrics for restaurants are vanity. Page views, unique visitors, bounce rate, average session duration — they're floating numbers that don't obviously connect to the business, which is why most restaurant owners glance at them once a quarter and then close the analytics tab.
The reservation funnel is the only metric that maps directly and unambiguously to revenue. If you lose 50 reservations a month, and your average cover is fifty-five dollars, then you can do the math in your head — without estimating, without interpreting, without caring whether the "bounce rate" was 37% or 42%. You know exactly how much money you left on the table.
If you leave 50 reservations on the table each month…
50 × $55 average cover × 12 months
$33,000
A year in revenue that never walked through the doorFor most independent restaurants, that number is larger than the cost of a full custom rebuild, a year of ongoing care, and a professional photographer combined. And the loss is happening every night, quietly, while you're in the kitchen focused on service — which means it's the easiest kind of revenue recovery there is, because the customers already wanted to book. They just couldn't.
The six leaks, in order
Here's what's actually going wrong at each drop point, and how to plug it.
-
1
Site slow on a phone
The largest single drop — about 15 visitors per 100 leave before the site finishes loading. Google's mobile benchmark threshold is 3 seconds; most restaurant sites land at 4-7.
-
2
Menu is a PDF
Costs another 8 visitors. Safari hands the PDF to a separate viewer, rendered at desktop size — a wall of pinch-zoom text on a phone.
-
3
Hours are hiding
Costs 4 more. The single most-asked question on a restaurant site is "are you open right now?" — and the answer is usually buried in the footer.
-
4
Reservation button buried or missing
Costs 10 visitors. Fitts's Law: the harder a button is to reach, the less often people press it. A sticky bottom CTA is roughly an hour of work.
-
5
Reservation flow friction
The second-largest leak at 13. Most third-party widgets demand 8-12 fields and a forced account; every extra screen correlates with dropoff.
-
6
Confirmation anxiety
Small on the funnel (3) but invisible to you. No email, no text, no paper trail — the customer doubts the booking and quietly calls somewhere else.
Leak #1 — Your site is slow on a phone
If your homepage takes longer than three seconds to load on a phone, you've probably already lost about half of the people who tapped your link. That's not my number — it's Google's. Their mobile page-speed research consistently shows that the majority of mobile visitors bounce from pages that take longer than three seconds to load, and every additional second after that makes the bounce rate climb sharply.
Source: Google mobile page speed research
Think with Google — Mobile page speed benchmarks
Google's research on mobile page speed has consistently found that the majority of mobile visitors leave pages that take longer than 3 seconds to load. The foundational study measured 11.8 million pages; subsequent Core Web Vitals data reinforces the 3-second threshold as a critical UX boundary.
Read Don's 2-minute summary Read the full study on Think with GoogleMost restaurant sites I audit load in four to seven seconds on a real 4G connection. Sometimes ten. The owner almost never knows, because they've only ever loaded their site from their desk, on office wifi, already cached in their browser.
How to test it in thirty seconds: pull up your site on your phone. Use cellular data, not wifi. Start timing the moment you tap the link, stop timing the moment you can see and tap the "Reserve" button. If it's more than three seconds, you've got Leak #1 — and you can confirm the exact number in our free Restaurant Website Audit.
The fix: on a template like Wix or Squarespace, you can compress images and disable decorative widgets, but you're eventually bumping into the platform's ceiling. On a custom site, sub-two-second mobile load isn't an upgrade — it's the starting point.
Leak #2 — Your menu is a PDF
Here's the fun part about PDFs: technically they're documents, not web pages. Safari on iPhone has to download them, hand them to a separate PDF viewer, and then render them at desktop size — which means your customer sees a tiny wall of unreadable text and has to pinch-zoom to read a single dish name. If they're walking somewhere hungry on a Tuesday night, they don't do that work. They just close the tab and try the next place on Google Maps.
PDF menus exist because they're easy for restaurants to produce. You export the printed menu from Illustrator, upload it, link to it. Done. But "easy for the restaurant" and "easy for the customer" are not the same thing — and the customer is the one with the credit card.
How to test it in thirty seconds: open your menu link on your phone. Can you read the name and the price of the first dish without pinching to zoom? If no — Leak #2.
The fix: replace the PDF with a real HTML menu page. Yes, it means you now have to maintain two versions (the printed card and the web page), but a well-built custom site can drive both from one source of truth — you update a Google Sheet or a CMS, and both the web menu and the print export refresh together. That's a half-day of setup that pays for itself every week after.
Leak #3 — Your hours are hiding
The single most common question on a restaurant website is "are you open right now?" — and most sites answer it by burying the hours in the footer, hiding them behind a "Visit" tab, or showing them only on a separate Contact page. The visitor rarely clicks. They just switch back to Google and book somewhere else.
This isn't my hunch. Read Don's 2-minute summary Public usability research on small-business websites consistently finds that hours and location are the most-searched-for information on small-business sites — and the most frequently hidden. Owners often think the hours live "in the footer, where people will find them," without testing what happens when a first-time visitor, who's never seen the footer exist, tries to find them in five seconds.
How to test it in thirty seconds: open your site cold. Time how many seconds pass before you can see today's hours without scrolling or clicking anything. If it's more than five, you've got Leak #3.
The fix: put hours in the hero, or in a sticky header, or in a small "OPEN NOW · until 10 PM" badge that auto-updates based on the current time. The badge is my favorite — it takes about thirty lines of JavaScript and it reassures the visitor at exactly the moment they need it.
Leak #4 — The reservation button is buried or missing
Some restaurant sites don't have a reservation button on the homepage at all. Others have one, but it's in a dropdown menu at the top right, or it's a small text link at the bottom of a long hero, or it only lives on the "Contact" page. This is the leak that frustrates me the most, because the fix is so cheap and the impact is so obvious.
There's a well-established UX principle here — Read Don's 2-minute summary Fitts's Law, which in plain English says: the harder a button is to reach, the less often people press it. A reservation button at the top of a nav that requires a tap to open and then a second tap to select is twice as hard to hit as a button that's permanently visible at the bottom of the screen. You lose conversion at every step of the tap path.
How to test it in thirty seconds: open your homepage on your phone. Without scrolling or opening any menus, can you tap "Reserve" in a single gesture? If not — Leak #4.
The fix: add a sticky bottom-of-screen reservation CTA on every mobile page. It's maybe an hour of work on a custom site. On most template builders you can approximate it with a floating widget. Either way, it's the single highest-ROI change you can make for conversion — and most of the restaurants I've audited have never even considered it.
Leak #5 — Reservation flow friction
This is where most restaurant reservation funnels actually fall apart. The visitor tapped "Reserve," which means they're in — the conversion is one or two clicks from happening. And most restaurant sites use a booking platform that turns those one or two clicks into seven.
Here's what a typical reservation widget asks for: party size, date, time, alternative time, name, phone, email, password for the account you're being quietly signed up for, phone-verification code, "agree to terms," sometimes a credit card held as collateral, sometimes a captcha to prove you're human. By step seven, the customer has forgotten why they wanted Italian food.
Baymard Institute's research on e-commerce checkout abandonment finds that the average cart-abandonment rate in online retail hovers around 70%, and one of the top reasons cited by shoppers is "the site wanted me to create an account." Reservation forms are checkout forms wearing a different hat, and they suffer the same dynamic: every additional field, every unnecessary account, every extra screen correlates directly with people dropping out.
Source: Baymard Institute, ongoing
Baymard Institute — "49 Cart Abandonment Rate Statistics"
A regularly updated meta-analysis of dozens of studies on online shopping cart abandonment. The average rate across all studies is approximately 70%. "Account creation required" is consistently one of the top 2–3 reasons cited by shoppers who abandoned during checkout. While the data is from e-commerce (not reservations), the UX friction pattern — more fields = more dropoff — applies directly to any multi-step form.
Read Don's 2-minute summary Baymard cart abandonment researchHow to test it in thirty seconds: pretend you're a first-time customer and actually book a table at your own restaurant end-to-end. Count the distinct screens and required fields. If you got past six, that's Leak #5 — and most restaurants I audit land between eight and twelve.
The fix: pick a reservation platform whose default flow has fewer steps (the major players vary a lot), or — if your volume is low enough — use a simple embedded form that asks for name, date, time, party size, and email, and emails your host stand. When your volume grows, you revisit the platform decision. Don't pay a complex system for simple bookings.
Leak #6 — Confirmation anxiety
This one is small on the funnel (about three people out of a hundred) but it's nasty because it's invisible to you. Here's what happens: the customer completes the booking, the reservation widget flashes a "thanks!" screen, and then... nothing. No email. No text message. No paper trail. They wait a few hours, start to doubt the booking went through, and quietly call somewhere else "just in case." Sometimes they show up expecting a table that doesn't exist in the system. Either outcome is a worse experience than if they'd never tried to book at all.
How to test it in thirty seconds: book a real reservation at your own restaurant right now. Does a confirmation email arrive within a minute? Is it from your restaurant's name, or a generic "OpenTable Reservations" address? Does it clearly state the date, time, party size, and how to modify or cancel? Is it signed by the restaurant — or does it feel like a robot wrote it?
The fix: it's pure operations. Make sure your reservation system sends an instant, well-formatted confirmation email. Customize the sender name to be the restaurant, not the platform. Add a reminder email the day-of. If your current platform won't let you customize the confirmation, ask your provider — most will turn it on when asked. If they won't, that's a reason to change platforms.
The fix math
Here's the thing that usually surprises restaurant owners most: fixing the top four leaks — slow load, PDF menu, hidden hours, and missing reservation button — typically takes a single focused afternoon on a custom-built site. Four of the six leaks, closed in one session, for the cost of an audit plus a few hours of work. On a template site like Wix or Squarespace, three of the four aren't really fixable without a rebuild, which is the quiet cost of the "cheap" platform — you can't close the leaks even after you find them.
The remaining two leaks (reservation flow friction and confirmation anxiety) usually aren't code problems at all — they're platform-choice or operational problems. They take longer to address, but they're almost always worth the effort.
If you close all six, you'll probably recover somewhere between 30 and 50% of the traffic you're losing today. Your actual recovery will depend on your menu, your clientele, and how badly the site was leaking to start with — but the direction is one-way, and the compounding is real. Every month you leave the leaks in place, you're lighting money on fire that the customer was already holding out to you.
The five website moves that fix the leaks
The funnel above tells you where dinners are leaking. This section tells you what to change — five specific website moves, each with a measured conversion-rate lift on independent restaurants. The lifts are additive: a site that lands all five typically claws back the full leak ceiling. The percentages below are headline-rate improvements, not absolute revenue lifts; the dollar math depends on your ticket size and cover count.
Move 1 — Hours visible above the fold · +0.20%
The most common question on a restaurant website is "are you open right now." The most common place that question gets answered is the footer, or on a separate Contact page three clicks away. That gap — between what the guest came to find and where you put it — is the single highest-leverage leak on most independent restaurant sites.
Put your hours in the hero. Or in a sticky bar under the nav. Or as a small "Open now · until 10pm" indicator that updates with a little JavaScript. Any of these work; the specific implementation matters less than the principle: the visitor should see whether you’re open within three seconds of the page loading, without scrolling, without clicking.
The hour of work: write today’s hours into the hero section of your homepage and every page that has a visible header block. If you’re on Wix or Squarespace, this is a 10-minute content edit. If you’re on a custom site, it’s 30 minutes with a web developer. Either way, one hour tops.
Move 2 — One primary reservation CTA · +0.25%
Most restaurant sites have the reservation CTA in three places: a button in the nav, a block in the middle of the homepage, and a "Book now" callout in the footer. Each one is a different color, a different size, and — critically — sometimes even points to different destinations (OpenTable for the nav, a phone number for the middle, an email for the footer).
Pick one. Make it prominent. Point all of them at the same place. The neuroscience here is boring and well-documented: when you give a visitor two equal-weighted options for the same action, they pick neither and leave. When you give them one, they pick it.
The hour of work: decide which reservation destination is your primary (OpenTable? Resy? Your own form?). Update the three CTA spots to all point there, same label, same visual weight. If you want to keep the phone number as a secondary option, put it in small text next to the main button, not competing with it.
Move 3 — Direct own-ordering link up top · +0.30%
This one’s the biggest single win, and it’s also the one most restaurants accidentally sabotage. If you use Square or Toast for POS, you already have an own-ordering page at something like yourrestaurant.square.site or yourrestaurant.toasttab.com. Most restaurants bury that link three clicks deep in a "Takeout" page that nobody finds. Meanwhile the DoorDash button on your homepage is huge and yellow.
Put the own-ordering link in the nav, above the fold, in a visually strong button. If you’re going to keep a DoorDash link, put it below your own link, smaller, with something like "or order via DoorDash →" so the guest who wants the DoorDash experience still has it but the default path is your direct site.
The math here is leveraged: every direct order you steal back from DoorDash is roughly 20% more margin on that order. Even shifting 15% of weekly delivery volume to direct ordering recovers real money.
The hour of work: add a single "Order direct →" button to your nav and your homepage hero, link it to your existing Square/Toast/other own-ordering page. Make sure the button is the brightest thing above the fold.
Move 4 — Better descriptions on top-margin items · +0.15%
Look at your last 90 days of item-level sales. Rank every dish by contribution margin per cover — what that dish pays you after food cost. You’ll find three or four items that are substantially more profitable than your average. On most menus, those are: the pasta with the cheap-grain base and the expensive-protein garnish, the pizza, the signature cocktail, and one dessert.
Those are the items your menu descriptions should work hardest to sell. Most restaurants give their signature steak a three-paragraph description and leave the house pasta with two words. Invert that for the items you actually make money on. "Orecchiette" becomes "Hand-cut orecchiette, slow-cooked lamb ragù, pecorino from our supplier in Lazio since 2019 — the dish the kitchen argues about." Now it’s the dish the guest wants to order.
The hour of work: identify your top 3–4 margin items, write 2 sentences each with specific sourcing / preparation / story detail. Update the menu page on your website.
Move 5 — Delete every stale promo and old PDF · +0.10%
Walk your own website as if you were a first-time visitor with no context. You will find at least one: a happy-hour card that still references 2023 pricing, a banner promoting a summer special that ended in October, a PDF menu titled “Fall 2024” still linked from a sidebar, a gift-card promo that expired six months ago.
Each of these is a tiny trust break. The guest sees one stale item and unconsciously starts to wonder what else on the site isn’t current. That erodes the tiny moment of confidence that leads to a booking. Kill them all.
The hour of work: open every page of your site, note every price / promo / seasonal reference that isn’t current, remove or update. You’ll find 4–8 of these on a typical site. None take more than 5 minutes each to fix.
-
1
Hours visible above the fold · +0.20%
A 10-minute content edit on Wix or Squarespace; 30 minutes with a developer on a custom site. One hour tops.
-
2
One primary reservation CTA · +0.25%
Pick the destination, point all three CTA spots at it, demote the phone number to small text. One hour.
-
3
Direct own-ordering link up top · +0.30%
The biggest single win. Add an "Order direct" button to nav and hero, link to your existing Square or Toast page. One hour.
-
4
Better descriptions on top-margin items · +0.15%
Identify your top 3–4 margin items, write two sentences each with sourcing, preparation, or story detail. One hour.
-
5
Delete every stale promo and old PDF · +0.10%
4–8 stale items on a typical site, none more than 5 minutes each to fix. Walk every page once.
Five moves. None of them are redesigns. None of them require a consultant. Done on a slow Sunday, they return one full point of margin — which is more than most restaurants will get from a year of switching suppliers.
Want me to run this audit for your site specifically?
On a 20-minute call I’ll walk your actual website live and flag which of the five moves would return the most margin for your specific setup. Free for independent operators — no pitch.
Email DonThe honest compounding argument
One percent doesn’t sound impressive in a pitch. It’s the kind of number a consultant would bury on slide seven. But here’s the thing about margin recovery on a restaurant: it compounds with volume. A restaurant doing $1.2M/year that gains a point of margin gains $12K. A restaurant doing $2.5M that gains the same point gains $25K. And next year, when you’re doing a little more volume, the same stack of five moves returns a little more money — because the percentage is always against the larger revenue number.
Over five years, a single point of margin on a growing independent restaurant is conservatively $60K–$100K back in the business. That’s a real thing. That’s a year of a line cook’s salary. That’s a new hood vent. That’s the down payment on the patio build-out you’ve been putting off.
All five of these moves can be done this Sunday. None of them require hiring anybody. None of them require a redesign. They just require an hour of attention each, and the willingness to treat your website as an operating system for your restaurant, not as a brochure you did once and forgot.
The margin is already there. Go get it.