How to Put a QR Code on a Flyer People Actually Scan
A coffee shop near me printed 500 flyers for their new online ordering page. Nice flyer — good photo, clear headline, brand colors. In the bottom corner sat a QR code about the size of a postage stamp, printed white-on-black over a picture of a latte.
Scans in the first week: four. Two of them were the owner testing it.
The design wasn't the problem. The QR code was, and it failed for three separate reasons that are all fixable in about ninety seconds — if you know what they are before you send the file to the printer. A QR code on a flyer is the one element that either works or doesn't, with no middle ground. Text that's slightly too small still gets read by someone squinting. A code that's slightly too small just fails.
Here's what actually governs whether a printed code scans.
How big should a QR code be on a flyer?
There's one number to remember: divide the scanning distance by 10.
That's the minimum width of the code itself. Someone holding a flyer reads it at roughly 30 cm, so the code needs to be at least 3 cm wide (about 1.2 inches). That's much bigger than most people instinctively draw it — a 3 cm square on an A5 flyer is a noticeable object, not a footnote.
| Where it lives | Typical scan distance | Minimum QR width |
|---|---|---|
| Flyer or handout, held | 30 cm | 3 cm |
| Table tent, counter card | 60 cm | 6 cm |
| Window sticker, A4 poster | 1.5 m | 15 cm |
| A2 poster in a corridor | 3 m | 30 cm |
| Tarpaulin, event banner | 10 m | 100 cm |
The distance-over-ten rule is a floor, not a target. Go 20–30% bigger than the number if you can afford the space, because real scanning happens in bad light, at an angle, by someone walking past — not in the conditions you tested it in at your desk.
Two things quietly shrink your effective size. First, a long URL makes a denser code — a 90-character tracking link packs far more modules into the same square than brewlane.co/order, so each module ends up physically smaller and harder for a camera to resolve. Shorten the link before you generate the code. Second, low print resolution blurs the module edges: export as SVG if your generator offers it, or a PNG at 300 DPI minimum for the final printed size.
The white border isn't optional
Every QR code needs a quiet zone: a clear margin of at least four modules on all four sides. In practice, leave a blank border roughly 10% of the code's width — so a 3 cm code sits inside a 3.6 cm clear square.
The scanner uses that empty margin to find where the code starts. Crowd it with a headline, a photo edge, or a decorative border, and the code either takes several seconds to lock on or never does. Most generators include the quiet zone in the exported file, but a designer who crops "the ugly white space" out is a common way this breaks. Don't crop it.
This is where the coffee shop's flyer lost first: the code was tucked into a corner with the flyer's edge on two sides and a photo on the third.
Dark code on a light background. Always.
Two rules that get broken constantly because inverted codes look better:
Never invert it. A white code on a dark background is technically decodable by some modern phone cameras, and it will scan on your iPhone at your desk, which is exactly why it ships. Plenty of readers — older Android cameras, in-app scanners in banking and loyalty apps, cheap POS scanners — still expect dark modules on a light field. You do not want to find out which camp your customers are in after paying for 500 prints.
Never put it over a photo. Even a low-contrast, tastefully blurred photo. The scanner needs a hard threshold between light and dark, and a photo gives it a moving target. If your flyer is a full-bleed image, put the code on a solid white panel with rounded corners sitting on top of the photo. That panel reads as intentional design, not as a patch.
If you want the code on-brand, tint the dark modules to your brand color instead — a deep navy or a strong blue works fine as long as it stays genuinely dark against white. Light blue modules on white will fail. The same contrast logic applies to type, which I've written about in how to put readable text over a photo.
Tell people what they get
A bare QR code asks for a leap of faith. Nobody points a camera at an unlabeled square in 2026 — they've been trained by parking meters and sketchy stickers.
Put one short line directly under the code saying what happens when they scan. Not "Scan me." Something specific:
- Scan to order ahead
- Scan for the full menu
- Scan for 20% off your first order
Add the plain URL in small type next to it as well. It gives people a fallback, and it makes the code look legitimate rather than like something slapped on by a stranger.
If you're putting a logo in the middle of the code, generate it at error correction level H — that level tolerates about 30% damage, which is what covering the center amounts to. At level L or M, a center logo will break the code outright.
Where it goes on the flyer
Bottom-right, in the lower third, is the default for a reason: it's where the eye lands last after the headline and the offer, and it's where a thumb naturally isn't when someone holds a handout.
Two mistakes to avoid. Don't push it tight against the trim edge — printing cuts drift by a couple of millimetres and can shave the quiet zone off, so keep at least 5 mm of clearance. And don't let it compete with your headline; the code is the action, not the hook. The hook sells, then the code collects. Same hierarchy logic as any other flyer element — see how to make a flyer with AI for the rest of that layout.
Building one in Ridvay Studio
Here's the coffee shop's flyer, rebuilt with the code treated as a real design element instead of an afterthought. Paste this into Studio:
A5 flyer for Brew Lane Coffee announcing online ordering. Dark navy background with a warm coffee photo at the top. Big bold headline "Order ahead. Skip the line." One short line of body copy. A white rounded panel in the bottom right, 3 cm square, reserved for a QR code, with the caption "Scan to order ahead" under it and the URL brewlane.co/order in small type beside it.
What comes back is an editable design — the headline, the panel, the caption and the small print are all separate layers with real font, color and position values. Not a flat image you have to regenerate to change a word.
Then make these four edits, each one straight out of the rules above:
- Drop your QR PNG into the white panel as an image element, and resize the panel so the code is at least 3 cm wide at print size with white space still visible around all four sides. That visible white margin is the quiet zone.
- Click the panel and nudge it 5 mm in from both edges. Free clearance from the printer's trim drift.
- Click the caption and shrink it until it's clearly subordinate to the headline — the code is the action, not the hook.
- Apply your brand kit so the headline font and the navy pick up your palette automatically, and leave the panel pure white. Every other element can go on-brand; the code's background can't.
Open this flyer prompt in Ridvay Studio →
Once the A5 works, use one-click resize to push the same layout to a table tent and a story-sized post — but recheck the code size at each one, because the scan distance changes even though the design doesn't. A code that's fine at 3 cm in the hand needs 6 cm on a table tent.
The three-phone test
Before you send anything to print, do this. It takes two minutes and catches almost everything.
Print the flyer at actual size on a normal office printer. Not a screenshot — a print, because your monitor is backlit and a phone camera finds a glowing screen far easier than ink on paper. Then scan it with three different phones: one recent iPhone, one Android that isn't new, and one using the camera's built-in scanner rather than a dedicated app. Normal ceiling light, sheet held at a slight angle.
If any of the three hesitates for more than a second, make the code bigger. That hesitation becomes a failure the moment someone tries it outdoors, in a hurry, at dusk.
The coffee shop reprinted with a 3.5 cm code on a white panel, bottom right, captioned "Scan to order ahead," with a shortened link. Same photo, same headline, same paper. The code went from decoration to a thing people used.
Try it yourself: generate the flyer in Ridvay Studio and you'll have an editable, print-ready layout with the panel already in the right place. Free, and every layer stays yours to change.