Free tier, no card requiredDynamic QR codes that update after printGDPR-compliant scan analyticsBuilt for agencies, freelancers & in-house teamsFree tier, no card requiredDynamic QR codes that update after printGDPR-compliant scan analyticsBuilt for agencies, freelancers & in-house teamsFree tier, no card requiredDynamic QR codes that update after printGDPR-compliant scan analyticsBuilt for agencies, freelancers & in-house teamsFree tier, no card requiredDynamic QR codes that update after printGDPR-compliant scan analyticsBuilt for agencies, freelancers & in-house teams
All posts
A QR code sized correctly for print, with a clear quiet-zone margin, scanning successfully.
Guide

How big should a QR code be? Print size, contrast, and the specs that make it scan

How big should a QR code be, and why do printed codes fail to scan? A practical guide to QR code size, quiet zone, contrast, error correction and file format, with a size-by-placement guide and a two-minute test that saves the print run.

ScanKit

ScanKit · Organization

· 14 min read

A QR code that does not scan is worse than no QR code at all. It is a printed dead end: someone lifts their phone, points it, nothing happens, and they move on slightly more sceptical than before. The painful part is that you almost never find out. Nobody emails to say your code failed, the scans simply never arrive, and a campaign that looked perfect on screen quietly underperforms in the real world.

Nearly every printed-code failure traces back to a short list of fixable causes: the code was too small for the distance, it had no room to breathe, the contrast was too low, it was saved in the wrong file format, or the link behind it was wrong. None of that is bad luck. It is the gap between a code designed for a screen and a code designed to be read off paper, at arm's length or across a room, in real light. This is the pre-print checklist that closes that gap: size, quiet zone, contrast, error correction, file format, and a two-minute test before the run. Get these right and the code disappears into the design and just works.

The anatomy of a QR code that scans

Before the numbers, it helps to see what you are actually designing. A QR code is not just the black pattern. It is the pattern plus the space and the contrast around it, and a few regions matter far more than the rest.

Diagram of a QR code with its quiet zone, finder patterns, size and contrast labelled.
The four parts of a QR code that decide whether it scans: the quiet zone, the finder patterns, the size, and the contrast.
  1. The quiet zone. The clear margin around the code. Scanners use it to find where the code begins, so it is not spare white space, it is part of the code.
  2. The finder patterns. The three large squares in the corners. A camera locks onto these first to orient the code. Cover one and nothing else matters, because the code will not scan.
  3. The size. The printed width of the code, which has to suit the distance it will be scanned from. Too small for the distance is the single most common reason a printed code fails.
  4. The contrast. Dark modules on a light background. Cameras read a code by the difference between light and dark, so the more contrast there is, the faster and more forgiving the scan.

Keep those four in mind and the rest of this guide is just detail.

How big should a QR code be?

The short answer is the 10:1 rule: a code should be about one tenth as wide as the distance it will be scanned from. A code read from two metres needs to be roughly twenty centimetres across, while a code on a business card held at twenty centimetres only needs to be about two. It is a rule of thumb rather than part of any standard, but it is a good one, and it scales cleanly from a label to a billboard.

Treat the 10:1 figure as a floor, not a target. Real scans happen at an angle, in poor light, on a cracked phone, while someone walks past, so add twenty to thirty per cent on top for margin. Bigger is almost always safer, and the only real cost of a larger code is the layout space it takes.

Size by placement

Here are sensible minimum widths for common placements, using the 10:1 rule. Add margin where you can, and when in doubt, size up.

  • Business card, read from about 20 cm: at least 2 cm / 0.8 in. This is the practical floor for any printed code, so do not go smaller.
  • Flyer or brochure in the hand, about 30 cm: at least 3 cm / 1.2 in.
  • Table tent or menu, about 40 cm and often read leaning back: at least 4 cm / 1.6 in.
  • Product packaging, read up close at about 20 cm: at least 2 cm / 0.8 in.
  • Shop window or in-store sign, about 1.5 m: at least 15 cm / 6 in, and watch for glare on the glass.
  • Wall poster, about 2 m: at least 20 cm / 8 in.
  • Vehicle or transit wrap, about 3 m when parked: at least 30 cm / 12 in, and larger and simpler again if the vehicle moves.
  • Billboard, about 10 m: at least 1 m / 3.3 ft, and more at motorway distances.

The absolute minimum

For close-range scanning, around 2 cm square is the smallest you should print a normal marketing code. Below roughly 1.3 cm, codes start to fail even in the hand. Retail packaging can go a little smaller under tight rules: GS1, the body behind the barcodes on retail products, sets a minimum module size that works out to about 1.5 cm for a low-data code held close. Unless you are bound by those retail constraints, give yourself room and stay at 2 cm or above.

