Quick Answer

QR code print design comes down to three things. Size the code to at least a tenth of the scanning distance, keep a four-module clear margin around it, and print it dark on light with strong contrast. Place it flat, between waist and eye height, with a short label telling people what they get.

Designing a QR code for print comes down to size, contrast, and placement, in that order. Size it to roughly a tenth of the distance people will scan from, leave a clear margin of four modules on every side, print it dark on a light background, and put it somewhere flat and reachable with a line of text explaining what it does. Get those four right and almost any modern phone camera will read it on the first try. Get any one of them wrong and you've printed 5,000 flyers with a code nobody can scan. Here's the detail behind each rule.

What Makes a Printed QR Code Actually Scan?

A phone camera doesn't read a QR code the way you read text. It looks for the three big squares in the corners, works out the orientation and the grid, then reads the light and dark modules. Anything that blurs the edges between those modules, or hides the corner squares, breaks the whole process.

That's why the format is standardised. The QR code is defined by ISO/IEC 18004, now in its fourth edition published in August 2024, which sets out the symbol formats, dimensional characteristics, error correction rules, and production quality requirements. One bit of housekeeping if you check your sources: ISO now lists that 2024 edition as an International Standard to be revised, and a working draft, ISO/IEC WD 18004, is already in development. Nothing in this guide changes because of that. The symbol format, the finder patterns and the error correction levels are the settled parts of the spec and have been for years. But if you're writing internal print standards that cite a specific edition, pin the edition number rather than assuming 2024 stays current forever. Codes run from Version 1 at 21 by 21 modules up to Version 40 at 177 by 177 modules, according to Denso Wave, the Japanese company that invented the format in 1994 and still publishes the reference documentation.

The practical takeaway from all that: a code holding more data has more modules, and more modules at the same physical size means each one is smaller. A short link prints small and scans fine. A 200-character URL crammed into the same square becomes a grey smudge. Shorten your links before you generate anything.

How Big Should a Printed QR Code Be?

Use the 10 to 1 rule. Whatever distance people will scan from, the code should be at least a tenth of it. Someone scanning from 30 cm needs a 3 cm code. Someone scanning a shop window from 3 metres away needs a 30 cm code. It scales cleanly and it's easy to remember on a deadline.

Here's what that works out to in practice:

Where it goesScan distanceMinimum code size
Business card15 to 20 cm1.5 to 2 cm
Flyer or leaflet20 to 30 cm2 to 3 cm
Menu or table tent30 to 40 cm3 to 4 cm
Product packaging20 to 30 cm2 to 3 cm
A4 or A3 poster50 cm to 1 m5 to 10 cm
Shop window or banner2 to 3 m20 to 30 cm
Billboard10 m or more1 m or more

What about the absolute floor? Denso Wave's own technical FAQ gives two different numbers, and the gap between them is the whole point. On a common laser printer, it says, the minimum printable module size is about 0.17 mm, which makes a Version 1 code roughly 3.57 mm square. Push to the limit of what printers and readers can currently manage and the smallest module drops to about 0.03 mm. Both are equipment numbers, not audience numbers. They assume precision printing and a dedicated scanner rather than someone's three-year-old phone in a dim car park. For anything a member of the public will point a phone at, treat 2 cm as your real minimum and go up from there. Our QR code size guide breaks the measurements down further by medium.

Advertisement

Does the Length of Your URL Change How Big the Code Must Be?

Yes, and this is the lever most designers never touch. The link you encode decides how many modules the symbol needs. The module count decides how small each black square gets at your chosen printed width. So the URL you paste in is a print decision, not just a marketing one.

Here's the arithmetic, using the version numbers from the section above. A short link might fit inside Version 3, a 29 by 29 grid. Take that same link, bolt on a campaign source, medium, and name, and you can easily land in Version 7 at 45 by 45. Print both at exactly the same width and each module in the second one is about 64 percent the width of a module in the first. Same paper, same ink, same distance, much harder scan. Nothing on the page changed except the string nobody looked at.

That's usually how this gets discovered, incidentally. The artwork is signed off, the code is placed at a size that looked fine in the mockup, and then somebody swaps in the real tracking URL a day before it goes to print.

It's worth knowing where the real ceiling sits too. Denso Wave puts the theoretical maximum at roughly 3 KB, at Version 40 with error correction level L. But the same FAQ notes that for reading with a mobile phone, about 271 bytes is the practical figure. The limit that matters to you is the phone's, not the standard's, and it's an order of magnitude below the headline number.

Four things actually help, roughly in order of how much they buy you.

  • Encode a short redirect, not the campaign URL. Point the code at a tidy link on your own domain and attach the tracking parameters server side when it redirects. You get the same analytics with a fraction of the characters. This is the single biggest win available and it costs nothing.
  • Consider uppercase. QR codes have an alphanumeric mode covering digits, uppercase letters and a handful of symbols, and it packs characters tighter than the byte mode a lowercase string forces. Domains are case insensitive, so uppercasing that part is safe. Paths usually aren't, so only uppercase the path if you've checked your server treats it the same way.
  • Watch what error correction costs you. Higher levels eat capacity, and level H spends roughly 30 percent of it on redundancy, which can push you up a version or two on its own. If you're putting a logo in the middle you need that headroom, so budget for it rather than discovering it late. The section on logos below covers the trade.
  • For product packaging, use a standard rather than inventing a URL. GS1 Digital Link defines a structured way to express product identifiers as web URIs, and GS1 publishes a separate compression standard for shortening them. If you're heading toward the 2027 transition covered later on, this is the route that keeps the symbol small.

