Learn · QR codes · Updated 2026-08-14

QR code best practices for print

Size a printed QR code to at least one tenth of its intended scan distance, keep a clear blank margin around it at least four modules wide, use a vector file rather than a low resolution raster, and keep strong contrast between the code and its background.

  1. Decide the scan distance up front
    Estimate realistically how far away someone will stand to scan the code, since that distance drives every sizing decision after it.
  2. Size the code using the distance-over-ten rule
    Divide the expected scan distance by ten and use that as the minimum side length, rounding up if unsure.
  3. Keep the quiet zone clear
    Leave a blank margin of at least four modules around the code and keep logos, borders, and trim lines out of that space.
  4. Use vector files for anything above business-card size
    Export an SVG or EPS file for larger print runs so the code scales without pixelating.
  5. Test contrast and color under real lighting
    Print a proof of any branded color pairing and check it under the actual lighting it will live under.
  6. Choose an error correction level if you are adding a logo
    Generate the code at error correction level H and keep a logo under 30 percent of the code's area.
  7. Print a physical proof and test-scan it before the full run
    Scan a printed proof at true size with an ordinary phone camera before committing to a large print quantity.
  8. Re-test after lamination or on the final substrate
    Run the same scan test again on the finished material, since lamination and curved surfaces can change results.

Print QR codes fail for a small, repeatable set of reasons, and almost none of them are about the code being "wrong". They fail because of physical decisions made after the code was generated. How big it was printed relative to how far away someone stands, how much blank space surrounds it, and how much contrast survives once it hits paper or laminate.

The rule that decides size: distance over ten

The most useful number in this entire topic is one most guides skip. A widely used rule of thumb from the QR code specification community is that a code's minimum size should be roughly one tenth of the distance it will be scanned from. A code meant to be scanned from about ten inches away should be at least one inch square. One meant to be read from across a shop floor, six feet away, needs to be roughly seven inches square. Undersized codes are the single most common reason a "qr code not scanning" complaint turns out to be a design problem, not a technical one. If you have not decided what the code should even point to yet, start with what a QR code is before worrying about how big to print it.

Typical scan distanceMinimum code sizeCommon placementRecommended file format
4 to 6 inches0.4 to 0.6 inchesBusiness card, product labelVector (SVG/EPS) or 600+ DPI PNG
10 to 12 inches1 to 1.2 inchesFlyer, table tent, receiptVector or 300+ DPI PNG
2 to 3 feet2.5 to 3.5 inchesPoster, window sticker, menu boardVector strongly recommended
6 to 10 feet7 to 12 inchesStorefront sign, trade show bannerVector required
20+ feet2+ feetBillboard, building wrapVector required

Resolution matters more than most designers assume

A QR code that looks crisp on a laptop screen at 300 pixels wide can turn into a blurry, unscannable mess printed at poster size, because print resolution and screen resolution are not the same measurement. For anything printed larger than a business card, use a vector file, SVG or EPS, so the code scales without losing a single sharp edge. If a vector export is not available, aim for at least 300 DPI at the final printed size, calculated from the physical dimensions, not the pixel count you happened to export at. A 600 by 600 pixel PNG printed at four inches is roughly 150 DPI, well under what a phone camera needs to resolve individual modules cleanly at a normal reading distance.

The quiet zone: the margin nobody remembers to leave

Every QR code needs a blank border around the pattern, called the quiet zone, so a scanner's software can distinguish the edge of the code from whatever is printed next to it. The standard guidance is a margin at least four modules wide, roughly the width of four of the small squares that make up the pattern itself. Crop a code tight against a logo, a border, or the edge of a card, and you can break a scan even though every individual module printed perfectly. This is one of the most common causes of a code that scans fine on a screen proof but fails once it comes off the press with a tighter trim.

Contrast beats color, every time

A QR code does not need to be black on white to scan, but it does need a strong luminance contrast between the code and its background, meaning a real difference in lightness, not just a difference in hue. A dark brand color on a slightly lighter but still dark background can look fine to a designer's eye and fail for a camera trying to distinguish modules in low light. Black on white or a single dark color on a clean light background remains the safest choice for anything going to print at scale. Test any branded color combination under the actual lighting the code will live in, not just under studio lighting on a screen.

Surfaces and finishes that cause real problems

