Digital Marketing

QR Code Print Size: How Big Should It Be? Distance and Contrast

Talha Aslan 19 min read 2 views

Short answer

What QR code print size do you need?

QR code print size is the physical width you choose based on three things: how far away people will scan, how much data the code holds, and how many millimeters each small square, or module, ends up being. You measure the scanning distance first, then shorten the data, keep a four module margin, and print dark on light.

Keep reading for the full details and examples

At Talha Aslan and team, we hear the same question on table tents, flyers, packaging, and window posters: "How big should this QR code be?" There is no single magic number. However, if you think in the right order, the answer takes a few minutes. You can create the code itself with our free QR code generator. This guide explains what size, color, and margin to print it with.

If your code is already printed and phones refuse to read it, you have a different problem. In that case, start with our guide on why a QR code is not scanning and how to fix it. Here, we focus on sizing a code correctly before it goes to print.

What actually determines the size of a QR code?

A QR code is a grid of dark and light squares. Each square is a module. According to the version notes from DENSO WAVE, the company that invented the format, QR codes come in versions 1 through 40. Version 1 is 21 × 21 modules. Each higher version adds 4 modules per side, and version 40 reaches 177 × 177 modules.

In practice, you do not pick the version yourself; the data picks it. The same source explains that the version depends on the amount of data, the character type, and the error correction level. So a long URL means more modules. With more modules, each square gets smaller inside the same printed width.

That is why the "how big" question has three parts:

  • The overall width of the code, which depends on distance and placement.
  • The width of a single module, which depends on data length and error correction.
  • The empty margin around the code, which the standard fixes on every side.

In short, the decision gets easier once you stop thinking in inches and start thinking in modules.

What is a module, and why does it matter more than inches?

Put simply, a module is the smallest building block of the code. When a phone camera reads a QR code, it tries to tell these squares apart one by one. If the modules blur into each other in the camera image, scanning gets harder no matter how large the code is overall.

Here is a simple sample calculation. Imagine a code that is 30 mm wide, not counting the margin. If the code has 25 modules, each module is 30 ÷ 25 = 1.2 mm. If you squeeze 49 modules into the same 30 mm, each module drops to about 0.61 mm. In other words, two codes that look the same size from a distance can differ in readability by almost half.

DENSO WAVE uses the same logic on its code size calculation page. It multiplies the module count by the module width and then adds the margin. For example, a 400 dpi printer with 4 dots per module gives a 0.254 mm module. A version 3 code with 29 modules then measures 7.366 mm. That example shows how small a code can technically get. For a marketing code that people scan with a phone from a distance, however, you want much larger modules.

How does scanning distance relate to QR code print size?

As distance grows, the camera sees each module as smaller. Therefore a code that people scan from farther away needs bigger modules and a bigger overall width. The relationship is roughly linear. If you double the distance, you should roughly double the code.

A common rule of thumb in the industry says the code width should be about one tenth of the scanning distance. This rule is not part of the ISO standard, and it is not a guarantee. We use it only as a first estimate, because camera quality, lighting, angle, and module count all change the outcome. The rule also assumes the code holds short, simple data.

On the other hand, a code can also be too big. The DENSO WAVE FAQ page notes that a scanner may no longer read a code if you make it too large. On a flyer that people scan up close, a huge code may not fit the camera frame, so the user has to step back. The goal is not the biggest code. It is the code that fits the reading distance.

In practice, ask one question first: where will the person stand when they scan? A seated diner and a pedestrian looking at a shop window from across the sidewalk need very different sizes.

How big should a QR code be on a table tent, poster, or window?

The table below applies the "one tenth of the distance" starting rule to common placements. These distances are sample scenarios, so measure the real distance at your own location. The module column divides the code width, without margin, by a short URL with 25 modules.