And test with the final string, at the final printed size, on the cheapest phone you can find. A code generated from a placeholder URL tells you nothing about the one that ships.

Why Does the Quiet Zone Matter So Much?

The quiet zone is the blank margin around the code, and it's the single most common thing designers get wrong. ISO/IEC 18004 requires four modules of clear space on all four sides. A module is one of the little squares in the pattern, so on a code that's 25 modules across, you're looking at a margin roughly a sixth of the code's width on each edge. Denso Wave states the same requirement plainly: a white space worth four modules is needed around the code if you actually want to use it.

Scanners use that empty band to work out where the symbol ends. Crowd it and the camera can't find the boundary. What kills it in real layouts:

  • Cropping the margin to save space. The code looks fine to you and reads as noise to a scanner.
  • Running text or a border right up to the edge. Even a thin decorative frame can sit inside the quiet zone.
  • Placing the code over a busy photo or pattern. The background bleeds into the margin.
  • Trimming at the print stage. Bleed and guillotine tolerance can shave millimetres off a code sitting near the page edge.

Easiest fix: generate the code with its margin already built in, drop it onto a plain white or very light rectangle, and never crop that rectangle.

What Contrast and Colours Work in Print?

Dark modules on a light background. Always that way round, never inverted. Denso Wave recommends printing black on white, and notes that scanner readability depends on the difference in light reflection between the modules and the background. Some combinations simply don't work at all: a red code on a white background can't be read, because the scanner's red light source sees too little difference between the two.

If you want brand colour in there, these hold up in print:

  • Safe. Black, dark navy, deep charcoal, forest green, or dark maroon on white, cream, or a very pale tint.
  • Risky. Mid-tone colours like teal or medium grey on white. They sometimes scan, sometimes don't, depending on lighting.
  • Avoid. Red or orange codes, light-on-dark inversions, gradients across the modules, and any pastel-on-pastel pairing.

For a numeric target, borrow from accessibility. The W3C's WCAG 2.2 contrast minimum asks for a ratio of at least 4.5 to 1 between text and background for normal body text. It was written for screens, not scanners, but it's a useful floor: if your code and background wouldn't pass as readable text, they won't reliably pass as a scannable code either. Aim well above 4.5 to 1 and you have margin for cheap paper and bad lighting.

One more lever. Error correction level buys you tolerance for damage and print imperfection. Denso Wave's error correction documentation lists four levels: L recovers about 7 percent of the code, M about 15 percent, Q about 25 percent, and H about 30 percent. Level M is the usual default. Bump to Q or H if you're adding a logo in the middle, printing on fabric or a rough surface, or expecting the code to get scuffed. The trade-off is that higher correction adds modules, so the code needs to be printed larger.

Will Your Design Work for Colour Blind Readers?

The code itself almost certainly will. The design around it is where this goes wrong, and it goes wrong in a way you will never hear about.

Start with the reassuring half. Scanners work off the difference in reflectance between dark and light modules, not hue. That's why the contrast advice above is framed in terms of light and dark rather than specific colours. A palette that's hostile to colour blind readers can still produce a code that every phone reads perfectly, because the phone was never looking at the colour.

So the machine is fine. The human isn't necessarily.

Colour vision deficiency is more common than most designers assume, and the numbers vary a lot by region, which matters if you're printing for more than one market. A 2025 review by Ali Almustanyir in Healthcare puts red-green deficiency at roughly 8 percent of males and 0.5 percent of females in Northern European populations, with Asian and African populations showing lower rates. A separate 2025 meta-analysis pooling studies from 1932 to 2022 put the global figure at about 2.59 percent overall, 4.38 percent in males against 0.64 percent in females.

Red-green types account for around 95 percent of congenital cases. So when people say colour blind, this is nearly always what they mean, and it's the specific pairing to design around.

Here's the part that should change how you think about it. That same review cites a study where only 19.2 percent of students with the condition knew they had it. Most people affected have never been diagnosed. They aren't going to email you saying your leaflet was unreadable. They'll just not scan it, and you'll record that as ordinary indifference.

Four things to check on the page

Never distinguish multiple codes by colour alone. If you've got a code per menu section and you've made one red and one green, you've built the single worst case. The multiple-codes section further down this guide already recommends varying the labels rather than the codes, and this is another reason that advice holds. Text does the distinguishing.

Don't put the instruction in the colour. "Scan the orange code for the wine list" is unusable if orange and its neighbours are indistinguishable to the reader. Position and wording carry that job better anyway. "Scan the code below the wine list heading" works for everybody.

Avoid red and green as a functional pair. Not just on the code, but on any status marker near it. Red for sold out and green for available, printed side by side with no text or shape difference, fails for a meaningful slice of your audience.

Check the call to action, not just the code. Coloured CTA text on a coloured background is where most of these failures actually live. If the code passes your contrast check and the sentence telling people to scan it doesn't, you've solved the wrong problem.

None of this requires giving up colour. It requires making sure colour is never the only thing carrying meaning. Add a shape, a label, a position, or a border, and the design works for everybody without looking any different to readers who never noticed the issue.

