QR codes for restaurants and menus: a practical guide
A QR-code menu is one of the most common uses of dynamic codes anywhere — and one of the easiest to get wrong in a way that only shows up months later, when the kitchen changes a price and the printed table-tent still shows the old one.
Print the code once, host the menu separately
The mistake to avoid is treating the QR code as tied to a specific menu PDF instead of to a destination that happens to currently be a menu. If the code is dynamic, it doesn't matter how often the menu changes — you update where the code points, not the code itself. A seasonal special, a price change, an item running out — none of it requires reprinting a single table-tent, window sticker, or laminated card.
Where to put it (and where not to)
- Table tents and placemats: high visibility, works well since customers are already seated and looking down at the table.
- Window stickers and entrance signage: useful for people deciding whether to come in — make sure the code is legible in daylight glare and from a normal walking distance, not just close up.
- Receipts: a good spot for a feedback or loyalty-program code rather than the menu itself, since the moment is different (after the meal, not before ordering).
Avoid putting the only copy of your menu behind a QR code with no fallback for someone whose phone camera is having a bad day or who genuinely doesn't want to use their phone at the table — a physical backup menu at the host stand costs little and avoids a real accessibility gap.
What the destination page actually needs
The landing page a diner reaches after scanning needs to load fast on a restaurant's often-weak WiFi or cell signal, be legible in one hand while the other holds a drink, and not require creating an account or downloading anything just to see the menu. Whatever format you host the menu in — a simple web page is usually a better bet than a PDF, since PDFs pinch-zoom awkwardly on a phone and load slower.
Multiple codes, multiple purposes
A single restaurant can reasonably run more than one QR code with different destinations for different purposes — one for the menu, a separate one for a loyalty program signup, another for leaving a review after the meal. Keeping them visually distinct (different placement, a short label next to each) avoids diners scanning the wrong one and landing somewhere they didn't expect.
Track it, quietly
Because scans are logged server-side without needing a cookie banner or an app, you can see how many people actually scan — by day, by hour, even by table if you print separate codes per table — without asking a single diner to opt into anything. That data is the difference between a QR menu that's "probably working fine" and one you actually know is being used.