Placement (sample scenario)Estimated scanning distanceStarting code widthModule width at 25 modules
Business card or flyer8 to 10 in (20 to 25 cm)0.8 to 1 in (2 to 2.5 cm)0.8 to 1 mm
Restaurant table tent12 to 16 in (30 to 40 cm)1.2 to 1.6 in (3 to 4 cm)1.2 to 1.6 mm
Shelf tag or product display20 to 31 in (50 to 80 cm)2 to 3.1 in (5 to 8 cm)2 to 3.2 mm
Wall poster5 to 6.5 ft (1.5 to 2 m)6 to 8 in (15 to 20 cm)6 to 8 mm
Shop window6.5 to 10 ft (2 to 3 m)8 to 12 in (20 to 30 cm)8 to 12 mm

These values are starting ranges based on field experience, not a guarantee. For example, if your URL is long and the code grows to 37 modules, each module shrinks by roughly a third at the same width. In that case you either shorten the data or print the code larger.

If you have not yet decided how diners will use the code at all, our article on choosing between a restaurant mobile app or a QR menu covers that decision in detail.

How does URL length change the QR code print size?

First, every character you put into the code takes up space. So as the URL gets longer, the version grows, the module count rises, and each module shrinks inside a fixed print area. We calculated the values below with a standard encoder, keeping a 4 module margin on every side. The URLs are placeholders.

Encoded URL (sample)LengthLMQH
https://example.com19 bytes25 × 2525 × 2525 × 2529 × 29
https://example.com/m21 bytes25 × 2525 × 2529 × 2929 × 29
Long menu URL with UTM parameters79 bytes37 × 3737 × 3745 × 4549 × 49

The table makes one point clear. When you encode the long URL at level H, the module count almost doubles. Moreover, that difference turns straight into lost readability on paper.

Adding UTM parameters for campaign tracking makes sense. Still, hiding them behind a short redirect keeps the code simple. We explain how UTM tagging works in our guide to what UTM parameters are. For short link options, our URL shortener comparison is a useful next read.

Do static and dynamic QR codes print at different sizes?

Yes, indirectly. Specifically, a static code writes the destination URL straight into the pattern. A dynamic code usually holds a short redirect URL and lets you change the real destination later. As a result, the text inside a dynamic code is often shorter, and the module count drops.

That said, a dynamic code ties you to a redirect service. If the service shuts down or your plan expires, every printed code may stop working. We compare the pros and risks of both approaches in our article on static vs dynamic QR codes. Here we only want to flag the effect on size.

For many businesses, a short path on your own domain, such as example.com/m, is a balanced middle ground. The code stays short, and the destination stays under your control.

What is the quiet zone, and why should it be 4 modules?

Put simply, the quiet zone is the blank margin on all four sides of the code where nothing else appears. The DENSO WAVE code size page states plainly that a QR code requires a margin four modules wide on every side.

This margin tells the camera where the code starts and ends. If you place text, a frame, a photo, or a pattern right next to the code, the reader can confuse the edge. Sadly, this is also the area designers trim most often, because empty space looks like waste at first glance.

Sample calculation: if your module is 1.2 mm, the quiet zone is 4 × 1.2 = 4.8 mm on each side. A 30 mm code therefore needs a square of about 39.6 mm including margins. Treat this space as part of the code in your layout file, and plan the page around it.

  • The quiet zone should match the light background color of the code.
  • If you add a frame, draw it outside the quiet zone.
  • On prints with trim, keep the code well away from the cut line.

Which error correction level should you choose?

QR codes can rebuild their data even if part of the code is dirty or damaged. This feature is error correction, and it has four levels. The DENSO WAVE standards page lists the approximate recovery rates:

LevelCodewords it can restoreTypical use
LAbout 7%Clean setting, lots of data, smallest code
MAbout 15%Most printed marketing work
QAbout 25%Surfaces that may get dirty or worn
HAbout 30%Harsh settings and codes with a logo

The DENSO WAVE error correction page says level M is the most frequently selected. It also suggests Q or H for factory settings where codes get dirty, and L for clean settings with a large amount of data. In short, M is a good starting point for most menus, flyers, and posters.

Is a higher error correction level always better?