Can Someone Who Can't See the Code Use It?

Not as your layout currently stands, almost certainly. Everything above about contrast and colour assumes the reader can see that a code is there. Plenty of people can't, and for them the problem isn't reading the code. It's finding out one exists.

The scale is bigger than most designers assume. The World Health Organization puts the number of people living with some form of vision impairment at at least 2.2 billion, and notes that most of them are over 50. That last part matters for print work, because the audience for a menu, a leaflet or a utility bill skews older than the audience for anything you launch on a phone.

Notice that the usual fallback doesn't help here. Printing the destination URL underneath, which this guide recommends anyway, rescues someone whose camera won't cooperate. It does nothing for someone who can't read the page at all.

What does work is giving the code a physical presence:

  • Make it findable by hand. A raised frame, an embossed border, a spot varnish with texture, or a trimmed corner all give a fingertip something to land on. The specific technique matters far less than there being any non-visual cue at all.
  • Put it where it's predictable. Bottom right of every page in a series beats the perfect spot on each one individually. Consistency is what lets someone find it a second time without help.
  • Follow signage conventions when it's on a wall. The US Access Board's ADA Standards set out requirements for tactile characters and braille on signs, including raised characters and mounting heights. Those rules were written for signage rather than marketing codes, but if your code lives on a permanent sign, matching the conventions people already know how to search is free.
  • Consider a tap as well as a scan. GS1's specification is carrier agnostic: the same web address can sit in a QR code, a Data Matrix, or an NFC tag. An NFC chip behind the label is found by moving a phone across a surface rather than by aiming a camera at a target, which is a meaningfully easier action without sight.

Two honest limits. Braille reaches a minority of blind adults rather than most of them, so a tactile cue anybody can feel is worth more than a braille label specifically. And NFC needs a phone that supports it and has it switched on, so it supplements the printed code rather than replacing it.

The cheapest version of all this costs nothing. Decide where codes go across a whole print run and keep them there. You've solved part of the problem before you've spent anything on embossing.

Yes, and it's the most common way people break their own code. The rule everyone repeats is that error correction level H lets you cover 30 percent, so a logo is fine. That's a misreading of the spec, and it's worth understanding why before you hand artwork to a printer.

Error correction works by adding a Reed-Solomon code to your data, the same maths used on music CDs. Denso Wave's error correction documentation is precise about what the percentage measures: the rate is expressed as a ratio of the total codewords, a codeword being a unit that makes up the data area. It is not 30 percent of the picture.

That distinction matters because large parts of a QR code aren't data at all. The three big squares in the corners are finder patterns, and the scanner's first job is to locate them to work out where the code is, which way up it sits, and what angle you're holding the phone at. They carry no error-correctable data. Cover one and there's no correction budget in the world that helps, because decoding never starts. The same goes for the timing patterns running between them and the format information beside them.

So the practical rules are narrower than the headline number suggests:

  • Centre only. The middle of the code is data, and data is what error correction can rebuild. Corners are not negotiable.
  • Cap it around 20 to 25 percent of the area. Below the theoretical ceiling, because print gives you no margin back and you want headroom for scuffs and bad lighting.
  • Use level H. Denso Wave says Q or H suits a factory environment where codes get dirty. A logo is permanent dirt you've applied on purpose, so treat it the same way.
  • Keep a clear edge around the logo. A thin white ring between the logo and the surrounding modules helps the scanner separate them rather than reading a smear.
  • Solid shapes beat detailed ones. A simple mark reproduces cleanly at 15 mm. A logo with fine type in it turns to mush and eats more modules than you planned.

There's a cost to all this that connects straight back to sizing. Higher error correction means more codewords, more codewords means more modules, and more modules at the same physical size means each one gets smaller. So a logo plus level H makes a code that needs to be printed larger than the plain version, not the same size. If you designed the layout around a 2 cm plain code and then added a logo, you've quietly gone backwards.

Order of operations that avoids the whole problem: shorten your URL first, then set error correction to H, then add the logo, then print one at final size on the real stock and scan it with the oldest phone in the office. If it hesitates even slightly, shrink the logo before you touch anything else.

Where Should You Place the Code?

Somewhere flat, reachable, and obvious. Those three words cover most of it, but the details matter more than people expect.

  • Height. On a wall poster or standee, put the code between about 1.2 and 1.4 metres from the floor. For a useful benchmark, the US Access Board's ADA Accessibility Standards set the unobstructed reach range for operable parts at 15 inches (380 mm) minimum and 48 inches (1220 mm) maximum above the floor. Those rules cover controls and dispensers rather than posters, and nobody has to touch a QR code to scan it. But 1220 mm is a sensible ceiling whenever someone might need to get close, and anything above roughly 1.5 metres starts forcing seated users into an awkward upward camera angle. A code at ankle height or above head height just gets ignored.
  • Flat surfaces only. Curved bottles, folded leaflets, spines, seams, and corrugated edges all distort the grid. If it has to go on a curve, make it smaller relative to the curve radius and test it on the real object.
  • Clear of obstructions. Check what covers it in real life: a shelf lip, a hand holding a menu, a stack of other flyers, a window frame.
  • Always labelled. A bare code is a question mark. "Scan for the menu" or "Scan to join the WiFi" measurably lifts scan rates because people know what they're getting.
  • Consider the lighting. Glossy laminate under a spotlight creates glare that blinds the camera. Matt finishes scan better in bright retail lighting.

