QR codes · Published

Why won't my QR code with a logo scan?

A QR code with a logo usually fails to scan for one of a few reasons: the logo covers too much of the code, the error correction level is too low, the colours do not contrast enough, or the code is printed too small or without enough blank space around it. Most of these problems can be fixed in a few minutes before printing. The sections below explain each cause and finish with a checklist for testing.

How a logo fits inside a QR code

A QR code is made of small black and white squares called modules. When you place a logo in the middle, it hides some of those modules. The code can still be read because QR codes include error correction: extra data, built into the pattern, that allows a scanner to rebuild missing or damaged parts.

There are four error correction levels. Each one can recover roughly the following share of damage:

Level Approximate recovery
L (Low) 7%
M (Medium) 15%
Q (Quartile) 25%
H (High) 30%

A logo counts as damage. If it hides more of the code than the chosen level can recover, the scanner will fail. That is why a code with a logo should use level H. Our QR Code Generator switches to level H automatically as soon as you add a logo.

Higher error correction adds more modules, so the code becomes denser. That is a fair trade when a logo is present.

Keep the logo modest

Even at level H, the logo should cover well under the 30% limit. Scuffs, glare, curved surfaces and low-quality printing also use up the error correction budget, so a logo that sits right at the limit leaves nothing spare for real-world conditions.

Our generator keeps the logo to about a fifth of the code’s area. Within that limit, a few things help:

  • Use a simple, high-contrast version of your logo, such as a single-colour mark rather than a detailed illustration.
  • Keep the logo centred. The three large squares in the corners (the finder patterns) tell the scanner where the code is and which way up it is, so they must never be covered.
  • Allow a small clear border around the logo so it does not blur into the surrounding modules.

Colour contrast

Scanners look for the difference between dark and light modules. The safest choice is a dark code on a light background, such as black or navy on white. Brand colours are fine as long as the code stays clearly darker than its background.

Problems to avoid:

  • Pale colours such as light grey, yellow or pastel shades for the code itself.
  • Two colours of similar brightness, such as red on green or mid-blue on mid-grey.
  • Inverted codes, where a light code sits on a dark background. Some phone cameras read these, but many scanner apps and older devices do not.
  • Gradients or busy background images behind the code.

Our generator warns you when contrast is low and will not let you create a code that is lighter than its background.

Leave a quiet zone

The quiet zone is the blank margin around the outside of the code. It lets the scanner see where the code starts and ends. The QR standard calls for a margin at least four modules wide on every side.

Our generator always includes this margin in the downloaded file. Problems usually appear later, when a designer crops the image tightly or places text, a border or a photograph right up against the code. Keep the margin clear and the same colour as the code’s background.

A code that scans well on screen can fail once it is printed small. A common rule of thumb is to print a QR code at least 2 × 2 cm for a short website link. Go larger when the content is long or when people will scan from a distance, such as a poster on a wall or a sign in a shop window.

For print, download the SVG or PDF file, or a PNG at a high resolution (our generator offers 512 to 4,096 pixels). This keeps the edges of each module sharp.

Long content makes dense codes

The more data you put in a QR code, the more modules it needs. A long web address with tracking parameters, a full contact card with several addresses, or a block of text can produce a very dense code. Dense codes need a larger print size and are less tolerant of a logo.

Where possible, shorten the content. Use a short, clean link to your page, and include only the contact fields people actually need.

Fancy patterns and corner styles

Rounded dots and styled corners can look attractive, and our generator offers three patterns and three corner styles. They change the shape of each module and finder pattern, which leaves slightly less margin for error. If a styled code is unreliable in testing, switch back to square modules and standard corners first, then reduce other risks such as logo size or colour.

Test before you print

Run through this checklist before sending a code to print, especially for large print runs or packaging:

  1. Scan the code on screen with at least three different phones, ideally a mix of iPhone and Android models, including an older one.
  2. Try both the built-in camera app and at least one separate scanner app.
  3. Check that the code opens the correct page, network or contact, not just that it scans.
  4. Print a test copy at the final size on the actual material, and scan it again.
  5. Test in realistic conditions: normal shop or café lighting, at the distance people will stand, and at a slight angle.
  6. If any scan is slow or fails, reduce the logo, increase contrast, simplify the pattern, shorten the content or print larger, then test again.

No QR code is guaranteed to scan on every device, but these checks catch most problems before they reach print.

Create your code

You can build and test a code with your logo in our QR Code Generator. It runs entirely in your browser, so your logo and content are not uploaded anywhere. If you also print barcodes, our guide to barcode size and quiet zones covers the same principles for product labels.