Free QR Code Logo Size Calculator
The "level H tolerates 30%" figure is a codeword recovery rate, not a licence to cover 30% of the picture. Paste your content, set a logo size, and see how much of the error-correction budget it actually spends. Nothing leaves your browser.
The length decides the QR version, and the version decides how many codewords a logo can afford to destroy.
These are not interchangeable: 30% of the width is 9% of the area.
The dashed half-way point is the reserve we recommend keeping for print, wear, lighting and camera focus.
Your content at every error-correction level
Maximum square-logo width for the content above, at each level. “Reserve half” is what we recommend; “ceiling” is the point where the arithmetic runs out and no decoder can recover the data.
| Level | Version | Grid | Correctable codewords | Reserve half | Ceiling |
|---|
How this is calculated
Most logo guidance works from a percentage of the picture. This tool works from the symbol itself, because that is where the limit actually lives.
1. Your content fixes the version
A QR code comes in 40 versions, from 21×21 modules up to 177×177. The encoder picks the smallest one that holds your data at the error-correction level you chose. More data, or a higher level, means a bigger grid — and a bigger grid changes every number below. You can see the capacity behind this step in the QR code capacity calculator.
2. The symbol's geometry fixes the codeword count
Take the grid, subtract the function patterns — the three finder squares and their separators, the two timing lines, the alignment patterns, the format and version information — and divide what is left by eight. That is the symbol's total codeword count, and it matches the published table for all 40 versions. Some of those codewords carry your data; the rest carry Reed–Solomon error correction.
3. Reed–Solomon fixes the budget
Reed–Solomon corrects errors at unknown positions, and each one costs two error-correction codewords: one to find it, one to fix it. So a symbol with E error-correction codewords can repair roughly E/2 corrupted ones. That figure — not a percentage of the image — is the budget a logo draws on. It is also where the familiar 7%, 15%, 25% and 30% come from: they are that budget expressed as a share of all codewords.
4. The logo's footprint is mapped to real codewords
This is the step the percentage rules skip. The tool walks the standard's data placement path — two-module columns from the right-hand edge, alternating up and down, skipping the timing column — and works out which codeword owns every module in the grid. It then marks every module your logo lands on and counts the distinct codewords touched.
That count is always higher than the covered area suggests, because a codeword is all-or-nothing: its eight bits occupy a two-by-four block of modules, and clipping one corner of that block writes off all eight. On a small logo the boundary dominates, so a shape covering 4% of the area can easily destroy 7% of the codewords.
5. Function patterns are counted separately, because they cannot be repaired
The finder squares, the timing lines and the format information sit outside the data stream entirely. Error correction never touches them, and a decoder needs them before it can begin. If a logo reaches any of those, the answer is not "expensive" but "will not decode", and the tool says so.
Alignment patterns are treated as a warning rather than a failure. They are unprotected too, but a decoder can often rebuild the grid without one. They matter most when the code is curved or read at an angle — and on many versions there is an alignment pattern sitting exactly at the centre of the symbol, which is precisely where logos go.
Why we recommend spending only half the budget
We checked. Across 120 combinations of version, level and logo shape, codes sized to the arithmetic ceiling were decoded by a reference decoder in 74 cases; codes sized to leave half the budget in reserve were decoded in 119. The ceiling is a real limit — pass it and recovery is impossible — but it is not a target, because print gain, ink spread, contrast, lighting, focus and viewing angle all draw on the same reserve, and a clean digital image is the easiest scan a code will ever face.
Two limits worth stating plainly. The tool counts every module the logo lands on as lost, which is the worst case: a logo that happens to leave light modules light does slightly better. And staying inside the budget makes a decode possible, not certain — only a test scan of the printed piece proves that.
When to reach for this
Before a print run
Packaging, posters and signage are expensive to reprint. Check the logo against the budget while the artwork is still editable, then test-scan a physical proof.
When a designer asks for a bigger logo
"How much bigger can it go?" now has a number instead of an argument — and the answer names what it would cost.
When tracking parameters get added
Appending UTM parameters lengthens the URL, which can push the code to a larger version and change the logo maths underneath a design that was already signed off. Build the link in the UTM link builder, then re-check it here.
When a branded code stops scanning
If the plain code reads and the branded one does not, the logo is the variable. Check the budget here, then the contrast with the colour contrast checker and the printed size with the print size calculator.
Frequently Asked Questions
How big can a logo on a QR code be?
There is no single number, because the answer depends on how much data the code carries, which error-correction level it uses and how much of the correction budget you are willing to spend on the logo rather than on real-world wear. For a typical short URL at level H, a square logo of roughly 30 to 35 per cent of the code’s width — which is only about 9 to 12 per cent of its area — spends about half the budget and leaves the other half for print and optics. Enter your own content above to get the figure for your code rather than a rule of thumb.
Does error correction level H really let a logo cover 30% of the code?
No. The 7, 15, 25 and 30 per cent figures attached to levels L, M, Q and H are approximate proportions of the symbol’s codewords that Reed-Solomon can restore, and a codeword is an eight-bit unit spread across eight modules — not a proportion of the visible image you may cover. The two are not interchangeable. A logo covering 30 per cent of the area of a level H code has to span about 55 per cent of its width, and in our own decode testing that configuration failed to read at every size tried.
Why does a small logo destroy so many codewords?
Because a codeword is all-or-nothing. Its eight bits sit in a two-module-wide, four-module-tall block, and corrupting a single one of those eight modules makes the whole codeword an error. A logo therefore writes off every codeword it touches, including the ones it only clips at the edge, so the share of codewords lost is always larger than the share of area covered — dramatically so for small logos, where the boundary dominates.
What is the difference between 30% of the width and 30% of the area?
A factor of more than three, and most published guidance never says which it means. A logo spanning 30 per cent of the code’s width covers 9 per cent of its area. A logo covering 30 per cent of the area has to span nearly 55 per cent of the width, which on most codes reaches the timing patterns. This calculator shows both figures for whatever you enter, so the ambiguity cannot bite you.
Why does the tool warn about the alignment pattern?
Because on many QR versions there is an alignment pattern sitting exactly at the centre of the symbol, which is where logos go. Alignment patterns are function patterns: they carry no Reed-Solomon protection at all, and a decoder uses them to re-establish the module grid when the image is curved or viewed at an angle. Covering the central one is usually survivable on flat, square-on print and is a common cause of failure on bottles, curved labels and steep viewing angles.
Can I cover the corner squares if I use level H?
No, and this is the one hard rule. The three corner squares are finder patterns, and along with the timing patterns and the format information they sit outside the data and error-correction stream entirely. A decoder needs them to locate the symbol and read its parameters before error correction runs at all, so damaging them is not a budget question — the decode never starts. The calculator flags this as a fatal collision rather than a cost.
Does staying inside the budget guarantee the code will scan?
No, and that is the most important limitation to understand. The budget is a ceiling imposed by the arithmetic: exceed it and no decoder can recover the data. Staying under it makes a successful decode possible, not certain. In our decode testing across 120 configurations, codes sized to the arithmetic ceiling read only 74 times, while codes sized to leave half the budget in reserve read 119 times. Print quality, contrast, lighting, camera focus and viewing angle all consume the same reserve, which is why a physical test scan is the only real proof.
Should I just raise the error correction level to fit a bigger logo?
Not automatically, because it is not free. Raising the level replaces data capacity with error-correction capacity, so the same content may no longer fit in the same version and the encoder moves up to a larger one. At a fixed printed size a larger version means more, smaller modules, which is harder for a camera to resolve — so you can gain correction budget and lose scannability at the same time. Change the level in the calculator and watch whether the version number moves.
Is my content sent to a server?
No. The symbol geometry, the codeword placement walk and the budget arithmetic are plain JavaScript that ship with the page and run on your own device. There is no network request, no logging and no storage, so the tool works offline once loaded and the URL you are encoding never leaves your browser.
The reasoning behind all of this is set out in how much of a QR code a logo can really cover, which traces where the 30% figure comes from and why it does not mean what it is usually taken to mean.
Frequently Asked Questions
How big can a logo on a QR code be?
There is no single number, because the answer depends on how much data the code carries, which error-correction level it uses and how much of the correction budget you are willing to spend on the logo rather than on real-world wear. For a typical short URL at level H, a square logo of roughly 30 to 35 per cent of the code’s width — which is only about 9 to 12 per cent of its area — spends about half the budget and leaves the other half for print and optics. Enter your own content above to get the figure for your code rather than a rule of thumb.
Does error correction level H really let a logo cover 30% of the code?
No. The 7, 15, 25 and 30 per cent figures attached to levels L, M, Q and H are approximate proportions of the symbol’s codewords that Reed-Solomon can restore, and a codeword is an eight-bit unit spread across eight modules — not a proportion of the visible image you may cover. The two are not interchangeable. A logo covering 30 per cent of the area of a level H code has to span about 55 per cent of its width, and in our own decode testing that configuration failed to read at every size tried.
Why does a small logo destroy so many codewords?
Because a codeword is all-or-nothing. Its eight bits sit in a two-module-wide, four-module-tall block, and corrupting a single one of those eight modules makes the whole codeword an error. A logo therefore writes off every codeword it touches, including the ones it only clips at the edge, so the share of codewords lost is always larger than the share of area covered — dramatically so for small logos, where the boundary dominates.
What is the difference between 30% of the width and 30% of the area?
A factor of more than three, and most published guidance never says which it means. A logo spanning 30 per cent of the code’s width covers 9 per cent of its area. A logo covering 30 per cent of the area has to span nearly 55 per cent of the width, which on most codes reaches the timing patterns. This calculator shows both figures for whatever you enter, so the ambiguity cannot bite you.
Why does the tool warn about the alignment pattern?
Because on many QR versions there is an alignment pattern sitting exactly at the centre of the symbol, which is where logos go. Alignment patterns are function patterns: they carry no Reed-Solomon protection at all, and a decoder uses them to re-establish the module grid when the image is curved or viewed at an angle. Covering the central one is usually survivable on flat, square-on print and is a common cause of failure on bottles, curved labels and steep viewing angles.
Can I cover the corner squares if I use level H?
No, and this is the one hard rule. The three corner squares are finder patterns, and along with the timing patterns and the format information they sit outside the data and error-correction stream entirely. A decoder needs them to locate the symbol and read its parameters before error correction runs at all, so damaging them is not a budget question — the decode never starts. The calculator flags this as a fatal collision rather than a cost.
Does staying inside the budget guarantee the code will scan?
No, and that is the most important limitation to understand. The budget is a ceiling imposed by the arithmetic: exceed it and no decoder can recover the data. Staying under it makes a successful decode possible, not certain. In our decode testing across 120 configurations, codes sized to the arithmetic ceiling read only 74 times, while codes sized to leave half the budget in reserve read 119 times. Print quality, contrast, lighting, camera focus and viewing angle all consume the same reserve, which is why a physical test scan is the only real proof.
Should I just raise the error correction level to fit a bigger logo?
Not automatically, because it is not free. Raising the level replaces data capacity with error-correction capacity, so the same content may no longer fit in the same version and the encoder moves up to a larger one. At a fixed printed size a larger version means more, smaller modules, which is harder for a camera to resolve — so you can gain correction budget and lose scannability at the same time. Change the level in the calculator and watch whether the version number moves.
Is my content sent to a server?
No. The symbol geometry, the codeword placement walk and the budget arithmetic are plain JavaScript that ship with the page and run on your own device. There is no network request, no logging and no storage, so the tool works offline once loaded and the URL you are encoding never leaves your browser.
The Arithmetic Says Yes. Now Prove It on a Phone.
Staying inside the budget is necessary, not sufficient — print, ink spread, glare, angle and camera focus all draw on the same reserve. Once the code is printed at final size, scan the physical copy with Scan & Generate on a real handset, from the distance and angle people will actually use, before the print run goes out.