One thing that gets forgotten on outdoor and transit placements: if people can't stop and stand still, the code needs to be much bigger than the distance rule suggests. A code on a bus shelter that commuters walk past has maybe two seconds of attention. Our QR code marketing guide covers the campaign side, and QR code best practices covers the general rules across media.

What If You Need More Than One Code on a Page?

Space them properly and label them, because a phone camera doesn't know which one you meant. This comes up constantly on menus with a code per section, catalogues with a code per product, and event programmes with a code per session, and it's the one layout problem the standard advice above doesn't solve on its own.

Start with how phones actually behave. Apple's instructions for scanning with the iPhone camera are to position the camera so the code appears inside the frame, then tap the link that appears at the bottom of the screen. There's no documented way to pick between two codes sitting in frame together. The camera surfaces a link, and if the wrong code was the one it locked onto, the only fix is to move the phone and try again.

Which is a bad experience for a reason that isn't obvious. The person doesn't get an error. They get a link, they tap it, and they end up on the wrong page believing they scanned correctly. On a menu that means the dessert QR opened the drinks list. On a form it can mean submitting the wrong thing entirely.

The spacing rule follows from the quiet zone requirement already covered above. Each code needs four modules of clear space on every side, so two codes side by side need both of their quiet zones between them, which is eight modules minimum before anything else. That's the floor, not the target. In practice, leave a gap at least as wide as one of the codes themselves. If your codes are 25 mm square, put 25 mm or more between them, and the camera stops having to make a judgment call.

The rest of it is layout discipline:

  • Never put two codes on the same horizontal line if you can avoid it. People hold phones in landscape more than designers expect, and two codes at the same height are the easiest pair to confuse.
  • Label every code, above or beside it, not below. Fingers and phone bodies cover the area under a code while it's being scanned. "Scan for the wine list" placed above the code is readable at the moment the decision gets made.
  • Vary the labels, not the codes. Codes that look nearly identical are unavoidable, since the pattern is determined by the data. The text is what does the distinguishing, so make the labels obviously different rather than "Menu 1" and "Menu 2".
  • Keep sizes consistent. Mixed sizes on one page read as a hierarchy that doesn't exist and tempt people toward whichever code is biggest.
  • Ask whether you need several at all. One code pointing at a landing page with clear links is often better than six codes, and it's a single thing to reprint when something changes.

That last point deserves the weight. Multiple codes multiply everything: more print area, more to test, more to reprint, more ways to send someone somewhere wrong. If the codes all lead to pages on the same site, a single code and one well-built landing page usually beats the grid, and it's far cheaper to fix when a URL changes.

And test them together, not one at a time. A code that scans perfectly in isolation can still lose to its neighbour once both are on the printed page, so hold a phone at normal reading distance over the finished layout and check that each code gives you the destination you expected.

What If Someone Can't Scan It at All?

Everything so far has been about making the code scannable. There's a prior question that print guides skip entirely: some share of the people looking at your poster won't scan it under any circumstances, and no amount of contrast fixes that.

Morrison, Nicholson, Wood and Briggs studied exactly this for Life after lockdown: The experiences of older adults in a contactless digital world, published in Frontiers in Psychology in 2023. They surveyed 93 people aged 50 and over and interviewed a further nine.

The specifics are the useful part, because they're all design failures rather than technology failures. One participant said plainly they had no idea what a QR code is or how to use it. Another couldn't get into a restaurant's menu and ended up ordering whatever the waiter recommended. One described a queue on a hot day facing nothing but a code and no explanation. The researchers separated the barriers into intrinsic ones, meaning no smartphone or limited digital literacy, and extrinsic ones like poor wifi and unusable apps. Both leave the same person standing in front of your artwork with no way in.

So the design rule is simple: a QR code should be a shortcut, never the only door. What goes in the artwork alongside it:

  • A short human-readable URL. Something typable. "example.com/menu" beats a 60-character tracked link nobody could enter by hand.
  • A phone number, where the thing behind the code is a service. Bookings, support and enquiries all still work over a call.
  • A plain-language label. "Scan for the menu, or ask us for a printed one" tells people both that the code exists and that they aren't stuck if it doesn't work for them.
  • An actual offline alternative where the stakes are real. If the code is the only route to a menu, a form, or a payment, keep paper copies behind the counter. Somebody will need one this week.

Here's the part worth noticing. That printed URL is the same line of text recommended further down this guide as a defence against sticker tampering, where showing the destination lets people sanity-check where a code is sending them. One line of copy solves an accessibility problem and a security problem at once, which makes it the highest-value thing you can add to a QR layout. Design it in from the start rather than squeezing it in at proof stage.

The commercial framing, if you need one for a client: a code that excludes part of your audience isn't a neutral outcome. It's a customer who walked out, and unlike a broken code, they don't show up as a failed scan either.

What About Bottles, Cups and Curved Surfaces?

The advice everywhere, including earlier in this guide, is to keep the code off curves. Good advice. But sometimes the product is a bottle, and "don't" isn't an answer you can act on.

