Updated 2026-10-26
QR Code Size and Error Correction Cheat Sheet
Use this cheat sheet before printing QR codes on flyers, menus, labels, packaging, posters, classroom material or event signage. It covers how big to print, which error correction level to choose, and how to test a code before a full print run.
Cite or embed this resource
Use this attribution when referencing the checklist in a blog post, tutorial, community answer, or internal documentation.
Start with scan distance
Size depends on how far away people will be when they scan. A common rule of thumb is a ratio of about 10 to 1: for every metre of scanning distance, make the code roughly 10 cm wide. A code on a table tent, scanned from 30 to 40 cm, works at 3 to 4 cm. A poster read from two metres across a corridor needs about 20 cm. Close-range items have a floor, too: below about 2 x 2 cm, many phones struggle to focus and pick out the modules. When in doubt, go larger. Nobody complains that a QR code was easy to scan.
Content length drives density
Every extra character adds modules, the small squares that make up the code. A short URL produces a simple, open pattern; a long tracking link or a full contact card produces a dense one. At the same printed size, a dense code has smaller modules, which are harder to read from a distance or on rough paper. So shorten what you encode. Use a clean URL such as yoursite.com/menu instead of a link with long parameters, and leave optional fields out of contact cards. If you cannot shorten the content, print the code bigger.
Error correction levels explained
QR codes include redundant data so they can still be read when part of the pattern is damaged or covered. There are four levels. L can recover about 7% of the code, M about 15%, Q about 25% and H about 30%. Higher levels add more modules, so the pattern becomes denser at the same content length. For clean indoor prints without a logo, M is a sensible balance. For outdoor signs, stickers that may get scuffed, or codes printed on textured material, use Q or H. With a logo in the middle, use H. The Online Toolsz generator lets you choose any of the four, and H is the default.
Keep contrast simple
Dark modules on a light background remain the safest choice. Black on white is ideal, and dark navy, deep green or brand colours work if they are clearly darker than the background. Avoid light-on-dark inverted codes, because some scanner apps still cannot read them. Skip gradients across the pattern, pale pastels and busy photographic backgrounds. Online Toolsz lets you set the foreground and background colours separately; if you change them, print a test and scan it under ordinary indoor light, not only on your bright monitor where everything looks sharp.
Don't crop the quiet zone
A QR code needs an empty margin around it, called the quiet zone, so the scanner can tell where the code ends and the surrounding design begins. The standard is four modules wide on every side. Online Toolsz includes this margin in the downloaded PNG. The problem usually comes later, in the design file, when someone trims the white edge to save space or places the code against a coloured block, a border or text. Keep the margin and keep its colour the same as the code's background. That one habit fixes a surprising number of 'it won't scan' complaints.
Use logos carefully
A logo in the centre covers modules, and the code relies on error correction to rebuild them. That is why H matters with a logo: it gives the most room for loss. Keep the logo modest in size, keep it in the centre, and avoid covering the three large position squares in the corners. Online Toolsz places an uploaded logo in the centre and clears the modules behind it so the edges stay crisp. A logo on a very dense code, such as a long URL at a small size, leaves little margin for error, so test it with more than one phone before printing.
Materials and printing
Paper and finish affect scanning as much as size does. Glossy lamination reflects ceiling lights straight into the camera, so matte finishes are safer for menus and signage. Curved surfaces like bottles and cups distort the pattern; keep the code small relative to the curve or place it on a flat label. Textured card and fabric blur fine modules, so print larger and use a higher error correction level. Low-resolution printing softens edges, which is why you should place the PNG at its intended size in your layout and check that the edges look sharp, not fuzzy, before sending the file to print.
Test like a real user
Scan your printed sample, not the image on your screen, with at least two phones, ideally one newer and one older model. Use the phone's built-in camera app, since that is what most people will use. Scan from the real distance and angle: from a seat for a table code, from across the room for a poster. Try it in the actual lighting, which may be dimmer or warmer than your desk. Then check the destination itself: does the page load quickly on mobile data, and does it make sense on a small screen? A code that scans to a broken page is still a failure.
Common failures and quick fixes
Code will not scan at all: check contrast and the quiet zone first, then try printing larger. Scans close up but not from a distance: the modules are too small, so increase the size or shorten the content. Works on one phone but not another: the code is probably near its limits, so raise the error correction level or remove the logo. Scans but opens the wrong page: the code is static, so the content has to be fixed and the code reprinted, which is why pointing at a page you control is the safer habit. Fails on glossy menus only: switch to a matte finish.
Checklist
- Content is as short as possible: a clean URL or only the contact fields you need.
- Printed size follows the distance rule, about 10 cm per metre of scanning distance.
- Nothing is printed smaller than about 2 x 2 cm.
- Foreground is clearly darker than the background, with no inverted colours.
- The quiet zone is intact and not cropped or overlapped in the design.
- Error correction is H if there is a logo, and Q or H for outdoor or rough surfaces.
- The logo is centred, modest in size and clear of the three corner squares.
- The finish is matte where lights may reflect off the surface.
- A printed sample scanned on at least two different phones.
- Tested at the real distance, angle and lighting.
- The destination page loads well on a phone over mobile data.
- A short text label next to the code tells people what they will get when they scan.
Quick reference
| Use case | Recommended | Why |
|---|---|---|
| Business card | At least 2 x 2 cm; error correction M | Scanned at arm's length, but the code must stay big enough for the camera to focus. |
| Product label or sticker | 2 to 2.5 cm; very short content; Q | Little space and frequent scuffs, so keep the pattern simple and add redundancy. |
| Flyer or printed menu | At least 3 x 3 cm; M, or H with a logo | People scan quickly, often in uneven light, from around 30 cm away. |
| Table tent or counter sign | 3 to 5 cm; M or Q | Scanned from a seat or at a slight angle, often under warm, dim lighting. |
| Wi-Fi card | 3 to 4 cm; M or Q | Wi-Fi details make a moderately dense code; a little extra size makes it reliable. |
| Contact card (vCard) | At least 3 x 3 cm; M; only essential fields | Contact cards produce dense codes, and every extra field shrinks the modules. |
| A4 or Letter poster | About 10 cm per metre of scan distance | At two metres, a 20 cm code keeps modules large enough to resolve. |
| Large banner or window | Scale with distance; Q or H outdoors | Long distances, glare and weather all eat into the margin for error. |
| Code with a logo | Error correction H; keep the logo small and centred | The covered modules have to be rebuilt from redundant data. |
| On-screen (slides, TV) | Large, high contrast, shown long enough to scan | Screens add glare and viewing distance; people need time to raise their phones. |