How to add a logo to a QR code without breaking it

TL;DR Yes, you can put a logo in the middle of a QR code. Two rules: (1) the logo should cover at most 22–25 % of the QR area, and (2) use error correction level H (~30 % recovery). Center the logo, give it a small white pad behind it, and always test the result with a real phone before printing. Our generator handles all of this automatically — upload the logo and it just works.

Logos in QR codes look great. They turn a bland scan-target into a branded visual element — Spotify, Coinbase, half the world's restaurant menus all use logo'd QR codes. The catch: if you do it wrong, the code becomes unscannable. Here's how to do it right.

Why does adding a logo work at all?

QR codes have built-in error correction. Every QR encodes its data with a layer of redundancy using Reed–Solomon codes, the same math used to recover data from scratched CDs and Voyager probe transmissions. Up to a percentage of the code can be obscured, dirty, or missing, and the scanner can still recover the original data.

There are four levels:

When you place a logo over the center of a QR code, you're effectively "damaging" some of the data. The error correction recovers it — as long as the damage stays within the recovery limit.

The two rules

Rule 1: keep the logo small

Cover at most 22–25 % of the total QR area. As a rough guide:

It's tempting to make the logo bigger because it looks more impressive. Resist. Bigger logos eat into the error correction margin you need for real-world damage (smudges, low light, motion blur). At 30 % logo coverage, the QR works perfectly in studio conditions and fails in many real-world conditions.

Rule 2: use error correction level H

This gives you the ~30 % recovery margin you need. M and below will fail. Q is borderline. H is safe.

The trade-off: H-level QR codes hold less data (because more of the code is dedicated to redundancy). For typical URLs (under 100 characters) this is invisible. For very long data (a 2 KB vCard, say) you may need to make the QR slightly bigger to fit.

Step-by-step in our generator

1

Open the generator

Go to qrcodeeasily.com and pick the QR type (URL is most common).

2

Fill in the data

Type your URL or the relevant data for the type you chose. The QR will appear immediately.

3

Upload your logo

Click "Upload image" in the customize panel. Choose a PNG, JPEG, or SVG file (under 2 MB). The logo embeds in the center automatically. Behind the scenes, error correction bumps to H and logo size is capped at 22 % of the QR area.

4

Test before printing

Always scan the result with your phone before producing copies. If it scans cleanly, you're good.

Best practices for logos

Use a transparent or white background

Logos with transparent PNG backgrounds blend into the QR's white pad cleanly. Logos with their own colored backgrounds clash visually and reduce contrast. Our generator places a small white "pad" behind the logo automatically — this prevents your logo from sitting directly on QR modules.

Square or roundish logos work best

The center pad in the QR is roughly square. A wide horizontal logo (like a wordmark) leaves wasted space and looks awkward. Use the icon/symbol part of your brand if it's available — it'll look better in this context.

High-contrast logos read better

A solid dark logo on a white pad reads as decisively "not part of the code." A faint or pastel logo can confuse some older scanners. If your brand is multiple colors, consider a single-color version for QR contexts.

Vector (SVG) logos > raster

If you have an SVG version of your logo, use it. It scales perfectly with the QR and embeds cleaner. PNG works fine but at small sizes can show pixelation.

Common mistakes

✗ Don't do this

Logo at 40 % of QR area • Logo with no white pad behind it • Logo using one of the QR's modules as a "design feature" • Logo placed off-center (over a finder pattern)

✓ Do this

Logo at 20–22 % of QR area • White pad behind the logo • Logo perfectly centered • Tested on multiple phones before going to print

Special case: QR-in-QR (logo IS a tiny QR)

Some brands embed a small second QR inside their main one as the "logo." It's gimmicky and usually unscannable for both. Don't do this for production. It's fine for a one-off tweet for the novelty.

Special case: animated logos / GIFs

QR codes are static images by definition. You can't put an animated logo inside a printable QR. (For digital displays you could overlay an animated CSS element on top of a static QR div, but the resulting "QR" can't be saved or shared as a file.)

Will it work with rounded / dotted QR styles?

Yes. Logos work with any module style — square, rounded, smooth blob. The error correction is independent of visual style. Pick whatever style matches your brand aesthetic and add the logo on top.

Real-world tip Test with at least three different phones: an old Android, a recent iPhone, and a budget device. iPhones are especially forgiving; older Androids are the toughest test. If all three scan it without effort, your QR will work for everyone.

What if it still won't scan?

If you've followed the rules and your code still fails on some phones, try in this order:

  1. Make the logo smaller — drop to 18 % of QR area
  2. Increase the white pad behind the logo by 30 %
  3. Increase QR size in print — bigger QR makes everything more forgiving
  4. Drop the logo if all else fails — sometimes a bare QR is genuinely the right answer

Add a logo to your QR right now

Free, no sign-up. Logo size is capped automatically at the safe 22 % limit, and error correction bumps to H whenever a logo is present.

Open generator