The problem is geometry. On a tight curve the outer edges of the symbol bend away from the camera, so the modules at the sides get compressed and the finder patterns at the corners distort. Push it far enough and the edges disappear around the side of the container entirely. GS1's 2D Barcodes at Retail Point-of-Sale implementation guideline puts it plainly in section 4.6: when printing QR Codes on small trade items or on curved surfaces, size becomes a critical factor.

What actually works:

  • Find the flattest panel. Most packaging has one. The flat face of an oval bottle, the base panel, a shoulder label. Even a slightly flatter area beats the tightest part of the curve.
  • Go bigger than the flat-surface minimum. Curvature effectively eats into your usable module size, so the 20mm floor that works on a flyer is not the floor on a can. Add margin.
  • Raise the error correction level. This is what error correction is for. A higher level tolerates the distortion and partial obscuring that curves create, at the cost of a denser grid, which is why you also need the extra size.
  • Keep the whole symbol within roughly the front third of the circumference. If a customer has to rotate the item mid-scan to bring the far edge into view, the code is too wide for that diameter.
  • Use a wrap label with a flat panel where the container allows it. A label that stands slightly proud of a tight curve gives you a near-flat surface for free.
  • Test on the filled product. An empty bottle and a full one don't always sit or reflect the same way, and shrink-sleeve labels distort when they're applied, not when they're printed.

One more thing specific to drinks and cosmetics: condensation and handling. A code on a chilled bottle gets wet, and a code on a moisturiser tube gets thumbed. Neither is a design problem exactly, but both argue for a matt finish, a larger symbol, and a position away from where fingers naturally grip.

What About Codes on Vehicles, Screens and Anything Moving?

The 10:1 rule quietly assumes two things: the code is standing still and so is the reader. Break either assumption and size stops being your binding constraint. Dwell time becomes the constraint, and no amount of enlarging fixes a code that isn't visible long enough to scan.

Work out what a scan actually costs in seconds and the problem becomes obvious.

Someone has to notice the code, get their phone out, wake it, open the camera, aim, hold steady while it focuses, and wait for the decode. Even for a practised person with the phone already in hand, that's several seconds. For most people it's closer to ten. The code has to stay visible and in range for the whole of that, not just for the instant they spot it.

Now put numbers on the movement. A vehicle at 30 km/h covers about 8.3 metres every second. At 50 km/h it's just under 14. Someone walking past a poster does roughly 1.4 metres per second. So a code on the side of a van moving through traffic is in useful range for perhaps two seconds, which is not enough to start the process, let alone finish it.

A code on a moving vehicle is decoration. That's not a design failure you can fix with a bigger print.

But the same van parked at a job site is a completely reasonable place for a code, and that distinction is the actual decision. If your vehicles spend most of their working day stationary and visible, size the code for the parked viewing distance and stop worrying about the driving case. If they're mostly in motion, put a phone number and a short URL on the panel instead, because those can be read and remembered at speed in a way a QR code cannot.

Codes aimed at drivers are a different problem entirely

This one is worth being blunt about, because it comes up constantly with billboards and roadside signage.

The US National Highway Traffic Safety Administration's Visual-Manual Driver Distraction Guidelines recommend that tasks be designed so a driver's individual glances away from the road stay at 2 seconds or less, with cumulative eyes-off-road time of 12 seconds or less. NHTSA later published equivalent guidelines covering portable devices, which is to say phones.

Hold a QR code scan against a 2-second glance limit. It doesn't fit, and it isn't close. You cannot pick up a phone, open a camera, aim it out of a windscreen and decode anything inside two seconds. A code positioned where the intended scanner is a person driving is asking for behaviour that fails a published safety threshold, and that's before anyone raises the liability question.

Those are US guidelines and they're not binding on a poster designer anywhere. The underlying human factor is not jurisdiction-specific. If the only way to scan your code is while operating a vehicle, redesign the placement.

Screens, rotations and video

Digital signage brings a timing problem print doesn't have, and it catches people out because the code looks perfect in the design file.

If your slide sits in an eight second rotation, the code is gone in eight seconds. Someone who notices it at second six gets two. Then they wait through the whole loop for it to come back, which most people won't do. Three ways out, in order of how well they work:

  • Keep the code on screen for the entire rotation. Park it in a fixed corner while the creative changes behind it. Now dwell time is unlimited and the code is where returning eyes expect it.
  • Extend the slide holding the code. Fifteen to twenty seconds gives a realistic chance. Eight does not.
  • Put the code on a static printed panel beside the screen. Unglamorous, and it removes the timing problem completely.

Video and broadcast add two more issues. Compression chews at fine detail, so a code that survives your export may not survive the platform's re-encode, and the modules are exactly the kind of high-frequency detail that suffers. Test on the actual delivery path rather than your local file. And never animate the code itself. A code that slides, spins or fades is unscannable for the portion of the time it's in motion, which is most of it.

The cases that work well are the ones where people are moving slowly or not at all and have time on their hands. Escalator side panels, train platform edges, queue barriers, lift lobbies, waiting rooms, the back of a seat. Dwell time is generous in all of them. Size for the actual viewing distance using the ratio in the sizing section above, and remember that a platform-edge code read from three metres needs to be around 30 cm across, which is far bigger than most people budget for.

