How do you add a logo to a QR code?
Updated
Short answer
Put the logo in the middle, keep it under about a fifth of the code's width, and switch error correction to High so the code can afford the modules the logo hides. Never cover the three corner squares, the dotted lines that run between them, or the blank margin around the edge. A logo is not part of the QR standard: it works only because a code carries spare recovery data, so always scan a real print before a run.
Why a logo works at all
Nothing in the QR code standard, ISO/IEC 18004, says you may put a picture on a code. A logo works for one reason only: every QR code carries redundant recovery data, so a scanner can still rebuild the content when part of the pattern is missing. Covering the middle with a logo is, as far as the scanner is concerned, damage. The code survives it the same way it survives a scratch, a coffee ring or a torn label.
That framing is the whole guide in one idea. A logo spends a budget that was there to protect the code in the real world, and whatever you spend on the logo is no longer available for wear and tear. A code with a large logo and a scuffed corner can fail when either one alone would have been fine. So the aim is not the biggest logo that still scans on your desk, but a logo small enough to leave the code some margin for the life it will actually have.
How big the logo can be
Keep the logo to about a fifth of the code's width, and no more than a quarter. Because it is a square sitting on a square, a logo one fifth as wide covers about 4% of the area, and one a quarter as wide covers about 6%. Those sound like small numbers next to the recovery percentages below, and they are: the gap is the safety margin.
In our own testing, with a decoder reading generated codes, a solid patch in the centre kept decoding up to roughly a third of the code's width at Medium error correction, and only about a quarter at Low. Those are the points where codes started failing outright under ideal conditions, on a screen, with no glare, print imperfection or awkward angle. Treat them as the cliff edge rather than the target, and stay well back from them.
| Logo width | Area covered | Verdict |
|---|---|---|
| 15% | About 2% | Safe at any error correction level |
| 20% | About 4% | A good default with High error correction |
| 25% | About 6% | Workable with High, test it properly |
| 33% | About 11% | Failing point at Medium in testing, too close to the edge |
| 40% | About 16% | Expect codes that will not scan |
What a logo must never cover
Error correction protects the data in a code. It does not protect the parts a scanner uses to find and measure the code in the first place, and covering any of those breaks it completely rather than gradually.
- The three large squares at the corners, called finder patterns. A scanner looks for these first to locate the code and work out its angle. Lose one and there is nothing to find.
- The dotted lines of alternating dark and light modules running between those corner squares, called timing patterns. They tell the scanner how wide one module is.
- The smaller square near the opposite corner on all but the smallest codes, called an alignment pattern. It corrects for the code being photographed on a curve or at a slant.
- The blank margin around the whole code, four modules wide, called the quiet zone. Putting a logo, a frame or a caption inside it is one of the most common reasons a printed code fails.
There is one more trap, and it catches brands whose logo happens to be geometric. Avoid a logo built from concentric squares, because that is the exact shape of a finder pattern. A scanner hunting for corner squares can lock onto a convincing imitation in the middle of the code and try to read a symbol that is not there. If your mark looks like a small QR code, change how it is drawn before putting it inside a real one.
Which error correction level to use
Use High whenever there is a logo. The four levels differ in how much of the code they can lose and still be read, and High gives roughly double the room of the everyday default. The cost is that the same content needs more modules, so the pattern is denser and each module is smaller at a given printed size. That trade is worth taking here, and it is why Any QR switches to High automatically as soon as you add a logo.
| Level | Recovers about | With a logo |
|---|---|---|
| L | 7% | No. A logo alone can exceed the whole budget |
| M | 15% | Only for a very small logo, with nothing left for wear |
| Q | 25% | Acceptable when the code must stay less dense |
| H | 30% | The right choice, and what this site uses |
Why a short link can be the riskier case
It is natural to assume a simple code copes better with a logo than a complicated one. In testing it was the other way round: the same logo broke codes holding very little while codes holding a long address read back perfectly. The reason is how recovery data is arranged. A small code carries a single block of it, so a patch in the middle eats into that one budget with nothing to spread the loss across. A longer payload splits its recovery into several blocks, each correcting independently, and a central patch damages only part of each.
The practical upshot is that a four-word link with a big logo deserves more suspicion than a long one, not less. If a short code with a logo refuses to scan, making the logo smaller will help more than shortening the link will.
Making one here
- Open the generator for the kind of code you need, or the main one for a plain link.
- Type or paste the content and watch the preview build as you go.
- Under "Make it yours", choose Add a logo and pick a PNG, JPG or WebP file. It is read on your device and never uploaded.
- Check the preview: error correction moves to High on its own, and the code redraws with the logo on a clean patch in the centre.
- Download the SVG for print, or a PNG at 1024 or 2048 px. Then scan the file from your screen with a phone before you commit it to anything.
Codes made here carry a small any-qr.com mark, which sits in the centre until you add a logo of your own and then moves to a line just beneath the code, outside the quiet zone. Your logo keeps the middle, and the pattern never has to carry both.
Testing before you print
- Scan with more than one phone. Camera apps differ, and a code that reads instantly on one handset can hesitate on another.
- Test at the real size and the real distance. A logo code that scans from a laptop screen can fail at 2 cm on a business card.
- Test the printed proof, not the file. Ink spread, paper texture and glossy laminate all take a little quality away from a pattern that has already spent some on the logo.
- Try it in poor light and at an angle, which is how people actually scan things.
- If it struggles, shrink the logo first. That single change fixes most failures, and it costs less than anything else you might try.
Frequently asked questions
Not if it is small enough. A logo hides part of the pattern, and the code's built-in error correction rebuilds what is hidden. Keep the logo under about a fifth of the width, use High error correction, and it will scan.
About a fifth of the code's width is a safe default, and a quarter is the sensible maximum. That covers roughly 4 to 6% of the area, which leaves the rest of the recovery budget for scratches, glare and print quality.
High, which recovers about 30% of the code. Any QR switches to it automatically when you add a logo. Low cannot reliably carry a logo at all, because the logo alone can use up the entire recovery budget.
No. The corners hold the three finder patterns a scanner uses to locate the code, and the edges hold the quiet zone, which must stay blank. The centre is the only area with nothing structural in it.
It does not need one. Any QR puts the logo on a clean patch of the code's background colour, so a transparent PNG and a solid one look the same. What matters more is that the logo is simple and readable at a small size.
It is on the edge of what error correction can recover, and camera and decoder quality vary. Make the logo smaller, check you are at High error correction, and print it larger. A code that only just scans in good conditions will fail in bad ones.
More guides
- Guide
Static vs Dynamic QR Codes
A static QR code holds its content in the pattern and never expires. A dynamic one points at a redirect you rent. How they differ, and which to choose.
Read the guide - Guide
QR Code Size Guide
How big to print a QR code: the 10:1 distance rule, a 2 cm minimum, the quiet zone, and how data and error correction change the size a code needs.
Read the guide - Guide
WiFi QR Code Troubleshooting
Why a WiFi QR code will not connect, in the order worth checking: hidden networks, capitals, the security type, 5 GHz, business logins and phone support.
Read the guide - Guide
How to Scan a QR Code
Scan a QR code with the camera already on your phone: the steps for iPhone and Android, how to read a code on your own screen, and what to do if it fails.
Read the guide