Restaurant, Retail, Event: Three QR Setups That Actually Get Scanned

A coffee shop prints 150 table tents, and the code sits on a glossy card under a lamp. Customers tilt it, squint at it, and eventually give up. The code itself was fine. The setup around it was not.
Three things decide whether a QR code for business gets scanned: its size, its border, and where it points. Size follows the reading distance, and the border is genuinely part of the code. The page it opens will change eventually, so choose a code you can edit.
Here is how that works out in three real situations.
How big should a QR code for business be?
A code read at arm's length can be small, but a code read across a room cannot.
The popular guideline is 10 to 1: for every 10 cm of reading distance, add 1 cm to the width. It comes from Nielsen Norman Group's QR usability guidelines, published by Tanner Kohler in 2024. That makes it a design rule of thumb, not a standard, and it did not originate with the inventors of the QR code.
Two things about it are worth knowing.
First, there is no official minimum size anywhere. ISO/IEC 18004 is the QR standard, and it defines modules — the little squares that make up the pattern — rather than millimetres. It specifies no physical dimensions at all.
Second, the guideline ignores how many modules the code contains. A longer web address needs more modules, and more modules inside the same width makes every module smaller. A dense code therefore fails sooner than the rule suggests.

| Where it goes | Read from | Print it about |
|---|---|---|
| Table tent | 30 cm | 4–5 cm wide |
| Menu or flyer | 30 cm | 3–4 cm wide |
| Indoor banner or poster | 2 m | 20–25 cm wide |
| Shop window | 3 m | 30–40 cm wide |
Those widths cover the code itself, and the clear border sits outside them. Our QR code size guide carries the longer table.
What is the clear border for?
Every code needs empty space around it. Denso Wave invented the QR code, and its FAQ is blunt: you need white space worth 4 modules on every side.
That space is how the scanner locates the code in the first place. The camera sweeps across the image for the three large corner squares, measuring runs of dark and light. Press text or a border rule against the edge and that measurement collapses.
The code is then never located at all. Error correction belongs to a later stage, so raising the correction level cannot rescue a cramped layout.
Plan the space, not just the code. A 4 cm code needs a clear footprint about 5.1 cm across, border included.
Setup one: restaurant tables and menus
Where it goes. A table tent standing upright on the table, or the bottom corner of a printed menu. Keep it off the glass tabletop, and keep it flat.
How big. 4–5 cm on a table tent, or 3–4 cm on a menu. The reading distance is short, but customers lean in from awkward angles, so go above the 10 to 1 guideline.
What it points at. The menu page. Prices move, dishes change with the season, and popular items sell out. Reprinting 150 cards every time is not realistic, so the code has to be the editable kind.
What goes wrong. Glare and grease.
Glossy lamination, varnish and plastic menu sleeves throw a bright reflection under a lamp. The scanner then sees a blown-out patch where modules should be. Matte lamination is the cheapest fix in this entire article.
Grease, creases and a scuffed corner consume the code's spare capacity, so replace the tatty ones.
Setup two: retail shelves, windows and packs
A single shop contains three reading distances at once, so size each of them separately.
Shelf talkers are read at about 30 cm, exactly like a menu, so 3–4 cm is enough. Position the code where a hand can reach it, not on the top shelf.
Window displays are the difficult one. Customers scan them from about 3 m, through glass, at an angle, in daylight. Print 30–40 cm wide, and mount the code at eye height rather than at the top of the glass. Glass reflects, so matte stock helps, and so does an angle away from the sun.
Packaging carries a trap that phones hide from you completely. Many till scanners and warehouse readers illuminate with red or infrared light. Red, orange and yellow reflect that light, so those scanners read them as white. Red ink on white card is therefore invisible at the till, even though your phone reads it perfectly.
Black on white remains the safe default. Contrast here is measured as a reflectance difference under ISO/IEC 15415, not the ratio designers use for web text.
Keep packs flat as well. A code wrapped around a can or a bottle distorts the grid the scanner tries to sample.
Setup three: event badges, banners and slides
Badges are read at conversation distance, about 30 cm, so 3–4 cm works. A badge is small, and the code will compete with your logo for space. Give the code its border, and shrink the logo instead.
Banners are read across a room, and at 2 m that means 20–25 cm wide. Check that people can genuinely reach 2 m. A banner behind a booth counter is really a 4 m code, so size it accordingly.
Slides are the least forgiving surface of all. The back row is distant, the talk moves on, and the projector may be badly lit. Four things help:
- Leave the slide up for a while, because people are still unlocking a phone.
- Run the screen at full brightness, since a dim screen destroys the contrast.
- Put the code on a plain background, with generous room around it.
- Use a vector or high-resolution file, because a stretched small image blurs the modules.
What goes wrong. The event finishes and the destination dies. Repoint the code at something useful, rather than leaving a dead one inside every slide deck. Our list of reasons a QR code will not scan covers the usual causes in order.
Does a shorter link really scan better?
Yes, and the reason has nothing to do with looking tidier.
A QR code stores its data in a grid of modules, running from 21 by 21 up to 177 by 177. More characters simply require a bigger grid.
Take a 22-character short link: at the highest error correction level it fits a 29 by 29 grid. Now take a 100-character campaign address, the kind carrying tracking parameters on the end. At the same correction level that needs 57 by 57.
Print both of them 30 mm wide, and here is what it costs:
| Short link, 22 characters | Campaign URL, 100 characters | |
|---|---|---|
| Grid | 29 × 29 | 57 × 57 |
| Module size at 30 mm | 1.03 mm | 0.53 mm |
Every module ends up roughly half as wide, and about a quarter of the area. Your camera has to resolve those modules individually. That is the genuine reason to shorten a link before it goes to print.
One more trap: higher error correction is not free. Level H needs a bigger grid than level M for the same address, so the modules shrink at an identical printed width. Denso Wave says level M is the level most people select. Reserve level H for codes carrying a logo, or for rough surfaces.
The honest trade-off with dynamic codes
A dynamic QR code does not contain your web address. It contains a short redirect, and a server decides where that redirect currently points.
That mechanism is what makes it editable. It is also the only way anybody can count a scan.
Now the part most guides quietly leave out. A dynamic code creates a permanent dependency on the company behind it. If that company shuts down, or your account lapses, every printed code stops working immediately. You cannot repair it from your side.
A static code has no third party in the path. Your address sits inside the pattern, so nothing can lapse. But it can never be edited, and it gives you no scan data whatsoever. None. Any promise of scan numbers is describing a dynamic code.