Rules that hold across all of these:

  • Ask how many seconds the code is available, before you ask how big it is. If the honest answer is under five, the placement is wrong regardless of size.
  • Design for the stationary version of the surface. Parked vehicle, paused screen, standing viewer.
  • Always give a non-scan route. A short readable URL next to the code covers everyone the timing defeats, which the section on what to do when someone cannot scan covers in full.
  • Test it in the real position at the real speed. Walk past it. Drive past it as a passenger. Watch the actual rotation. A code that scans on your desk tells you nothing about whether it scans from a moving escalator.

Export and print settings undo a lot of careful design work. Keep these straight:

  1. Use vector where you can. An SVG or EPS scales to any size with perfectly sharp module edges. A PNG stretched up on a banner goes soft.
  2. If raster, 300 DPI minimum at final print size. Not 300 DPI at thumbnail size then enlarged. Work out the finished dimensions first.
  3. Check dots per module, not just DPI. 300 DPI is a rule of thumb, and it hides the number that actually matters: how many printer dots make up one module. At 300 DPI a single dot is 0.085 mm, so a code printed at Denso Wave's 0.17 mm laser-printer floor gets about two dots per module, which is where edges start going ragged. Bump the same code to 600 DPI and you get four. For normal sizes you're fine either way, because a 2 cm Version 1 code has roughly 0.95 mm modules and eleven dots each at 300 DPI. It's only when the code gets small that the DPI number starts doing real work.
  4. Never resize non-proportionally. A stretched code has rectangular modules and won't decode. Hold shift.
  5. Watch ink spread on absorbent stock. Uncoated paper, newsprint, cardboard, and fabric all let ink bleed, which fattens dark modules and closes up the light ones. Print larger and use higher error correction on these.
  6. Prefer matt over gloss. Gloss and laminate reflect light straight back into the camera.
  7. Check the CMYK conversion. A pure black on screen can convert to a rich black that looks muddy, or a colour that shifts. Ask your printer for a proof.

And test on real paper before the full run. Print one copy at the exact final size on the exact stock, then scan it with an old phone, a new phone, in bright light and in dim light. If you need to resize or convert the exported image first, IWantFreeImageTools handles that in the browser.

How Do You Know If a Printed Code Is Good Enough?

"It scanned on my phone" is the test most people run, and it's the weakest one available. Your phone is new, you knew where to point it, and you were standing in good light holding the sheet flat. None of that describes your customer.

There's a formal answer to this. ISO/IEC 15415, updated in 2024 and maintained by ISO/IEC JTC 1 subcommittee SC 31, is the print quality test specification for two-dimensional symbols. It sets out how to measure the physical attributes of a printed code and grade them, producing an overall quality assessment rather than a pass or fail hunch. Codes are graded from A down to F, and the catch is that the grading is unforgiving by design: the weakest individual parameter sets the overall grade, so one bad attribute drags everything down with it.

This is not academic. GS1's retail guideline states in section 4.6.5 that it's critical to have each unique barcode verified in accordance with ISO/IEC 15415 to determine its quality grade. If you're printing packaging that goes through retail scanning, verification is an expectation, not a nicety.

Proper verification needs a hardware verifier under controlled lighting, which is a print supplier's job rather than yours. Ask for it. If you're commissioning a print run of any size, "please verify to ISO/IEC 15415 and send me the grade" is a reasonable line in the brief, and a supplier who doesn't know what you mean tells you something useful.

For everything below that threshold, here's a DIY protocol that catches most real failures. Print one copy at final size on the final stock, then:

  1. Scan with the oldest phone you can find. Not yours. Borrow one. Older cameras and slower autofocus are where marginal codes fail.
  2. Try three lighting conditions. Bright daylight, normal indoor light, and dim, which is where a restaurant table or an evening event actually sits.
  3. Scan at the real distance. A poster gets scanned from two metres, not from arm's length on your desk.
  4. Try it at an angle. Roughly 30 degrees off square, because nobody approaches a wall sign head on.
  5. Scan it ten times, not once. A code that works on the first try every time is fine. A code that takes three seconds of hunting on half your attempts will be abandoned in the wild.

That last point is the one worth internalising. In print, the failure mode is rarely a code that cannot be scanned. It's a code that can be scanned with effort, which in practice means most people don't bother.

Does the 2027 Barcode Change Affect Your Print Design?

Only if you're printing retail product packaging. If you're doing posters, flyers, menus, table tents or signage, none of this applies and you can skip to the next section. But if your code is going on something that gets scanned at a supermarket checkout, the rules you're designing to are about to stop being rules of thumb.

Here's what's happening. GS1 US describes Sunrise 2027 as a pivotal shift for the retail industry, a global transition from 1D UPC barcodes to 2D barcodes like QR codes. GS1's own retail guideline uses a different name for it, Ambition 2027, and states the goal plainly: retail point of sale scanning should be globally capable of reading and processing the GTIN from both existing linear and 2D barcodes by the end of 2027.

Read that sentence again, because the word doing the work is both. This is the part most coverage gets wrong.

Nobody is switching off the striped barcode in 2027. GS1 US is explicit that it isn't necessary to implement all the capabilities of 2D by that date, and the target is about checkout scanners becoming able to read 2D, not about retiring what already works. The change GS1 flags is on the retailer's side: software upgrades, and possibly equipment upgrades where a point of sale scanner isn't already imager capable. So if you've been told your packaging has a hard deadline, that's a misreading.