No. A higher level stores more backup data, which means more modules. DENSO WAVE notes that raising the level improves correction but also increases the code size.

Look back at the earlier table. The long URL needs 37 modules at level M but 49 modules at level H. If you print both at 30 mm, the module drops from about 0.81 mm to about 0.61 mm. So the damage resistance you gain can cost you readability through smaller modules.

For that reason, match the level to the setting:

  • Indoors, on a protected surface, M is usually enough.
  • Outdoors, where rain, sun, and friction wear the print, Q is safer.
  • If you plan to put a logo in the middle, consider H and print the code larger.

This way you balance level and size on purpose instead of by accident.

How does adding a logo affect QR code print size?

Specifically, a logo covers part of the code. The code tries to make up for that loss with its error correction budget, but the budget has limits. The DENSO WAVE FAQ states that overlaying artwork can damage a code, and a damaged code may not scan at all.

If you want a branded code, follow this order. First, choose level H. Next, keep the logo small and centered, and never touch the three large position squares in the corners. Finally, print the code a bit larger than the plain version, because level H already raised the module count.

Also, a logo is not always necessary. Placing your brand name and a short call to action next to the code, such as "Scan to see the menu," often builds more trust than a logo. In addition, the code stays intact and reads easily even at small sizes.

What contrast and color rules apply?

The safest combination is a dark code on a light background. For example, the DENSO WAVE FAQ recommends black on white as the basic choice. The same page gives an example: a red QR code on a white background cannot be read.

Packaging guidance points the same way. The GS1 New Zealand QR code quick start guide advises dark colors on a light background and recommends avoiding red and orange. Its reason is that many scanners use red light and may not detect those colors.

If you want to use a brand color, pick a dark shade and keep the background light. To see how far apart two colors are, you can use our color contrast checker as a rough guide. Keep in mind that it calculates a ratio designed for on-screen text. It is not an official threshold for QR codes, so a real print test still has the final say.

If you want the bigger picture on contrast in layouts, our article on how to use contrast in design covers it in more depth.

Can you print an inverted QR code with a light code on a dark background?

It is a risky choice. The GS1 New Zealand guide advises against inverting colors, meaning a light code on a dark background, because traditional scanners read the darker color. Some phone cameras can handle an inverted code, but you cannot count on that for every device.

If your design is dark and you still need a code, the robust fix is simple. Place the code, together with its quiet zone, inside a white or very light box. The rest of the page stays dark, while the code keeps the classic dark on light layout.

Likewise, stay away from gradients, photos, and patterned backgrounds. If the background is light in one corner and dark in another, the camera sees different contrast in each area. Consequently, part of the code reads while another part disappears.

How do paper, material, and surface affect scanning?

The same file can behave differently on different materials. Gloss lamination reflects light and can make the camera see part of the code as a white glare. A matte finish lowers that risk.

Transparent surfaces, however, need extra care. The DENSO WAVE FAQ says codes on transparent bags are rather difficult to read. Its advice is to print a white background along with the dark areas or to use an applied label. Flattening the bag also reduces distortion.

Curved surfaces also bend the code. On a bottle, mug, or cylinder, the wider the code, the farther its edges curve away from the camera. In that case, place the code on the flattest part of the surface and keep the width within what the curve allows.

  • Matte paper or matte finish: less glare and the easiest scanning.
  • Gloss finish: test under the lighting angles you expect.
  • Transparent material: print a white base behind the code.
  • Fabric and textured surfaces: use larger modules and test the print method.

Why do print resolution and file format matter?

If the edges of the code are not crisp, modules bleed into each other. That is why you should use a vector format for print files. SVG lets you scale the code to any size without loss. PNG, on the other hand, is pixel based. If you stretch a small PNG onto a large print, the edges blur.

The printer's limit counts as well. The DENSO WAVE FAQ says the minimum printable module size on a common laser printer is about 0.17 mm. That is a floor, not a target. For a marketing code that people scan comfortably with a phone, keep the module several times larger.

