A QR code on the table lets guests open your menu on their own phone in seconds: point the camera, tap the link, scroll the dishes. Done well, it saves printing costs and lets you change the menu the same day. Done badly, it frustrates people with a code they cannot scan or a page that never loads.
How a QR menu works
A restaurant QR menu is simple: the code is a picture that encodes a web address. A guest scans it with their phone camera, the browser opens, and the menu appears. No app is needed — both iPhones and Android phones have read QR codes straight from the camera for years.
There are two kinds of code:
- Static. The menu's web address is baked into the pattern permanently. If that address ever changes, every printed code stops working.
- Dynamic. The code points to a short redirect address that you control. You can change where it leads at any time, without reprinting.
You also choose what the code opens: a PDF file or a normal web page. Either can live on your own website or on a menu-hosting service. Generate the code itself with any free online generator — for example, QRCodeMax.Vip — then test it before printing anything.
The real work is not making the code. It is choosing the right destination, placing the code where people can scan it comfortably, and avoiding the handful of mistakes that ruin otherwise good setups.
Why a mobile-friendly page beats a PDF
Many restaurants link the code straight to a PDF. It works, but it is usually the worse option.
PDFs are designed for paper. On a phone, a page-sized menu becomes a shrunken rectangle: guests pinch, zoom and drag sideways to read a single line. Fonts that look fine on A4 are tiny on a six-inch screen, and older guests — often the least comfortable with phones — struggle most.
PDFs are also heavy. A designed menu file can weigh several megabytes, and restaurant buildings are notoriously bad for mobile signal: thick walls, basements, metal kitchens. A large file on a weak connection means a spinner instead of a menu. A simple web page can be a fraction of the size and load almost instantly.
A proper mobile page also gives you options a PDF cannot: readable type at phone size, photos of dishes, allergen and vegetarian filters, several languages, and prices you can edit yourself without a designer.
If you already have a beautiful PDF, keep it — as a download link at the bottom of the web page, or as the printed fallback. Just do not make it the first thing a scan opens. And never link to a photo of the menu: photos are usually less readable than either option and useless for accessibility.
Getting the code right: size, contrast, testing
Before you think about placement, make sure the code itself can actually be scanned.
Size. A practical rule of thumb: the code's width should be about one-tenth of the distance you expect people to scan from. A table tent scanned from roughly 40 centimetres needs a code at least 4 centimetres wide; a poster by the door scanned from two metres needs around 20. When in doubt, go bigger.
Contrast and quiet zone. Dark code on a light background scans most reliably. Keep the plain border around the code (the "quiet zone"), and avoid inverting the colours or printing the code over a busy photo. Matte, dark-on-white survives real-world lighting best.
Error correction. QR codes include built-in redundancy: higher settings let the code scan even if part of it is scuffed or covered — up to about 30% at the top level. Standard medium is fine for table use; choose higher only where the code can get scratched.
Test like a guest. Print one proof at final size, in the final material (laminate, sticker, tent card), and scan it with at least one iPhone and one Android phone in the spot where it will sit. Test in the evening too, when the lighting changes.
Placement and lighting
The best code in the world fails if it lives somewhere awkward.
Where codes work well:
- Table tents or small stands, roughly at seated eye level
- Stickers on the table surface or on the menu card itself
- The back of the printed menu — a natural hybrid: paper first, code behind
- By the entrance or on the window for passers-by
- On receipts, so guests can revisit the menu or the restaurant later
Lighting and glare are the quiet killers. A glossy laminated tent under a spotlight, or a code lying flat on a glass tabletop, turns into a mirror at certain angles — the camera sees white glare instead of black modules. Choose matte finishes, raise the code a few centimetres off the glass, and check the actual table under the actual dinner lights, not just at noon.
Keep the code clear of the salt shaker, the candle and the flower vase. If half the code sits behind the napkin dispenser, half your guests will give up.
Outdoors, sunlight fades ink over time. Replace faded or scratched codes rather than hoping guests will squint successfully.
Keep a printed menu too
QR menus replaced paper entirely in some places, and plenty of guests resented it. The fix costs almost nothing: keep printed menus available.
People have good reasons not to scan. The battery is dead, the signal is poor, the eyesight is not what it was, or they simply prefer paper with dinner. A restaurant that hands over a printed menu on request loses nothing; a restaurant that points at the code and shrugs loses goodwill.
A few laminated menus behind the bar cover most situations. Better still, put the QR code on the printed menu itself: guests who want the live version with today's prices can scan, and everyone else reads the paper.
Think of the code as the default, not the only option. Hospitality means meeting people where they are.
Use a dynamic code so the menu can change
The strongest argument for QR menus is that the menu can change the moment prices do — but only with a dynamic code.
A static code points forever at one address. Redesign your website, move the menu file, and every tent card and window sticker in the building becomes a dead end. The only fix is reprinting, which defeats the point.
A dynamic code points at a short redirect address you control. When the menu moves, or when you replace the PDF with a proper web page, you update the destination in the generator's dashboard and every printed code keeps working. Seasonal menus, price changes and daily specials all become same-day edits.
Dynamic codes are a standard feature of most QR generators, free and paid — check before you print, because you cannot convert a static code afterwards. If the tool cannot edit the destination, print nothing yet.
Common mistakes (and how to avoid them)
Most QR menu failures come down to the same short list.
The code is too small
The most common mistake. A 2-centimetre code on a tent card, scanned from across the table, simply will not read — and guests will not lean over the soup to try. Follow the one-tenth rule and err large.
Glare makes the code invisible
Glossy lamination, glass tables and direct spotlights reflect the camera back at itself. Matte materials and a little elevation solve most of it. Check under dinner lighting, not in a bright quiet afternoon.
The page is slow
A multi-megabyte PDF or a page crammed with scripts and hero images will time out on weak restaurant signal. Compress images, keep the menu page light, and test it on mobile data in the middle of the dining room, not on fast office Wi-Fi.
The link dies
Static code, website redesign, dead link, useless coasters. Use a dynamic code from the start.
Extra hurdles
Forcing guests through a landing page, a language picker, an app install or an email form before showing food is the fastest way to lose them. The scan should open the menu directly in the browser.
No fallback
No printed menu, no staff able to describe dishes, no plan for a phone that will not cooperate. Keep paper on hand.
Never tested
The code was never scanned at final size, in final lighting, on a real phone. One test run catches almost everything on this list.
Conclusion
A QR menu succeeds on three things: a code that scans easily, a page that loads fast on a phone, and a fallback for guests who prefer paper. Use a dynamic code so the menu can change without a reprint, place the code where the lighting is kind, and test everything with real phones in the real room before the print run. Small details decide whether guests order happily or give up.