QR code blurry when printed
SmartQRCode editorial · Updated October 2026
A QR code blurry when printed is almost never the phone. A 400 px preview upscale, uncoated stock spread, a second-generation photo reprint, or gloss flare on coated board smears module edges into grey the camera cannot binarise. Replace the file with vector at final size, then confirm with a test scan of the press proof.
Why a QR code blurry when printed fails at the lens
Cameras want hard black-white transitions. Grey halos from interpolation look like damage. Error correction can restore missing modules; it cannot invent edges that were never plated. ISO correction levels (L about 7 percent through H about 30 percent) survive scuffs and a centre logo. They do not survive a screenshot.
The on-screen preview is the wrong source. It encodes /qr-preview and is a raster of UI pixels. Download PNG, JPG, SVG, or PDF and send the printer SVG or a high-resolution PDF of the millimetre size that will ship.
Packaging makes this worse: flexo, shrink, and curves distort modules. Test-scan the formed pack, not the flat proof. A website hop that scans on the PDF and fails on the bottle is a process problem.
A one-off flyer that will never be counted is a Canva static export if you send that export at the real size. Hosting does not sharpen blur.
Upscaling a 400 px preview to poster millimetres
Cause: the layout pulled a small PNG from email or the dashboard thumbnail and stretched it to a 20 cm panel. Each module becomes a soft blob. On a phone screen at 100 percent it still looks "QR-like."
Fix: export SVG for anything that will scale, or a 300 dpi PNG whose pixel box matches the printed millimetres. Offset and flexo want vector. Spot-colour jobs should treat dark modules as 100 percent of one ink, not a four-colour build that fringes.
Confirm: zoom the press PDF until one module fills the screen. You should see squares, not gradients. Print a 10 cm proof and scan from about 30 cm. If the proof fails, do not order 5,000. If it passes and the poster fails, the large-format RIP resampled the file; send vector.
Uncoated stock spreading toner into neighbouring modules
Cause: uncoated paper drinks ink. Modules grow until the quiet zone and the small ones between finders collapse. Designers then drop error correction to "make it less dense," which removes the only recovery you had.
Fix: keep correction at a level that matches scuff risk, usually H if a logo sits in the middle. Compensate with a slightly larger symbol or a coated stock. Do not shrink modules to save a millimetre on a flyer.
Confirm: scan the uncoated sample and a coated drawdown of the same file. If only coated scans, stock spread was the cause. Reprint on coated or enlarge the symbol. A logo mark on uncoated stock needs even more millimetres because the mark already spends correction budget.
Photographing a tent card and reprinting that photo
Cause: someone snapped the first print on a table and dropped that photo into the next layout. Each generation adds blur. Dust, keystone, and JPEG ringing become part of the "code."
Fix: always place the original vector or the original high-resolution raster. Duplicate the generator download, not a photograph of a previous job.
Confirm: compare module corners on the new PDF with the generator export. If corners are round and the quiet zone is brown from the table, you plated a photo. Replace and test-scan the new proof. Do not "increase contrast" in an editor; that clips finders.
Gloss flare under a downlighter washing module edges
Cause: gloss coated board reflects overhead light. A code that scanned on a desk fails on a table under a downlighter because the camera sees a specular sheet, not modules. This looks like blur in a photo of the print even when the plate is sharp.
Fix: matte laminate or a less glossy varnish on the symbol area. Keep the code off the wettest part of a menu sleeve if sleeves go high-gloss.
Confirm: scan under the real restaurant lights, phone parallel to the card. If it only works when you tilt to kill the flare, specify matte on the next job. That is a finishing change, not a new destination.
Vinyl cutters and laser cutters need vector paths. A PNG sent to a cutter is traced, and tracing QR modules produces broken corners that look like blur in a phone photo even when the plate on paper was sharp. If this job is a cut sign, send SVG and ask for a sample cut of one module row before the full job.
Offset shops that still want a 300 dpi TIFF should receive a raster of the final millimetre size, not an upscaled dashboard thumbnail. Ask them to output a 10 cm contract proof on the named stock. Scan that proof at 30 cm. If it fails, the RIP resampled; insist on vector or a native 300 dpi file. Do not approve a 5,000 run on a PDF that looks sharp at 12 percent zoom.
Apparel and sewn patches need a larger symbol than paper at the same reading distance because fabric stretches, seams interrupt modules, and wash cycles abrade ink. A cotton care-label code that scanned in the studio can fail after the first wash. Test-scan a washed sample if the code must survive laundry. Hosted destination edits will not restore abraded modules.
When vector replacement is the only remaining path
If a fresh SVG at final size, coated or compensated stock, no photo-of-a-photo, and matte still fail, check formed packaging and stretch. Fabric and shrink wrap need a larger symbol than paper at the same reading distance.
A Google one-off or Canva static file is the right generator when you will never edit or count, provided you still export at print resolution. A hosted SmartQRCode type does not rescue a blurry plate. It only lets you change the URL after a sharp plate exists.
Reprint once from vector. Test-scan that piece. Stop iterating JPEGs.
Questions this raises
A 400 px preview stretched to a 20 cm poster interpolates grey into modules. The phone screen hid that. Vector SVG or a 300 dpi raster of the final millimetres does not.
SVG or PDF with vectors for offset and flexo. For toner or inkjet, a 300 dpi or higher PNG or PDF at the final millimetre size. Never a screenshot of the dashboard preview.
Higher correction restores missing modules from damage. It does not restore edges that have been interpolated into grey. Blur is a file and process problem, not an L versus H setting.
Scan the actual printed piece at guest distance, under the real lights. If copy paper from your office scans and the press sheet does not, the plate or stock is the cause.
No. Each generation adds blur. Flattening a photograph of a table tent into a new layout is how a once-sharp symbol becomes unread.
Keep going
The tools and playbooks this post refers to, one click away.
Make the code this post is about
$1.99 for 7 days, then a paid plan. Pick a type, brand it, and edit the destination whenever you like, even after it is printed.