What it does change for you is what the code on the pack has to be. Three things follow:

  • A marketing QR code and a GS1 QR code are not the same object. The one you generated to point at your website carries a URL and nothing else. A retail 2D barcode has to carry the GTIN and follow GS1 Digital Link. GS1 US tells brand owners to add 2D barcodes to existing packaging and to make sure any QR codes already on there are updated to the GS1 Digital Link standard. An existing code doesn't get grandfathered in.
  • The sizing stops being your call. Everything in this guide is practical advice for codes people scan with phones. For retail point of sale, the X-dimension, the minimum quiet zone and the minimum print quality have to comply with the symbol specification tables in the GS1 General Specifications, specifically the addendum covering 2D barcodes. Those tables are the authority, not the 10:1 rule.
  • Verification becomes the norm. That ISO/IEC 15415 grading from the previous section is exactly what this is heading towards. If you're moving to 2D on packaging, budget for verified print runs rather than a phone test.

Two details are reassuring, though, because they line up with what this guide already told you. GS1's guideline puts the QR quiet zone at four times the X-dimension on all four sides, which is the same four-module margin ISO 18004 asks for. And it sets no mandatory error correction level, leaving L, M, Q and H all available, so the advice about raising error correction on rough stock still stands.

One practical trap worth naming early. If you already have a marketing QR on your packaging and you add a GS1 one, you now have two square codes on the same pack and a customer who doesn't know which to point at. Consolidating into a single GS1 Digital Link code that serves both the checkout and the consumer is the whole point of the exercise, so plan the artwork around one code rather than bolting a second one into a corner.

And treat this section as a pointer, not a specification. The actual numbers live in the GS1 General Specifications and they're revised. If you're printing retail packaging, get the current tables from your local GS1 member organisation before the artwork goes to press.

Will Your Code Still Scan in Six Months Outdoors?

Often not, and this is the failure almost nobody plans for. Everything above gets you a code that scans on the day it's printed. Sunlight, rain and temperature then spend the next few months quietly undoing it, and because the decline is gradual, nobody notices until the scans have already stopped.

The mechanism is contrast loss. A printed code works because the dark modules and the light background sit far enough apart for a camera to separate them. UV exposure fades ink, and the darks lift toward grey before anything looks obviously wrong. Your 10:1 contrast ratio becomes 5:1, then 3:1. At no point does the code look broken to a human. It just gets slower to scan, then stops.

There's a whole standards discipline for measuring this. ISO 4892-2:2013 sets out how to expose materials to xenon-arc light with controlled moisture and temperature, specifically to reproduce what daylight does to a material in real use. It's written for plastics rather than for barcodes, but it's the test your substrate and laminate supplier will have run, and it's the right question to ask them.

Accelerated testing compresses time hard, which is worth understanding before you read a supplier's numbers. Gavin Hill and colleagues at Polymateria and Imperial College London, publishing in Polymers in 2021, ran a temperate accelerated UV cycle and found 14 days of it corresponded to roughly 90 days of outdoor exposure in Florida. That was polyethylene film rather than printed ink, so don't carry the ratio across directly. The useful takeaway is the scale of the compression: a couple of weeks in a chamber stands in for a season outdoors, which is why "passed accelerated weathering" and "still scanning next spring" are different claims.

What actually helps, roughly in order of how much difference it makes:

  • Print darker than you need. Start at the top of the contrast range rather than the minimum. You're budgeting for fade, not just for launch day.
  • Laminate anything that lives outside. A UV laminate is the cheapest intervention available and it does more than upgrading the ink.
  • Use a higher error correction level for outdoor placements. The article covered the L to H levels earlier. Outdoors, the extra redundancy buys you tolerance for scratches, dirt and partial fade rather than just damage.
  • Avoid coloured codes outside. Colours shift unevenly as they fade, and a code that started at acceptable contrast can fail faster than a plain black one.
  • Face the code away from direct afternoon sun where you can. Placement is free. A north-facing panel in the tropics ages far more slowly than a west-facing one.

Then build in one habit that costs nothing. Put a recurring reminder in your calendar to walk outside and scan your own codes, at whatever interval matches your climate. Quarterly is sensible in Singapore and Malaysia, where UV is high year round. Scan from the real distance a customer would use, not from arm's length. And if you're using dynamic codes, check your scan counts for a slow decline rather than a sudden stop, because a fading code produces exactly that shape. Our dynamic versus static guide covers how that tracking works.

Do You Need to Worry About Tampering?

If your code goes anywhere public and unattended, yes. This is a design problem as much as a security one, because the fix is physical.

The US Federal Trade Commission has warned consumers directly about it. In a December 2023 consumer alert, the FTC described scammers covering up legitimate QR codes on parking meters with their own stickers, sending people to phishing sites that harvest card details or push malware. The money involved in QR-assisted fraud is not trivial either. FTC data published in September 2024 showed reported losses to Bitcoin ATM scams, which typically involve scanning a QR code at the machine, rose nearly tenfold since 2020 to more than 110 million US dollars in 2023, with over 65 million lost in the first six months of 2024 alone.

What you can do at the design stage:

  • Print the code as part of the artwork, not as a stick-on label that's easy to cover.
  • Print the destination domain in readable text next to the code so people can sanity-check where they're going.
  • Use tamper-evident laminate on outdoor signage and parking equipment.
  • Check public-facing codes on a schedule. A stuck-on sticker is obvious once someone looks.

