QR code with logo on a table card that opens the menu
A QR code with logo scans reliably when the code uses the highest error correction level and the logo covers no more than about 20 percent of its area. Print one proof at full size and scan it with several phones before the full run.
What a QR code with logo actually is
A QR code with logo is an ordinary QR code with a small picture placed over its centre. The code still opens one thing: a web address. On a cafe table card, that address is your menu page. The logo adds nothing the phone reads. It only covers part of the pattern, and the code has to survive that.
It survives because of error correction. Every QR code carries spare data, so a phone can rebuild the address even when some squares are missing, smudged or hidden. The logo spends some of that spare data on purpose.
This post follows one printed object: a folded table tent card, 100 mm wide and 150 mm tall, standing on a cafe table, with a code that opens the menu.
The four levels of error correction
A QR code is made at one of four error correction levels. Each one sets how much of the code can be lost before the phone gives up.
Level L can rebuild about 7 percent. Level M can rebuild about 15 percent. Level Q can rebuild about 25 percent. Level H can rebuild about 30 percent.
For a code with a logo, use level H. Lower levels leave too little room. A logo that scans fine on a level M code in your design software may fail on a printed card with a coffee ring on it.
Level H has a cost. Spare data takes space, so the code needs more small squares, called modules, to hold the same address. More modules in the same 30 mm means each module is smaller. That is one reason to keep the address short, which comes up again below.
The 20 percent rule
Level H can lose about 30 percent. Do not let the logo take all of it. Keep the logo to about 20 percent of the code's area. Leave the other 10 percent for real wear: a scratch on the lamination, glare from a ceiling light, a crease where the card folds.
Work it out from the printed size. On the table card, the code is 30 mm by 30 mm. That is 900 square millimetres. Twenty percent is 180 square millimetres. A square logo of about 13 mm by 13 mm fits that. A round logo can be about 15 mm across.
Measure the logo with its padding, not just the mark. Put a plain white or light border around the logo, about one module wide, so the phone sees a clean edge between logo and pattern. That border counts toward the 20 percent.
Where the logo can and cannot go
Put the logo in the exact centre. The centre holds ordinary data that error correction can rebuild.
Keep it clear of three things. The three large squares in the corners tell the phone where the code is and which way up it sits. The smaller square set in from the bottom right corner helps the phone correct for a tilted card. The thin dotted lines of modules running between the corner squares set the grid. Cover any of these and the code may not scan at all, however high the error correction.
Leave the quiet zone alone too. That is the plain margin around the code, at least four modules wide. On a 30 mm code that is roughly 4 mm on every side. Do not let the cafe name, a border or a pattern from the card design run into it.
Size, distance and contrast on the table card
A simple rule sets the code size: the code should be at least one tenth of the scanning distance. A customer sitting at a table holds the phone about 0.3 m from a standing card, so 30 mm is enough. If the card sits at the far end of a long table, 1 m away, make the code 100 mm, or move the card closer.
Do not go below 20 mm for any code with a logo. Small modules plus a covered centre is where most failures start.
Keep the contrast plain. Use dark modules on a light background, such as black or deep brown on white or cream. Avoid a light code on a dark card. Avoid pale colours like light grey, yellow or pastel pink for the modules. To see how a colour and a module shape look before you buy, try them on the QR colours and shapes page.
Matte lamination scans better than gloss under cafe lights. Gloss throws a white patch of glare, and that glare acts like extra damage on top of the logo.
Keep the address short with a dynamic code
The longer the web address inside the code, the more modules it needs. A long menu address with tracking words can push a code to a dense grid, where each module is under 0.5 mm on a 30 mm print.
A dynamic code fixes this. The code opens a short address, and that address forwards to your menu page. The grid stays small and open, so the logo has more room around it. You can also re-point the code to a new menu page later without reprinting the cards. That matters when you have 40 tables and a new season's menu.
Test before print
Never send the full run to the printer after a screen check alone. A screen is bright, flat and sharp. A printed card is none of those.
Print one proof at full size, on the same card stock and with the same lamination as the final run. A 30 mm code must print at 30 mm. Check it with a ruler.
Scan the proof with at least four phones: an old one, a new one, a mid-range one, and one using the camera's built-in scanner rather than a separate app. Scan with each phone three ways: at 0.3 m, at arm's length, and at a slight angle from a seated position.
Scan in the room where the card will stand. Try the brightest table under the lamps and the dimmest corner in the evening.
Each scan should open the menu page in under two seconds. Check that it opens the right page, not a test page or last season's menu. If any phone hesitates, shrink the logo before you change anything else. Then print a new proof and scan again.
Keep one tested card aside. When you reorder, hold a card from the new batch next to it and scan both.
What to send the printer
Send the printer a vector file, not a screenshot, so the modules stay sharp at any size. Tell them the code must not be scaled, stretched or recoloured. Ask for a proof before the run, and do the scans above on it.
To put your logo on a code that opens your menu, order the restaurant menu QR code and we will send you the print-ready file.