QR codes with a logo

Last updated 16 September 2026

Putting your logo in the middle of a QR code works, and it looks better than a bare black square. It also reduces the code's tolerance for damage, so there are limits worth respecting.

Why it works at all

QR codes carry redundancy. A portion of the data is repeated, so the scanner can rebuild what it cannot read. That redundancy is what makes a logo possible: you cover part of the code, and the error correction fills in the gap.

This is why the generator here switches to high error correction the moment you attach a logo. There is no point offering a logo option that produces codes that fail to scan.

How big can the logo be

As a rule, keep the logo under about a quarter of the code width. At a quarter, you are using a comfortable margin of the available redundancy. At a third, you are spending most of it. Past that, the code starts failing depending on lighting and camera quality, which is a miserable class of bug because it works on your phone and not on someone else's.

The generator caps the logo at roughly 26 percent of the width and pads it with the background colour. The padding matters as much as the size: a logo sitting directly against module edges blurs the boundary the scanner depends on.

What makes a good logo here

A wordmark is usually a poor choice, because text at that size is unreadable anyway and its fine strokes hurt scanning. A symbol or a single letter works better.

Colour combinations

Inverted codes, light modules on a dark background, look striking and scan badly. Many scanners assume dark modules on light. Some phone cameras cope, plenty of scanner apps do not, and you cannot tell which one a given person has.

The generator here enforces a minimum contrast ratio and refuses combinations below it. That is deliberate. A beautiful code that does not scan is worse than a plain one that does.

If you want colour, keep one side very dark and the other very light. Deep navy on off-white reads as designed rather than default, and still scans reliably.

Test before you commit

With a logo, testing is not optional. Do at least this much:

If it fails any of those, shrink the logo before you touch anything else. That is nearly always the cause.

When to skip the logo entirely

If the code will be small, if the print quality is unknown, or if the code is going somewhere it must work first time, leave the logo off. A plain code at 2cm will scan. A logo code at 2cm is a gamble. Save the branding for places where you control the print.

Make a QR code with a logo


All guides