Showing the URL in plain text costs you a line of copy and buys real trust. Our guide on how to scan a QR code safely covers the user side of this.

Is Careful Print Design Worth the Effort?

Yes, and the reason is that scanning behaviour is growing much faster than most print budgets assume. If you treat the code as a decorative afterthought, you're throwing away demand that already exists.

Bitly's State of QR Code Scans in 2026 report tracks scan activity across its own platform, and the regional numbers from 2024 to 2025 are lopsided in a useful way. Europe recorded a 42 percent rise in scan rates. Latin America came in at 40 percent, Asia-Pacific at 21 percent, the Middle East and North Africa at 18 percent, Sub-Saharan Africa at 10 percent, and North America at 8 percent.

The more revealing pair of figures is creation versus scanning. In Europe, the number of new QR codes created grew 7 percent while scans of existing codes grew 53 percent. Latin America shows the same shape even more sharply: code creation up just 0.5 percent, scans up 41 percent. People aren't scanning because there are suddenly more codes around. They're scanning the same codes far more often, which means the ceiling on any individual printed code is higher than it used to be.

Read that against the design rules above and the maths gets simple. A poster that runs for three months in a shop window will be seen by the same commuters dozens of times. If the code is 2 cm when it needed to be 20 cm, or the quiet zone got trimmed at the guillotine, every one of those impressions is wasted and you won't know, because a code that fails to scan generates no data at all. That's the quiet danger with print. A broken digital link throws a 404 you can see in analytics. A broken printed code just returns silence, and silence looks identical to nobody being interested.

So the test print isn't optional polish. It's the only feedback loop you get before committing to the run.

What Mistakes Should You Avoid?

Six errors account for nearly every unscannable printed code:

  • Cropping the quiet zone. The number one cause. Four modules, all sides, no exceptions.
  • Inverting to light-on-dark. Looks striking, fails on many scanners.
  • Encoding a long URL then printing small. More data means finer modules. Shorten the link.
  • Stretching the image. Non-square modules don't decode.
  • Putting it on a fold, a seam, or a curve. The grid has to stay flat.
  • Skipping the physical test. Scanning the PDF on your monitor proves nothing about ink on paper.

There's also a strategic one: printing a static code for something you might want to change. Once it's on 10,000 flyers, a static code's destination is fixed forever. A dynamic code lets you repoint it later, which our dynamic vs static guide explains in full.

What Else Do People Ask?

How big should a QR code be on a printed flyer?

About 2 to 3 cm square works for a flyer or leaflet someone holds at arm's length, roughly 20 to 30 cm away. The rule of thumb is 10 to 1: the code should be at least a tenth of the scanning distance. Go bigger if the code holds a long URL, because more data means smaller modules at the same physical size.

What is the minimum size for a printed QR code?

Technically tiny, practically not. Denso Wave, which invented the format, puts the smallest workable module at about 0.17 mm, making a Version 1 code roughly 3.57 mm square. Real phone cameras, ink spread, and imperfect lighting mean you should treat 2 cm as your practical floor for anything the public will scan.

Can you print a QR code in colour?

Yes, within limits. Keep the code dark and the background light, never the reverse, and keep strong contrast between them. Denso Wave notes that some combinations simply fail, and a red code on a white background is one that cannot be read. Dark navy or deep brown on white or cream is safe. Pastel on pastel is not.

How much white space does a QR code need?

Four modules of clear space on all four sides. That's the quiet zone defined in ISO/IEC 18004, and a module is one of the small squares in the pattern. So on a code that's 25 modules wide, the margin should be roughly a sixth of the code's width on each side. Cropping it is the most common reason a printed code fails to scan.

Where should you put a QR code on a poster?

Between waist and eye height, on a flat surface, with a short line of text saying what scanning gets you. Avoid folds, spines, seams, curved bottles, and anywhere a hand or shelf edge covers it. On a wall poster, about 1.2 to 1.4 metres from the floor works well. The ADA Accessibility Standards cap unobstructed reach at 1220 mm, which is a good ceiling wherever people need to get close.

Sources: ISO/IEC 18004:2024, QR code bar code symbology specification, fourth edition, August 2024 (iso.org); Denso Wave technical FAQ, version and information capacity pages, and error correction documentation (qrcode.com); W3C Web Content Accessibility Guidelines 2.2, contrast minimum (w3.org); US Access Board, ADA Accessibility Standards, Chapter 3 building blocks, reach ranges (access-board.gov); US Federal Trade Commission consumer alert on QR code scams, December 2023, and FTC data on Bitcoin ATM scam losses, September 2024 (ftc.gov); Bitly, The State of QR Code Scans in 2026, regional scan and creation growth 2024 to 2025 (bitly.com); Morrison C., Nicholson J., Wood B., Briggs P., "Life after lockdown: The experiences of older adults in a contactless digital world," Frontiers in Psychology, 2023, 93 survey respondents and 9 interviewees aged 50 and over (via PubMed Central); World Health Organization, "Blindness and vision impairment" fact sheet, on the global prevalence of vision impairment; US Access Board, ADA Accessibility Standards chapter 7, on tactile characters and braille on signs. All linked above.

Ready to make one? Use our free QR code generator to create a code with no signup and no watermark, and download it as a PNG or a print-ready SVG.

Create a Free QR Code →