How to Add a Logo to a QR Code (Without Breaking It)

Branded QR codes look good. A logo in the centre of a code immediately tells people it's intentional, not a random pattern. But there's a right way to do it and several very common wrong ways that produce codes that simply don't scan. This guide explains the actual mechanics.

Why QR codes can survive a logo at all

QR codes aren't just a two-dimensional barcode. They include redundant data, built in specifically so the code can be read even if part of it is damaged, dirty, or obscured. This redundancy is controlled by the Error Correction Level setting, which comes in four variants:

The trade-off is that higher error correction means more data in the code, which means a denser pattern and slightly more modules (the individual black-and-white squares). A Version 1 QR code is 21x21 modules. As data and error correction increase, the version number climbs, adding 4 modules per side per version. A Version 5 code is 37x37 modules, and so on up to Version 40 at 177x177.

For adding logos, you need Level H. This is non-negotiable. At Level L or M, a logo that covers even 10% of the code will typically cause scan failures on real devices.

The 30% rule: how large can the logo be?

With Error Correction Level H, up to roughly 30% of the code's data modules can be obscured and the code will still scan. In practice, "30% of data modules" translates to a logo that covers about 20-25% of the total code area when you account for the quiet zone (the white border) and the finder patterns (those three squares in the corners, which you must never cover).

A workable rule of thumb: keep the logo to no more than a quarter of the visual centre of the code. If the code is 400px wide, the logo should be no more than about 100px wide.

I'd actually suggest staying around 20-25% in practice, not pushing to 30%. The theoretical 30% assumes ideal scan conditions. Real life involves older phone cameras, glare, printing variation, and slight misalignment. Give yourself headroom.

The finder patterns: hands off

The three square patterns in the top-left, top-right, and bottom-left corners are finder patterns. They tell the scanner where the code starts and ends, and how to orient it. They are not covered by error correction. If your logo touches any of these, the code will fail. Always.

Keep the logo centred in the middle of the code, well away from the corners.

Preparing your logo for overlay

Not every logo works well at small sizes in the centre of a QR code. A few considerations:

Simplify it

If your logo has thin lines, fine detail, or complex gradients, consider using a simplified version for this purpose, perhaps just the icon element without the wordmark, or a monochrome version of the full logo. At 100-120px, fine details just become mud.

Make it square (or crop it)

QR codes are square. A wide rectangular logo placed over the centre will either be too small to read or too tall, creeping towards the finder patterns. A square or near-square crop of your logo element works best.

Use a white or light background behind the logo

Add a white padding of at least 2-4 "modules" (the width of a single QR square) around the logo. This separates it cleanly from the surrounding code data. Without it, the logo's edges blur into the code pattern and scanners get confused about where the logo ends and the data begins.

Check contrast

The QR code itself needs to be dark on light (or, less commonly, light on dark with inverted colours). A logo that introduces mid-tones right at the boundary between logo and code can reduce local contrast to the point where scanners fail. Keep it clean.

Ready to make yours? Open the free generator → No signup, no tracking, code works forever.

Step-by-step: adding a logo to your QR code

  1. Generate the base code at Level H. Go to QRcrisp, enter your URL or content, and ensure Error Correction is set to H before generating. Download as SVG for best quality.
  2. Open the SVG in a design tool. Figma, Inkscape, Adobe Illustrator, Affinity Designer — all work. The SVG is losslessly scalable, so zoom in as much as you need.
  3. Place the logo centred in the code. Use the alignment tools to centre it exactly. The geometric centre of the code is roughly where the central data region sits.
  4. Add a white rectangle behind the logo. Draw a white rectangle slightly larger than the logo, centred in the same position. This is the clean background that separates logo from code.
  5. Check the size. The logo plus white background should cover no more than about 25% of the code's width. If your code is 40mm wide, the logo block should be no more than about 10mm wide.
  6. Export as PNG for testing. Export at 1000px wide or more for print; this gives you enough resolution to scan reliably on screen or in print.
  7. Test scan before using. Use your phone camera app (not a third-party QR app) to scan. Then scan with a second device, ideally on a different platform. If either fails, reduce the logo size and try again.

Colour QR codes: the extra consideration

Coloured QR codes (where the modules are a brand colour rather than black) can look striking. But they introduce a contrast requirement: the code colour and the background must have sufficient contrast to be machine-readable, not just visually appealing to humans.

A light blue code on a white background might look fine at a glance and fail almost every scan. The general guidance is to aim for at least 40% luminance difference between the module colour and the background. Dark navy, dark green, dark burgundy all typically work. Pastels generally don't.

Inverted QR codes (light modules on a dark background) work on most modern devices but can fail on older hardware. If you're printing for a wide audience, stick to dark modules on a light background.

Common mistakes

Logo too big

The most frequent issue. It looks great in the design file, but the logo is covering 40% of the code and no phone can read it. The fix is simply to reduce the logo size, or to increase the code generation size so the logo represents a smaller proportion of the total.

Not testing on a real device

A QR scanner in a design app or a browser extension is not the same as the native camera on a customer's phone. Test on physical hardware. I once saw a batch of 5,000 leaflets printed with a beautifully branded QR code that failed on iOS because the designer had only tested in a web-based checker. Always test on real devices before printing.

Forgetting the quiet zone

The white border around the entire code needs to remain intact. Placing the logo outside the QR data area but inside the quiet zone doesn't cause a scan failure, but cutting into the quiet zone often does. Give the code breathing room.

Using Error Correction L or M

Covered above, but worth repeating: if you're overlaying anything on the code, use Level H. No exceptions.

Once you've got a working branded code, think about where it'll live. For print materials, the SVG QR code format is ideal because it scales to any print size without quality loss. If it's going on a business card, the full guide on vCard QR codes for business cards has sizing and print advice too.