Glossy laminate and reflective finishes are a common, underrated cause of scan failures, because glare from overhead lighting can wash out enough of the pattern that a camera cannot lock onto it from certain angles. A matte finish scans more reliably under variable lighting. Curved surfaces, a cup, a bottle, a rounded sign edge, distort the code's geometry enough that scanners built to expect a flat plane can fail entirely, so test on the actual curved object, not a flat proof, before committing to a full production run. If the print run is large enough that a bad batch would be expensive to redo, this is also the point to double check whether the code should be dynamic or static, since a dynamic code at least lets you fix a broken destination without reprinting.

Error correction and logos: how much you can cover before it breaks

The QR standard builds in four levels of error correction, meaning the code can still decode correctly even if part of it is damaged, dirty, or covered. Roughly, level L tolerates about 7 percent obstruction, M about 15 percent, Q about 25 percent, and H about 30 percent. This is exactly what makes it possible to place a small logo in the center of a code without breaking it, as long as you generate the code at the H level and keep the logo well under that 30 percent ceiling. Skip this step. Even a small centered logo at a lower error correction level can turn a perfectly good code into one that fails intermittently, scanning for some phones and not others depending on lighting and camera quality.

How to apply all of this, step by step

These steps assume the code already points at something worth printing at scale, so if you have not built the destination yet, see how to make a QR code that tracks scans first and come back here before you send the file to print.

Decide the scan distance up front

Before sizing anything, decide realistically how far away someone will stand when they scan the code. A business card is a few inches. A poster on a wall is a few feet. Get this wrong and every other decision downstream is sized for the wrong scenario.

Size the code using the distance-over-ten rule

Divide the expected scan distance by ten and use that as the minimum side length for the code. Round up, not down, if you are unsure. An oversized code costs nothing. An undersized one fails.

Keep the quiet zone clear

Leave a blank margin of at least four modules around every edge of the code, and do not let a logo, border, or trim line encroach on that space, even if it looks tight but technically clear on screen.

Use vector files for anything above business-card size

Export or request an SVG or EPS file for any print run larger than a business card or product label, so the code scales cleanly to the final size without pixelating.

Test contrast and color under real lighting

Print a proof of any branded color combination and view it under the lighting it will actually live under, not just on a screen, before approving a full print run.

Choose an error correction level if you are adding a logo

Generate the code at error correction level H if a logo or brand mark will sit on top of it, and keep that logo comfortably under 30 percent of the code's total area.

Print a physical proof and test-scan it before the full run

Test with an ordinary phone camera on the actual paper stock, at the actual size, before printing hundreds or thousands of copies. This is the single cheapest step in the entire process and the one most often skipped under deadline pressure.

Re-test after lamination or on the final substrate

Lamination, foil stamping, or printing directly onto a curved or reflective surface can change how a code scans compared to the flat paper proof, so run the same test again on the finished material, not just the draft.

Why a code not scanning is almost never a "bad code" problem

It is worth being direct about this because it saves a lot of wasted troubleshooting. A QR code generated correctly by any standard tool will decode reliably in a lab test. Real-world scan failures are overwhelmingly a print or placement problem. Too small for the distance, not enough quiet zone, low contrast, glare, or a curved surface. Before assuming the generator or the platform behind the code is broken, check the physical factors above first, since they explain the large majority of "why isn't this scanning" complaints that reach a print or marketing team. It also helps to be clear on what a scan even is before you go troubleshooting one: see what a QR code scan actually counts as if the number you are chasing is a scan count rather than a decode failure.

Common print mistakes worth checking before you send the file

  • Sizing the code for the paper it will sit on rather than the distance people will actually stand at when they scan it.
  • Cropping a border, ribbon, or decorative frame right up against the code's edge, eating into the quiet zone.
  • Choosing a brand color pairing that looks fine on a monitor but has almost no lightness contrast in print.
  • Adding a logo without regenerating the code at a higher error correction level first.
  • Skipping a physical test scan and only checking the code on a screen proof before a large print run ships.

Common questions

What is the minimum size for a printed QR code?
There is no single fixed minimum, since it depends on scan distance. A common rule of thumb is one tenth of the intended scan distance, so a code read from ten inches away should be at least one inch square.

What resolution should a QR code be for print?
A vector file such as SVG or EPS is best for anything larger than a business card. If only a raster file is available, aim for at least 300 DPI calculated at the code's final printed size.

Why is my QR code not scanning even though it looks fine?
The most common causes are the code being too small for its viewing distance, an insufficient blank margin around it, low contrast between the code and background, or glare from a glossy laminate finish.

Can I put a logo in the middle of a QR code?
Yes, as long as the code is generated at a high error correction level, typically level H, and the logo covers well under 30 percent of the code's total area.

Related: How to make a QR code that tracks scans · What is a QR code scan? · How to test a redirect before you trust it · What is a redirect?