When you send files to a print shop, check these points:

  1. Deliver the code as a vector file (SVG or PDF).
  2. Scale the code proportionally in your design app so the width and height stay equal.
  3. Keep the dark modules in one solid dark color, ideally pure black.
  4. Leave the quiet zone inside the file and do not crop it.

What sizes can you use as a reference on packaging and labels?

On packaging, GS1 standards set the direction. The GS1 New Zealand quick start guide lists a module width (X dimension) for QR codes powered by GS1 of 0.396 mm minimum, 0.495 mm target, and 0.990 mm maximum. The same guide also requires a quiet zone of 4 modules on all four sides.

These values apply to codes that carry product identity, such as GS1 Digital Link. If your code only points to a campaign page, they are not binding. Still, they give a sensible lower bound for product packaging. Always check the current values in the official GS1 documentation.

Sample calculation: if your code has 25 modules and you use the GS1 target value of 0.495 mm, the code measures 25 × 0.495 ≈ 12.4 mm. With the quiet zone, (25 + 8) × 0.495 gives a square of about 16.3 mm. That size makes sense when someone holds the product and scans up close. For a code that people scan from the shelf, you go back to the distance rule.

How do you prepare the right QR code print size step by step?

Now let us turn the theory into practice. If you follow these steps in order, you end up with a print ready code with a known size.

  1. Stand where people will scan the code and measure the distance with a tape.
  2. Shorten the destination URL as much as possible, for example with a short path on your own domain.
  3. Open the QR code generator, choose the URL type, and enter your short URL.
  4. Leave error correction at M. Pick Q or H for outdoor use or a logo.
  5. Choose a dark code on a light background. The tool warns you if the colors get too close.
  6. Download the SVG file for print.
  7. Use the one tenth rule to find a starting width, then work out the module width.
  8. Print a test copy at actual size on the actual material.

The tool adds the quiet zone to the file for you, so you only need to avoid trimming it in your layout. When you build campaign URLs, you can use our UTM builder and then put the long URL behind a short redirect.

Which tests should you run before printing?

A code that looks perfect on screen can still fail on paper. So before a full print run, make a small test print and check each item on this list.

  • Did you print the code at actual size on the real material?
  • Have you scanned it with at least two different phones, ideally on different operating systems?
  • Did you test from the planned distance and from a little farther away?
  • Have you tried it at an angle and in dim light?
  • Does it open the correct page, and does that page load fast on mobile?
  • Do the UTM parameters show up correctly in your analytics tool?
  • Did trimming or design elements damage the quiet zone?

If the code struggles in testing, shorten the data first and then enlarge the code. Leave color and background issues for last, because the first two steps fix most problems. It also helps to ask someone else to test, since they notice details you overlook because you already know the code.

How do placement, angle, and light affect scanning?

Where you mount the code matters as much as its size. For example, if the code sits far above or below eye level, people scan it at an angle, and that angle squeezes the modules. Therefore place the code as close to eye level as you can.

Light is also decisive. A glossy surface under a direct spotlight reflects, while a code in shadow loses contrast. Check how a code on a shop window looks from outside during the day, because reflections on the glass can wipe it out completely.

Also think about whether people can physically get close to the code. At a crowded entrance, or on a wall with a table or shelf in front of it, people may stand farther away than you planned. So measure the distance at the real location, not at your desk.

Scanning on the move is a separate case. People see a code at a bus stop, on a moving walkway, or from a car for only a few seconds. In such spots, a bigger code alone is not enough. You also need to give people a clear reason to stop and a comfortable place to stand while they scan.

What are the most common QR code print size mistakes?

The mistakes we see on printed work mostly fall into a few patterns. The list below sums up the most common ones:

  • Shrinking the code to fit leftover space instead of sizing it for distance.
  • Encoding a long URL with parameters directly and inflating the module count.
  • Trimming the quiet zone or placing text right next to the code.
  • Printing the code in a light color, in red, or inverted.
  • Stretching a low resolution PNG onto a large print.
  • Testing only on screen and never trying the printed version.

