QR code menus that guests actually use
24 July 2026 · 6 min read

A QR menu fails for boring reasons: the code is too small, it sits behind the salt shaker, or it points to a 12 MB PDF that never loads on 4G. Fix those three things and adoption jumps.
Print it big enough
The rule of thumb is that the printed code should be at least one tenth of the scanning distance. A table tent read from 30 cm needs roughly 3 cm of code; a window sticker read from 2 m needs about 20 cm.
Always export at high resolution. A 1024 px PNG is fine for a table tent, but posters and window vinyl should use a vector file or a 300 DPI print export so the edges stay razor sharp.
Web menu beats a PDF
PDFs force guests to pinch and zoom, and they are heavy on mobile data. A simple mobile page with sections and prices loads instantly and can be updated in seconds.
If a PDF is the only thing you have, keep it under 2 MB and make it a dynamic QR code so you can swap the file later without touching the printed material.
Make seasonal changes free
Prices move, dishes rotate, the summer terrace menu is different. With a dynamic code you edit the destination once and every table tent in the room follows. Nothing is reprinted, nothing expires.
Add a short line under the code — 'Scan for our menu' — and guests scan without asking. It sounds trivial; it measurably increases scans.
Frequently asked questions
How big should a QR code menu be printed?
Roughly one tenth of the scanning distance. A table tent read from 30 cm needs about 3 cm of code; a window sticker read from 2 m needs about 20 cm.
Should a QR menu link to a PDF or a web page?
A mobile web page. PDFs are heavy on mobile data and force guests to pinch and zoom. If you must use a PDF, keep it under 2 MB and make the code dynamic.
How do I change prices without reprinting the QR menu?
Use a dynamic QR code. You edit the destination once and every table tent in the room points to the new menu instantly.
Make a free QR code in seconds
No sign-up for PNG, no watermark, and redirects that never expire.
Open the generator