How to make a QR code for a restaurant menu
A menu QR code is a five-minute job. The mistakes that turn it into a monthly bill — or a table of customers scanning a dead code — all happen in the two minutes before you print.
The five-minute version
- Put the menu at a permanent address you control:
yoursite.com/menu. A simple web page beats a PDF (more on that below), but either works. - Generate a static QR code that encodes that URL directly — not a “free” short link on someone else’s domain.
- Scan the code with your own phone and check the URL the camera shows. It must be your domain, going straight to the menu.
- Print it at the right size for the scanning distance (rule of thumb below), with a white margin, and put one on every table.
The mistake that kills menu codes
Restaurant menus are the canonical victim of the dynamic-QR trap. A “free” generator hands you a code that points to a redirect on its own domain; the redirect forwards to your menu — until the trial ends. Then every laminated table tent, window sticker and printed flyer goes dark at once, mid-service, and the fix on offer is a monthly subscription to switch your own tables back on.
The test takes ten seconds: scan your code and look at the URL before it opens. If it is your website, the code is static and permanent. If it is any domain you do not own, its lifetime is your account’s lifetime — do not laminate it.
A static code has no middleman to pay and nothing to expire. The trade-off is that the printed code always opens the same URL — which for a menu is exactly what you want, because the right move is to change what lives at that URL, not the URL itself.
Updating the menu without reprinting
The printed code encodes an address, not your prices. Keep yoursite.com/menu stable and edit the page behind it: new specials, winter menu, corrected prices — live at every table instantly, zero reprinting. This is the legitimate job people are sold dynamic codes for, and a URL you own does it for free, forever.
Web page or PDF? A mobile page wins on load time, text size and in-place updates. A PDF is acceptable if that is what you have — but upload the new file at the same address rather than linking a freshly named file, or the printed codes will point at the old menu.
Print sizes that actually scan
- Distance ÷ 10: the code’s width should be at least one tenth of the distance it is scanned from. Table tent at 25 cm → 2.5 cm code. Window poster at 2.5 m → 25 cm code.
- Floor: never below 2 × 2 cm — small codes with long menu URLs get dense, and dense plus small is what makes cameras hunt.
- Contrast and margin: dark code on a light background, with a white quiet zone around it at least the width of one code module. Skip the inverted white-on-black look — some scanners refuse it.
- Test the worst case: the laminated copy, in evening lighting, from a seated position, on an older phone. Ten seconds now beats a shift of “it won’t scan”.
Details worth getting right
Add a one-line fallback under the code — “or visit yoursite.com/menu” — for the customer whose camera will not cooperate. If you add a logo or brand colors to the code, re-test the scan afterwards; styling costs error-correction headroom. And keep a copy of the exact URL you encoded, so the next reprint matches the pages already on your tables.
One caveat: all of this assumes the code only shows the menu. If guests order or pay from the table, the URL has to carry the table number, so every table needs its own code and the job becomes a batch. The restaurant-tables guide covers that version.