The quiet zone: the margin scanners need

The quiet zone is the empty border around the code, and the QR standard (ISO/IEC 18004) requires it to be at least four modules wide on every side. A module is the smallest square in the code, a single dark or light cell, so the quiet zone scales with the code: if a module prints at one millimetre, you need at least four millimetres of clear space all the way around.

This is where a lot of otherwise careful designs fall over. The code itself looks fine, but a caption, a border, a price flash or a busy background photo creeps into that margin, and suddenly scanners cannot tell where the code starts. Keep the four-module border genuinely empty. White or a very light flat colour is ideal, and you should never run text or artwork up to the edge of the pattern.

Contrast and colour: why dark on light still wins

A camera reads a QR code by the contrast between dark and light cells, so the safest possible code is the classic one: dark modules on a light background. It is not the most exciting choice, but it scans fastest and across the widest range of conditions, which on a print run you cannot take back is exactly what you want.

Two rules matter most. First, keep the modules darker than the background, never the other way round. Inverted codes, light on dark, are technically valid, but plenty of scanners, older Android cameras especially, expect dark on light and will simply refuse to read them. Second, keep the contrast high. The QR standard does not set a single pass-or-fail ratio; print quality, contrast included, is graded on a scale (under ISO/IEC 15415) rather than as one hard number. As a working target, aim for a contrast ratio of at least 4 to 1 between the dark and the light, and more for codes that will live outdoors or in dim light. Pale on pale, such as a light tan on white, is a common and entirely avoidable killer.

Colour is fine within those limits. A dark brand colour on a light background usually scans well, while a light brand colour used for the modules usually does not. If you must use colour, keep the modules dark and test before you commit.

There is one more physical trap: finish. Glossy stock and glossy lamination throw back glare under sun or hard overhead light, and that bright hotspot can hide part of the code from the camera. A code that scans perfectly on your matte proof can fail on the glossy printed version. Prefer matte or uncoated surfaces for anything carrying a code, and if gloss is unavoidable, test under the real lighting.

Error correction: how much damage a code can survive

Every QR code carries redundant data so it can still be read when part of it is dirty, scratched or covered. DENSO WAVE, the company that invented the QR code, defines four levels of this error correction:

  • Level L can restore about 7 per cent of the code.
  • Level M can restore about 15 per cent.
  • Level Q can restore about 25 per cent.
  • Level H can restore about 30 per cent.

Higher correction sounds like a free win, but there is a trade-off. The redundancy is extra data, so a higher level packs more modules into the code and makes the pattern denser. At a fixed printed size, denser means smaller modules, and smaller modules are harder to read from a distance or in poor light. So the right choice is a balance, not "always pick H".

For most marketing print, Level M is the sensible default. Step up to Q or H when the code carries a logo, lives outdoors, sits on a curved or flexible surface, or is likely to get scuffed, wet or dirty. Level H exists precisely so a code can lose up to roughly a third of itself and still resolve, which is what makes a logo in the middle of a code possible at all.

Logos and branding without breaking the scan

You can put a logo on a QR code, and for agency work you often want to. The trick is to treat that error-correction headroom as exactly that, a budget. Use Level H, keep the logo in the centre where the least critical data sits, and keep it under about 30 per cent of the code's area. In practice a centred logo covering 10 to 15 per cent is very safe, while pushing towards 30 leaves nothing in reserve for print wear, so most designers stay well under it.

The one thing error correction will not save you from is a covered finder pattern. Those three corner squares are how a scanner orients the code, and no amount of redundancy rebuilds them. Keep all three corners, the timing lines between them, and the smaller alignment squares completely clear, and always scan a logo code on a few phones before it goes anywhere near a printer.

File format and resolution

The file you hand to the printer matters as much as the design. Wherever you can, deliver the code as a vector file, which means SVG, or a vector PDF or EPS. Vectors have no fixed resolution, so the same file is razor sharp on a business card and on a banner, and nobody can accidentally blur it by resizing.

If you have to use a raster image, use PNG, generated at the final printed size at 300 DPI, or 600 DPI for very small or premium codes. Never use JPEG for a QR code: JPEG compression smears the sharp edges between cells into soft grey, which is exactly what a scanner cannot read. And never enlarge a small code to fill a bigger space, because blowing up a tiny PNG softens every edge and is a classic cause of the "why won't it scan" panic the morning after the proofs land. Regenerate it at the size you actually need instead.

Test before you print

