QR code menus for restaurants
One code on each table replaces stacks of laminated menus. Change prices, 86 a dish, or swap in the brunch menu — without touching the printed code. Here is the setup that actually works in service, learned from what fails.
The five-step setup
- Host your menu somewhere with a URL — a page on your site, a PDF, or a menu platform (more on the trade-offs below).
- Create a dynamic QR code pointing at it. Dynamic is the whole game for menus: tomorrow’s price change or a moved URL must not mean re-laminating fifty table tents.
- Brand it in the generator — your colors, your logo — and keep the scanability meter green; dining rooms are dim.
- Download at 512 px or 1024 px and print: table tents, window decals, check presenters, a corner of the printed menu.
- Test at an actual table at dinner lighting before printing the full run. Not in the office. At the table.
Where to host the menu (this decides the guest experience)
The code is a doorway; the menu behind it is what guests judge. The realistic options:
- A mobile web page on your site — the best experience. Text reflows, loads fast on cellular, updates instantly when you edit it, and is legible one-handed at a bar. If your site has a menu page at all, point the code there.
- A PDF — acceptable, with caveats. PDFs preserve your print design but force pinch-zooming on phones, and multi-megabyte scans of the print menu load painfully on restaurant WiFi. If PDF is the pragmatic choice, export text-based (not a scan), portrait, under 1–2 MB.
- Google Drive or Dropbox links — fine for getting started. Free and instant, but preview pages add clutter and occasionally throw sign-in prompts. Fine for week one; graduate to your own site when you can.
- Menu platforms. Nice editing and photos, monthly fee, and their branding between you and your guest. With a dynamic code you can trial one and repoint to your own page later without reprinting — which is precisely the flexibility you paid for by going dynamic.
Print placement and sizing
| Placement | Scan distance | Minimum code size |
|---|---|---|
| Table tent / sticker on table | 20–30 cm | 2.5–3 cm |
| Counter or bar top | 30–50 cm | 3–5 cm |
| Window (“see our menu”) | 0.5–1 m | 5–10 cm |
| Street sign / A-frame | 1–2 m | 10–20 cm |
The rule behind the table: code width of at least one-tenth of the scanning distance. When a placement straddles two rows, size for the farther one — oversizing costs nothing, undersizing costs scans.
Surviving a dining room
- Laminate or acrylic stands — table codes meet marinara. Matte laminate specifically: gloss under pendant lights produces glare that defeats scanning, the most common field failure for menu codes.
- Dark code on a light background, even if your brand is dark-mode; reserve a light panel for the code on dark tents.
- Caption every code. “Scan for menu” in readable type. Unlabeled squares get ignored by exactly the guests who would otherwise flag down a server.
- One code per placement, not a mural of codes. Menu, WiFi (see the WiFi guide), review link — pick the one or two that matter per surface, each clearly labeled.
The update workflow, once it runs
Price change or new special: edit the menu page (or upload the new PDF at the same link), and every code in the building serves it instantly. Seasonal menu with its own URL: open your collection, edit the code’s destination, done — the printed tents never know. Weekend brunch: swap the destination Friday night, swap it back Sunday. This is the compounding payoff of the dynamic choice; a static code would have you re-laminating tables for every one of these.
Keep a paper fallback
Some guests have no smartphone, a dead battery, or simply hate phone menus — and basements eat cell signal. Keep a handful of printed menus per section and make sure the code placement never reads as “phone required.” The code should feel like the fast lane, not a wall. (Your servers will also thank you for the large-print copies.)
Measuring what happens
Dynamic menu codes report scans over time — expect a lunch spike, a dinner ramp, and dead Mondays that match your covers. Two practical uses: staff timing (the pre-rush scan ramp is your prep bell), and placement testing — run distinct codes for tables vs. window for a week, and let the counts decide whether the window decal earns its spot. The dynamic guide covers the analytics in depth.
Mistakes that cost scans
- Printing the code over a photo or wood-grain texture — busy backgrounds sabotage the reader.
- Sizing it under 2.5 cm because the tent design was tight.
- Static code to a PDF named menu-v2-final-SPRING.pdf — one filename change later, every table 404s.
- QR-only service with zero paper fallback — you will hear about it in reviews.
- Never test-scanning at night, in the actual room, with an older phone.
The destination page checklist
Because the code only opens the door, spend the quality budget on what is behind it. A menu page that converts scans into orders: loads in under three seconds on cellular (compress the images — food photos are the usual offender), sets type at a size readable without zooming, puts sections in service order with prices unambiguous, and shows today’s date or a “current as of” note so guests trust it over a stale search result. Skip autoplay video, pop-ups, and cookie walls — a guest at a table is the most captive audience on the internet and the easiest to lose. If dishes sell out mid-service, an editable page turns 86ing into a strikethrough instead of a server apology, which is quietly one of the best guest-experience wins of the whole setup.
A one-week rollout plan
Restaurants that switch smoothly do it in stages rather than swapping every table on a Friday night:
- Day 1–2: build the destination. Get the menu page or PDF right on a phone first — fast load on cellular, readable type, prices current. Nothing else matters until this does.
- Day 3: create and test the code. Dynamic code, branded, laminated sample on one table. Every server scans it with their own phone at evening light; whatever they trip over, guests will too.
- Day 4–5: soft launch on a section. Run one section QR-first with paper on request. Watch two numbers: how often servers get asked for paper, and the scan curve in the analytics. Adjust caption wording and tent placement — small changes move scan rates surprisingly hard.
- Day 6: print the full run. Same file, all tables, plus the window decal sized from the table above. Keep a stack of paper menus per section.
- Day 7 onward: make updates routine. The person who changes menu prices owns updating the destination page — one owner, no drift. The printed codes never enter the conversation again, which was the point.
Notes for multi-location and groups
Groups get outsized value from doing this once, centrally. Give every location its own dynamic code even when menus are identical — per-location scan counts become a free comparative dashboard (why does the Elm Street window code triple Main Street’s?), and the day one location pilots a new menu, only its destination changes. Keep one brand recipe for the code styling — colors, logo treatment, caption wording — so a guest who scanned at one location instantly trusts the code at another. Name codes in your collection by location and placement (Elm St — tables, Elm St — window) because six months from now “QR code 3” means nothing, and the person doing the mid-service destination fix will not be the person who set it up. Seasonal menu swaps then become a five-minute checklist across every location, run from one laptop, with zero printing anywhere in the chain.
Common questions
- Do I need an app for my restaurant?
- No — any webpage or PDF works as the destination. The code is just the bridge to it.
- What does this cost?
- A static menu code is free forever. Editable dynamic codes start at $3/mo billed yearly — the price of not reprinting tents once.
- Can I see how many people open the menu?
- Yes — dynamic codes count scans over time, by device and location, per code.
- One code for food and a separate one for drinks?
- Better: one code to a landing page with both menus one tap away. Every extra printed code is another thing to explain at the table.
- What about ordering and payment from the table?
- That is a POS-integration product beyond a menu code — but the printed code is the same either way: point your dynamic code at the ordering page when you adopt one, reprint nothing.
- How big should the window code be?
- 5–10 cm for sidewalk scanning, placed at adult chest-to-eye height, away from glass glare — and test from outside at dusk, when the reflections are worst.