Worth stating plainly: a QR code cannot expire. There is no expiry field anywhere in the encoding. Scan a code printed in 2005 today, and it still decodes to exactly the same text. What dies is the destination, the redirect, or the account behind it.
You can reduce the dependency. Put the redirect on a domain you own, such as go.yourcafe.com. Most shorteners charge for that, while clik.so includes one custom domain on its free plan, on a subdomain exactly like that one. Change provider later and you keep the domain, although you would still have to rebuild the links.
Our comparison of dynamic vs static QR codes works through the decision in more detail.
A last check before you print
Print one at final size and tape it where it will really live. Then scan it with an older phone and a newer one, in the room's actual lighting.

FAQ
What size should a QR code be on a menu?
About 3–4 cm wide, plus the clear border around it. Customers hold a menu, so the reading distance stays short and steady. A table tent is read at awkward angles and gets creased, so go a little bigger, around 4–5 cm. These figures are rules of thumb, not standards.
Do QR codes expire?
No. A QR code contains no expiry field, no counter and no clock, so it decodes to identical text forever. What expires is the destination page, the redirect behind a dynamic code, or your account with the QR provider. That final possibility is why the provider matters.
Can I track scans on a printed QR code?
Only if the code is dynamic. A static code sends the phone straight to your page, so nobody counts anything at all. A dynamic code travels through a redirect first, and that redirect can record the scan. Any tool promising scan numbers is giving you a dynamic code.
Can I change where a printed QR code goes?
Only if it was dynamic when you created it. A static code has the address baked into the pattern, so a change means a new code and a reprint. Decide this before printing anything. For menus, prices and events, dynamic is almost always the correct answer.
Want to try this yourself?
clik.so's free plan includes one custom domain, the full QR customizer, and 2,000 tracked clicks a month, with no card required. If you only want a code to experiment with, the QR code generator is free and needs no account.

