QR menus took off out of necessity and stuck around because they're genuinely cheaper to update than print. Here's how to set one up properly, not just slap a code on a table tent.

1. Host the menu somewhere stable

Before generating anything, decide where the menu itself lives — a page on your existing website, or a simple standalone page. It needs its own URL that you control, since that's what the QR code will point to.

2. Use a dynamic code, not static

Menus change — seasonal items, price updates, a dish that sells out for the day. If you generate a static code pointing directly at a menu PDF, changing anything means reprinting every table tent, sticker, and poster in the building. A dynamic code points to a short link you control, so you edit the destination once and every printed code updates instantly. See our static vs. dynamic guide for the full comparison.

3. Design for a phone camera, not a scanner gun

Most guests will scan with their phone's built-in camera at an awkward angle and from a foot or two away. Keep the code at least 2.5cm (1 inch) square on a table tent, larger on a poster viewed from further away, and leave a quiet margin of plain background around it — don't crowd it with text right up to the edge.

4. Test contrast before printing in bulk

Dark code on a light background scans most reliably. If you're matching your restaurant's branding with colored QR codes, keep the contrast high — a dark charcoal on cream works, a mid-tone on mid-tone often doesn't. Always test-scan a printed sample under normal lighting before ordering hundreds.

Print one physical test copy first. Screen previews look sharp at any size; a small printer or a busy tablecloth pattern behind a laminated card can trip up a scan in ways you won't see on-screen.

5. Add a fallback

Not every guest wants to use their phone at the table. A small printed summary — even just category names — or a "just ask your server for a paper menu" line avoids frustrating anyone who'd rather not scan.

6. Track what's working

Because a dynamic code routes through a redirect, you can see roughly how many scans it's getting. If a table tent isn't getting scanned, that's a placement or sizing problem worth fixing before you print more.

You can build the code itself — logo, colors, dynamic redirect — for free with the QRforLess generator.