QR codes in restaurants, done properly
The menu code is the most-scanned code in the world and the most poorly executed. The fixes are cheap.
By ShortFreeURL Team · 18 August 2026
Never print a static menu code
Prices change, dishes come off, seasonal menus rotate. A static code encodes the destination permanently, so every change means reprinting every table tent. A dynamic code encodes a short link, and the daily specials become a destination edit. If you take one thing from this article, it is that the physical code should never need to change again.
The destination must be a page, not a PDF
A PDF menu on a phone means pinching, zooming and scrolling sideways in dim light while a server waits. A simple mobile page with headings and prices loads faster, is readable at arm's length, and can be updated in a minute. If you must serve a PDF, at least make it a single portrait page sized for a phone.
Optimise for a bad connection
Restaurants have thick walls, basements and saturated cellular coverage at peak times. Keep the menu page under a few hundred kilobytes, avoid large hero images, and make sure the text renders before any fonts or scripts finish loading. A menu that needs three seconds is a menu the table gives up on.
Placement and size on the table
A table tent code is read from around forty centimetres, so four centimetres across is comfortable. Place it where a wine glass will not sit on it. Add a line of text — "Scan for our menu" — and put the typed short link underneath for guests whose camera app is uncooperative or whose phone is dead.
One code per zone tells you something
The terrace, the bar and the dining room can each have their own link. Comparing scan volumes shows where people actually order and when, and it reveals a table tent that has gone missing from a section. The codes look identical to guests and cost nothing extra to create.
Always keep some physical menus
A meaningful share of guests cannot or will not scan: no data, a flat battery, poor eyesight, or simple preference. Codes are a supplement to printed menus, not a replacement, and the hospitality cost of insisting otherwise is larger than the printing saved.
Use the same infrastructure for more than the menu
Once you have dynamic codes on tables, the same mechanism handles a feedback form after service, a loyalty signup, wifi credentials and a booking page. Give each its own code and its own link so you can see which ones people use, and retire the ones nobody scans.

