Skip to main content
THE PRACTICAL QR HANDBOOK

QR code not scanning?
Start here.

A code that looks right can still fail in use. Separate a decoding problem from a destination problem, then change one thing at a time.

Updated · QRCode.so

Start with the original image.

Our scanner reads the payload without opening its link automatically.

Open scanner

1. Does the code decode at all?

Upload the original downloaded PNG to the QR and barcode scanner. If it shows a value, compare that value with what you intended to encode. A decoded address followed by a browser error is a different problem from a camera that never recognizes the pattern. This first check helps you avoid redesigning a perfectly readable code when the real problem is a misspelled link.

Use the original file rather than a screenshot pasted through a messaging app. Screenshots can crop the border, while resizing and compression can soften the small squares. If the original decodes and the shared copy does not, replace the shared copy with a fresh export. If neither decodes, return to the generator, use a plain square pattern and temporarily remove the logo.

2. Simplify the design before adding decoration

Start with a dark foreground and a white background. Pale colours, transparent backgrounds over photographs, inverted colours and gradients give different scanners more work. In QRCode.so, the “Before you print” panel reports the colour contrast ratio, the symbol's module count and its reserved border. These are measurements of the design, not a certificate that the code is scannable.

An ordinary QR code needs a clear border of four modules on each side. A module is one square in the pattern. Keep text, cut lines and other artwork outside that border, even when the code looks as though it has enough space in a larger design. The export already includes a border; cropping it tightly in a document editor can remove it.

Add the logo back only after the plain code works. Error correction is useful recovery capacity, not permission to cover an arbitrary amount of the symbol. A logo that scans in a large on-screen preview may fail after printing small. Test the actual logo, colours and caption together; do not assume an earlier plain-code test still applies.

3. Check physical size and printing

More encoded data generally means a denser QR. A long URL with tracking parameters or a detailed vCard can therefore need more physical space than a short link. Remove fields you do not need, or increase the size. The QR size calculator and print resolution calculator help translate modules into dimensions and pixels, but a proof on the intended material is still necessary.

Use SVG when a designer needs to resize the artwork. For our page PDF, select the intended paper size and print at actual size. For label sheets, choose the matching named template in the label maker. “Fit to page” can change the scale and label alignment. Print a single test sheet, hold it over the blank stock and check the top, middle and bottom before committing a batch.

Test under the lighting your customers will use. Glossy lamination, curved packaging, a dim table or a display behind reflective glass can make a good digital image difficult to read. Try a flatter position, a matte surface or a larger code. Check more than one phone, at a realistic distance, rather than testing only your own newest device.

4. If it decodes, check what it contains

Website: compare the full decoded URL, including its path. Open the intended website separately and check for a removed page, login wall or broken redirect. A scanner recognizing a URL does not prove that the destination is trustworthy or that the browser can reach it.

Wi-Fi: verify the network name, password and security option in the Wi-Fi generator. Capitals and spaces matter. Use the password visibility button to inspect your entry. Anyone with the code can decode its password, so a guest network is usually the better choice.

Contact card: keep the phone country code, name and email correct, then test importing the contact on your intended phone. Recognizing the symbol and interpreting its contact fields are separate steps. A reader can decode text successfully while a particular contacts app handles a field differently.

A repeatable final check

Save the original export. Scan it, inspect the payload, print one copy at the final size, and scan that copy where it will be used. Record which file and settings you tested so a later logo or URL change does not accidentally reuse an old proof. For a shop, also walk through the customer journey after the scan: menu, table choice, ordering and staff confirmation.

Technical references

The clear-border guidance follows DENSO WAVE's QR code area guidance. Our colour ratio uses relative luminance; the warning threshold is a design heuristic rather than a barcode verification standard. For a regulated or retail supply chain, ask the recipient which barcode verification requirements apply.

Frequently asked questions

Why does my QR work on screen but not on paper?

Printing changes physical size, edge sharpness and contrast. Check the actual printed code at its final size, turn off fit-to-page scaling for measured labels, preserve the blank border and try matte paper to reduce glare.

Can I fix a QR code after it has been printed?

A static QR pattern cannot be edited. If its encoded URL is correct and you control that website, you can repair or redirect the destination there. A managed link can be updated through the service that hosts it. An incorrect static payload or damaged print usually needs a new code.

Does a high contrast ratio guarantee a scan?

No. Our colour ratio is only a design hint. Density, clear space, logo placement, printing, lighting and the scanner all matter. Only a test of the actual output on the intended devices checks the full result.

Create a fresh QR code