Small and blurry are two different failures with overlapping causes. Work out which one you have.
Is it blurry or just small?
Look closely at the printed code. If the edges of the squares are soft or jagged, it is blurry. If the squares are crisp but tiny, it is small. Both can be true.
Blurry, cause 1: an upscaled bitmap
A 200 px PNG stretched to 8 cm has 25 pixels per centimetre. Every module edge is interpolated into a grey smear. Vector formats have no pixels.
Do this
SVG or PDF export placed in the layout at any size.
Not this
A screenshot of the code pasted into a document and dragged bigger.
Fix: re-export as SVG or PDF, or as PNG at 300 pixels per inch of the final size. See export formats.
Blurry, cause 2: modules smaller than the printer can hold
Ink spreads. Below about 0.5 mm per module, adjacent squares bleed together. Office printers and receipt printers are worst; commercial litho is best.
Do this
Version 3 code at 3 cm: modules of 0.8 mm.
Not this
Version 9 code at 3 cm: modules of 0.45 mm, fuzzy on a laser printer.
Fix: shorten the content so the version drops, or print larger. The size calculator shows module size for any combination.
Blurry, cause 3: JPEG
JPEG compression blurs sharp edges by design. Never export a QR code as JPEG.
Small, cause 1: designed for the wrong distance
A code that is fine on a leaflet at 40 cm is invisible on a poster at 3 m. Minimum size is the scan distance divided by ten. The size guide has the table.
Do this
20 cm code on a poster read from 2 m.
Not this
5 cm code on the same poster, because it looked neat in the layout.
Small, cause 2: the long URL again
A long URL forces a high version, and a high version at a fixed printed size means tiny modules. This is the single most common root cause of both small and blurry codes.
Fix: use a short link, a dynamic code, or drop the tracking parameters. Dynamic codes track scans without them.
Common mistake
Fixing blur by adding a sharpen filter to the PNG. Sharpening adds halos at every edge and makes decoding worse. Export properly instead.
Try it in QR Studio
QR Studio shows the version and the module size at your chosen export size and warns when modules fall below 0.5 mm.
Checklist
- Exported as SVG or PDF, or PNG at 300 DPI of final size
- Not JPEG
- Module size above 0.5 mm, checked with the calculator
- Content shortened; version 6 or below for small prints
- Size at least the scan distance divided by ten
- Test sheet printed on the final stock
Try it yourself
Paste the URL and see which version it forces. Then paste a shortened version and watch the module count drop.