Over the past year I've eaten at maybe 60 restaurants that use QR code menus. I started keeping a note on my phone: "did the QR code work or not?"
Out of 112 scans, 47 failed on the first try. That's a 42% failure rate. And these are businesses whose revenue depends on diners being able to see the menu.
The problem isn't QR codes. It's how people make them. Here's what I found and what I'd do differently.
The 5 Most Common QR Code Mistakes
1. Printed too small
The worst offender: a code printed on a business card at 1.5 cm × 1.5 cm. My phone took 15 seconds to scan it and I had to hold it at a weird angle.
Rule: For any printed QR code, 2 cm × 2 cm minimum. For anything that gets handled (menus, packaging), 3 cm × 3 cm.
2. Too low contrast
Dark blue code on a light blue background — looks nice on a designer's screen, fails to scan on a phone.
Rule: Black on white. Highest contrast. If you must use color, keep it very dark on very light.
3. Placed on a curved or reflective surface
Table tents with QR codes on slightly curved plastic. Reflective menus. These fail because the scanner can't get a clean view.
Rule: Flat surfaces only. If you need a tent, make the QR surface flat.
4. Surrounded by other QR codes
One restaurant had 4 QR codes side by side — menu, Wi-Fi, Instagram, review. My phone sometimes scanned the wrong one.
Rule: Give each QR code at least 2 cm of whitespace around it.
5. The URL doesn't work
Restaurants that printed a QR pointing to old-domain.com/menu-2021.pdf and never updated it. That's a dead link, and customers just leave.
Rule: Use a short URL that redirects. Then you can change the destination later without reprinting.
What I Do When Making QR Codes
For the restaurant I helped last month, here's the process:
- Generate the QR with our QR code generator
- Choose size 500 px for download (highest quality)
- Set error correction to H (30%) — for print that gets handled
- Download the PNG
- Place the QR code into the menu design with at least 3 cm whitespace
- Print a test copy and scan it with 3 different phones
- Only then send to print
The 3-phone test catches the majority of problems before mass printing.
Why Error Correction Level Matters
QR codes can still work even if part of the code is damaged. The "error correction level" determines how much damage they can survive:
| Level | Damage Tolerance | When to Use |
|---|---|---|
| L | ~7% | Digital only |
| M | ~15% | General use (default) |
| Q | ~25% | Paper that gets some handling |
| H | ~30% | Anything in a restaurant, outdoors, or on packaging |
For print, always use H. There's no downside except the code becomes slightly denser (but not meaningfully harder to scan).
The URL Behind the QR Code Matters More Than the QR Code
Here's the thing most people miss: the QR code is just a picture. The URL behind it determines everything.
Bad setup:
https://restaurant-name.com/PDFs/menu-print-A4-final-v3-2026.pdf
Problems: long URL, includes a PDF (bad mobile experience), version number in the URL (will break eventually).
Better setup:
https://rst.co/menu
Short, permanent, redirects to wherever you want. When you update the menu, you change the redirect target. No reprinting needed.
Generate short URLs with our URL shortener — free, permanent, includes click tracking.
How to Test QR Codes Before Printing
My checklist:
- Print one copy on the actual material (paper, cardboard, plastic)
- Scan with iPhone — check
- Scan with Android — check
- Scan with an older phone (if you have one) — check
- Scan from 30 cm away — check
- Scan from 50 cm away — check
- Scan in low light — check
If all 7 pass, print the batch. If any fail, adjust.
What Restaurants Should Actually Do
QR codes for menus work. But they need three things:
- A real mobile-friendly menu page. Not a PDF. Not a slideshow. Just a clean HTML page with the menu text.
- A short URL that redirects. So you can update what it points to.
- A well-made QR code. High error correction, high contrast, right size.
Skip any of the three and customers will give up and leave.
Generate One Right Now
If you need a QR code for your business, use our free QR code generator:
- No watermark
- No sign-up
- No expiration
- Generated in your browser (nothing uploaded)
Pick error correction level H if you're printing. Pick 500 px download size. Test before printing. That's the whole process.