QR Code Size for Printing: Minimum Sizes by Use
For close scanning, such as a business card or a table tent, print a QR code at about 2 x 2 cm at minimum. For anything people scan from farther away, go bigger, and always test the printed result with a real phone. The sections below explain what changes the size you need and list a short pre-print checklist.
These are rules of thumb, not guarantees. Paper, ink, lighting and the phone in the person's hand all affect whether a code scans. Treat the numbers as a starting point and confirm with a test print.
What actually decides the size you need
Three things matter more than any fixed number:
- Scanning distance. The farther the phone is from the code, the larger the code must be. A code on a business card is scanned at arm's length or closer. A code on a poster may be scanned from a couple of metres.
- Density of the pattern. A QR code is a grid of small squares called modules. More data means more modules, and smaller modules at the same printed size. A long URL makes a dense, harder-to-scan code. A short one makes a simpler code that can be printed smaller.
- Print quality. Blurry edges, low contrast, glossy glare or a rough surface all make small modules harder to read. If your print method is not sharp, increase the size.
You can control the second point by keeping the content short. A dynamic QR code on GenerateQR.link stores only a short link (https://generateqr.link/r/ followed by a code), so the pattern stays simpler than a code that holds a long URL with tracking parameters. It also lets you change the destination later without reprinting.
Rules of thumb by use
Use this table as a first draft, then adjust after testing.
| Where it is printed | Typical scanning distance | Starting point |
|---|---|---|
| Business card | Hand held, close | About 2 x 2 cm minimum, slightly larger if space allows |
| Flyer, leaflet, menu | Hand held, close | At least 2 x 2 cm, larger if there is room. Test it |
| Product packaging | Hand held, close | At least 2 x 2 cm, and test on the real item |
| Table tent, shelf label | Arm's length | Size by distance, then test |
| Poster, window sign | Standing a step or more away | Size by distance, then test from where people will stand |
| Banner, billboard, shop front | Several metres | Much larger, size by testing at the real distance |
Business cards
Space is tight, so 2 x 2 cm is the practical floor. Put the code on the back, on a plain light area, and keep the margin around it empty. If you want to share contact details, a vCard QR code holds the whole contact block, but more data means a denser pattern. Keep the card fields short, or point to a short link instead.
Flyers and menus
There is usually more room, so do not squeeze the code into a corner at the minimum size. Give it room and add a short line of text beside it that says what the person gets, for example "Scan to see the menu" or "Scan to book".
Packaging
Packaging adds problems that paper does not: curves, gloss, foil, creases and textured materials. Place the code on a flat, matte area if you can, away from folds and seams. If the surface is curved, as on a bottle or tube, test on the real item, not on a flat printout.
Posters and signs
Start from the distance. Stand where a real person would stand, hold the phone as they would, and see what size scans reliably. A code on a poster at eye level in a corridor can be smaller than a code in a shop window that people read from the pavement. When in doubt, go larger. A big code costs you a bit of space. An unreadable one costs you every scan.
Keep the quiet zone and the contrast
A code needs an empty border around it so the scanner can tell where it starts. This is the quiet zone, about 4 modules wide. Text, photos, lines or the edge of the paper inside that border can cause failed scans.
Contrast matters as much as size:
- Use a dark code on a light background. Black on white is the safest.
- Avoid inverted codes (light code on a dark background). They may not scan on every phone, so stick with dark on light.
- If you use brand colors, keep a strong difference in brightness between the dots and the background. Pale yellow on white or two similar blues can fail.
- Do not place the code over a busy photo.
Styling and logos: how far you can go
The generator on GenerateQR.link lets you change dot shapes (square, rounded, dots, diamond), corner styles (square, rounded, circle), colors, add a logo in the center and add a frame with text above or below. The generator uses the highest error correction level, H, which lets about 30% of the code be damaged or covered and still be read. That is what makes a center logo possible.
Higher error correction also makes the pattern denser, so styled codes need a little more room. Practical limits:
- Keep the logo small. Covering more of the code than needed uses up the safety margin you may need for scuffs or print flaws.
- Prefer simple dot shapes for small prints, since fancy shapes may be harder to read at small sizes. Test them.
- Keep the corner markers (the three large squares) clearly visible.
- Re-test after every styling change.
Resolution: PNG vs SVG
The file format decides whether your code stays sharp at the size you print.
- SVG is a vector format. It scales to any size without losing sharpness, so it is the best choice for print: business cards, posters, packaging, signs. Send the SVG to your printer if they accept it.
- PNG is a pixel image. It is fine for screens, documents and small prints. If you enlarge a small PNG, the edges turn soft and the code can stop scanning.
If you must use PNG for print, download it large and place it at or below its native size rather than stretching it. Never take a screenshot of a code and print that. When you design in a tool such as a word processor or design app, place the file and resize it proportionally. Do not stretch it into a rectangle, since QR codes must stay square.
Test before you print
A scan test takes a minute and saves a whole print run. Follow this checklist:
- Scan the screen version with at least two phones. Check that it opens the right page, number or app.
- Print one copy on the real paper or material, at the real size, with the real ink.
- Scan the printout from the actual distance and in the actual lighting. Try both an indoor light and daylight if the code will be used in both.
- Check the content. For a URL, open it on mobile and confirm it loads fast. For a phone code, confirm the number is correct and includes the country code. For email, SMS or WhatsApp codes, confirm the number or address and the pre-filled text.
- Test the edge cases. Try a slightly angled scan, a scan with shadow over the code, and a scan on a slightly bent surface if that applies.
- Fix, then print the full batch.
If you will be printing a code that must keep working for a long time, think about whether the destination might change. A static code cannot be edited after printing. A dynamic one can be redirected, and with a free account you can see scan totals and breakdowns by country, device, operating system and browser. The post on how to track QR code scans shows what you can see and how to read it.
When you are ready, create your code in the free QR code generator, download the SVG, and run the test printout before the full print.
Frequently asked questions
Can a QR code be too big?
Size is rarely the problem, but always test from the real scanning distance. A code that is moderately sized and well centered in the camera view is easier to frame than one that fills the whole screen.
Does a longer URL make the QR code need to be bigger?
Yes. More characters create more modules, which makes each module smaller at the same printed size. Shorten the link or use a dynamic QR code, which stores only a short redirect link.
What size should I use if I do not know the scanning distance?
Start from the 2 x 2 cm close-scan minimum or larger, print one copy and test it from the furthest realistic distance. If it scans easily there, you have enough margin.
Can I print a QR code in color?
Yes, as long as the dots are clearly darker than the background. Dark colors on a light background work. Low contrast pairs and inverted codes can cause failed scans.
Should I send the printer a PNG or an SVG?
Send the SVG if the printer accepts it, because it stays sharp at any size. If they only take PNG, export it large and do not enlarge it beyond its original size.