Do not forget the message either. Without a short line that tells people why they should scan, many will not bother to open the camera. A clear prompt such as "Scan for the menu and today's specials" raises the chance of a scan regardless of size.

What these mistakes share is timing: people notice them after printing, not before. A few minutes of test printing can save a run of hundreds of copies.

What happens if someone sticks a fake code over your printed QR code?

This risk has nothing to do with size; however, it affects printing directly. In public places, bad actors can paste a fake sticker over a real code and send users to a different page. This type of fraud is quishing.

To protect your printed codes, write the destination URL next to the code in a short, readable form, so users can compare it with the page that opens. In addition, check your codes regularly and print them on a surface that is hard to scratch or cover. We cover the topic in detail in our article on what quishing is and how QR code scams work.

Size plays an indirect role here too. A tiny code is easy to cover with a sticker of the same size. Framing the code as part of the design, with your brand name and short URL beside it, makes a fake sticker stand out. So good placement builds trust as well as readability.

In short, what order should you follow to find the right size?

The right size comes from a few decisions in sequence, not from a single formula. To sum up, follow this order:

  1. Measure the distance at the real location.
  2. Shorten the data to lower the module count.
  3. Choose the error correction level that fits the setting.
  4. Find a starting width from the distance, then calculate the module width.
  5. Leave a 4 module quiet zone on every side.
  6. Print a dark code on a light background from a vector file.
  7. Test at actual size, on the real material, with more than one phone.

Once you follow this order, "how big should it be?" stops being a guess and becomes a measurable decision. As a result, every code you print has a better chance of scanning on the first try from the distance you planned.

Core guide: What Is Digital Marketing? Its types, examples and how it is done, on one page with an interactive film that travels through the brain.

Frequently Asked Questions

What is the minimum size for a printed QR code?
There is no single official minimum; the right size depends on scanning distance and module count. A few centimeters can work for a business card or flyer that people scan up close. A common starting point is a code width of about one tenth of the scanning distance. That is not a guarantee, so print the code at actual size and test it.
Will a QR code scan without a quiet zone?
Sometimes, but you should not rely on it. DENSO WAVE requires a blank margin four modules wide on every side of a QR code. This margin helps the camera find the edge of the code. If you place text, a frame, or a pattern right next to it, some phones may read it slowly or not at all.
Which error correction level is best for print?
Level M is a good starting point for most printed marketing work, and DENSO WAVE notes it is the most frequently selected level. If the code may get dirty or worn, or if it carries a logo, choose Q or H. Keep in mind that higher levels add modules, so you should print the code a bit larger.
Can I print a QR code in color?
Yes, as long as you use a dark shade on a light background. DENSO WAVE recommends black on white and gives the example that a red code on a white background cannot be read. GS1 guidance also advises avoiding red and orange. Always test a colored code with a few phones before a full print run.
Should I download a PNG or an SVG for print?
Download a vector file such as SVG for print. A vector file scales to any size without loss and keeps module edges sharp. PNG works well for screens, social media, and small prints. However, if you stretch a small PNG onto a large poster, the edges blur and the code becomes harder to scan.
Why does a long URL make a QR code harder to scan?
A long URL does not shrink the code itself, but it raises the module count. When you fit more squares into the same printed width, each square gets smaller, and the camera struggles to separate them. Shortening the URL, for example with a short path on your own domain, gives a code that scans much more easily at the same size.
  • QR code
  • QR code print size
  • quiet zone
  • error correction
  • print design
  • contrast
  • QR code generator
Share:
Talha Aslan

Google Partner digital marketing expert. Hands-on with SEO, Google Ads, web design and e-commerce projects since 2012; every post here comes from that experience.

Next project

Get a quote for your project.

Your brief goes straight to Talha Aslan and team: strategy led by Talha, delivery by an experienced team. We reply the same day and send the scope, timeline and price as a written quote within 1 business day.