No checklist replaces a real test, and a real test takes two minutes. Print a proof at the final size, on the actual stock and finish you will use, then check three things.

  • It scans on more than one phone. Try at least one iPhone and a couple of Android phones, including an older one, using the built-in camera and a scanner app or two. Devices differ, and the cheap old phone is the one that finds your problems.
  • It scans in real conditions. Scan from the distance and angle people actually will, in the light they will actually be in: a bright shop, a dim restaurant, direct sun on the window. A code that only works on your desk under nice light has not been tested.
  • It goes where it should. Confirm the code lands on the right page, that the page loads quickly on a phone, and that there are no typos or dead links. A code can scan perfectly and still fail the campaign by opening the wrong thing.

If the proof passes on the worst phone, in the worst light, at the real distance, you are ready for the run.

The safety net: print a dynamic code, not a static one

Even with every box ticked, print is unforgiving. Once ten thousand flyers are in the post, a static code is set in stone: if the link was wrong, or the landing page later moves, or you simply want to send this quarter's scans somewhere new, a static code means a reprint. This is the single biggest reason to print a dynamic code instead. A dynamic code keeps the printed pattern fixed while letting you change where it points at any time, so a wrong destination becomes a thirty-second fix rather than a binned print run. The full trade-off is in dynamic vs static QR codes, and the how-to is in changing a code's destination without reprinting.

A dynamic code also turns a print campaign into something you can measure. Because every scan is counted, you can see which placements and sizes actually performed, then track the print campaign properly and use the scan analytics to right-size and reposition next time. If the window code at 12 cm underperformed the poster code at 20 cm, the data tells you, and the next run is better for it. When you are running placements across several clients, keep each client's codes in their own workspace so those numbers never get tangled.

Design for the scan, then print a dynamic code so a small mistake is never a reprint. That combination is what separates a QR campaign that limps from one that compounds.

Frequently asked questions

How big should a QR code be?

Use the 10:1 rule: make the code about one tenth as wide as the distance it will be scanned from. That works out to roughly 2 cm for a business card held at 20 cm, 3 cm for a flyer, 20 cm for a wall poster read from 2 m, and about a metre for a billboard. Add twenty to thirty per cent for real-world margin, and treat 2 cm square as the smallest you should ever print.

What is the minimum size for a QR code?

About 2 cm by 2 cm (0.8 in) for close-range scanning. Below roughly 1.3 cm, codes start to fail even in the hand. Retail packaging can reach about 1.5 cm under GS1's rules if the code holds very little data, but for general marketing print, stay at 2 cm or larger.

Why won't my QR code scan after printing?

Almost always one of five things: it is too small for the scanning distance, it has no quiet zone (the four-module clear margin), the contrast is too low or inverted, it was saved as a low-resolution or JPEG file, or the link behind it is broken. Work through those five and you will fix nearly every printed-code failure.

What is the quiet zone, and how big should it be?

It is the blank margin around the code, and the QR standard requires at least four modules (four cells of the code) of clear space on every side. Without it, scanners cannot locate the code. Keep that border free of text, borders and background art.

What colours can a QR code be?

Any colour, within one rule: the modules must be darker than the background, and the contrast must be high, ideally at least 4 to 1. Dark on light scans best, while light-on-dark inverted codes fail on many phones. A dark brand colour on a light background is usually safe, but test it before printing.

Which error correction level should I use for print?

Level M for most marketing print. Use Level Q or H for codes with a logo, codes that live outdoors, or codes on curved or dirt-prone surfaces. Higher levels survive more damage but make the code denser, so do not use more than the situation needs.

Can a QR code have a logo in the middle?

Yes. Use error-correction Level H, place the logo in the centre, and keep it under about 30 per cent of the code's area, with 10 to 15 per cent the safest range. Never let the logo, or anything else, cover the three corner finder patterns, which error correction cannot rebuild.

What file format is best for printing a QR code?

A vector file (SVG, or a vector PDF or EPS) is best, because it stays sharp at any size. If you need a raster image, use a PNG generated at the final size at 300 DPI. Never use JPEG, and never enlarge a small code to fit.

The short version

Most printed QR codes that fail were never designed to be scanned off paper in the first place. Size the code to the distance with the 10:1 rule and never drop below 2 cm; leave the four-module quiet zone genuinely empty; keep it dark on light with strong contrast on a matte surface; use error correction Level M, or H when there is a logo; deliver it as vector or a 300 DPI PNG, never JPEG; and test the proof on the worst phone in the worst light before the run. Then print a dynamic code, so the one mistake that slips through is a quick edit instead of a reprint. Design for the scan, keep the destination in your own hands, and a printed code stops being a gamble and becomes a reliable, measurable part of the campaign.

Share

Keep reading