Guide · Design

How to make a QR code with a logo

A logo in the middle of a QR code works because the code carries spare data to rebuild what the logo covers. That only holds within limits: the right error correction, a logo of the right size, and the code’s structural parts left alone. Here are the limits, with numbers.

Updated 5 min read

A flat navy QR code with rounded modules and a small island logo on a square light plate in its centre, on a cream card beside a picture of a riad archway

A code with a logo on a square plate, at error correction H. It opens the studio in a riad courtyard world.

Why a code can carry a logo at all

A QR code stores its data with Reed–Solomon error correction. The data is split into blocks, and each block carries extra codewords that can rebuild damaged ones (a codeword is 8 modules, one bit each). That’s what lets a code scan through a scuff, a crease or a coffee ring. A logo is damage on purpose: the modules under it are missing, and the scanner rebuilds them like any other damage.

There are four levels of error correction. Level L can restore about 7% of the code, M 15%, Q 25% and H 30%. A code with a logo should use H.

Use level H, and expect a denser code

H gives the logo the most room, but it costs modules. More correction data means a bigger grid for the same content, so the code needs more paper. Here is what that does to three links, using the print minimums from our print size guide (0.5 mm per module, 0.75 mm from 57 modules, never under 2 cm):

LinkNo logo (level Q)With a logo (level H)
https://example.com/menu (24 characters)29 × 29, 2 cm37 × 37, 2 cm
A 61-character blog post link41 × 41, 2.5 cm45 × 45, 2.5 cm
The same link with tracking tags (118 characters)53 × 53, 3 cm57 × 57, 4.5 cm

The short link would fit a 29 × 29 grid even at H, but our studio puts logos on at least version 5 (37 × 37). On the smallest versions the corner patterns and format strips crowd the centre, and each block has so little spare data that the logo would have to shrink to almost nothing: about 9% of the width on version 1.

Don’t spend the whole budget on the logo either. Correction used up by the logo is no longer there for a smudge or glare. Our studio lets the logo use at most half of what each block can correct, and keeps the other half for real-world damage.

How big the logo can be

Area is smaller than it looks. A logo 20% of the code’s width covers only 4% of its area, and 24% of the width covers under 6%. That sounds like plenty against a 30% budget, but the budget is counted in codewords, not area. A codeword counts as damaged if even one of its modules is covered, and the codewords under the centre aren’t spread evenly across the blocks, so one block can run out of correction while the others have plenty left.

The safe size therefore depends on the code. As a working range, keep the logo between about 12% and 24% of the code’s width, square or close to it, and in the centre. In our studio the logo size slider covers exactly that range and starts at 20%, and on the few code sizes where 20–24% would take a block over its share, the studio makes the logo a little smaller.

What a logo must never cover

Error correction rebuilds data. It can’t rebuild the parts a scanner uses to find the code and work out its layout, so these must stay visible:

  • The three corner squares (the finder patterns) and the light ring round each one.
  • The timing lines: two lines of alternating dark and light modules running between the corner squares, one across the top and one down the left side.
  • The format strips beside the corner squares, which tell the scanner the error correction level and the mask pattern.
  • The version blocks on codes from version 7 (45 × 45) up: two small 6 × 3 blocks beside the top-right and bottom-left corner squares.
  • The alignment patterns near the edges, especially the small square near the bottom-right corner that scanners use to correct for a tilted camera.
  • The quiet zone. The logo stays inside the code and never crosses the light margin round it.

A centred logo of sensible size stays clear of all of these. The logos that break codes are the ones pushed towards a corner or stretched wide across the code.

Put a plate behind it

A light plate behind the logo, a square or circle in the code’s background colour with half a module of space round the logo, gives it a clean edge. Every module is then either fully visible or fully cleared, so the damage is exactly what was planned. Without a plate the logo’s own shapes sit among the modules, and modules at its edge that are half covered can read either way.

A circle plate looks softer, but it clears about 1.6 times as many modules as a square one for the same logo, so the logo often has to be smaller: down to 14% of the width on some codes in our studio.

For the logo file, use a transparent PNG or an SVG of your symbol rather than the full wordmark. At 20% of a 3 cm code the logo is 6 mm wide, and words at that size can’t be read. The logo can be any colour, since scanners ignore it; the code round it still needs a dark colour on a light background, as our guide to QR code colours explains.

Test it at the smallest size

Logo codes fail first when they’re printed small, seen at an angle or scanned in dim light, because less correction is left over for real damage. Print a proof at the smallest size you’ll use, often a business card at 2–2.5 cm, and scan it with two phones, one of them an older Android phone, from a slight angle as well as straight on.

If it struggles, shorten the link so the code has fewer, bigger modules, make the logo smaller, add a plate, or print bigger. Round dots, stars and other airy module shapes need about a centimetre more than squares, with or without a logo.

The same QR code with its logo laid as the tiled courtyard of a riad island at sunset, with arcades, orange trees and a fountain
The same logo on the 3D island: it sits on its plate in the middle of the courtyard code.

Make it in QR Island

In the QR Island studio, open Style and choose Add your logo (PNG, JPG, SVG or WebP, up to 5 MB). Set the logo size between 12% and 24%, and the backing to Square, Circle or None. The studio switches the code to level H and at least version 5, fits the logo within half of each block’s correction, keeps the corner squares, timing lines, format and version areas clear, and checks that the design scans as you change it.

The logo is free. It shows on your island and in the free PNG and SVG downloads, which carry a small QR Island credit line. The Island pack (US$6.99, one-time) adds print files without the credit: a 4096 px PNG, an SVG and a PDF print sheet.

  • QR code colours that still scan

    Contrast ratios with real examples, inverted codes, gradients, logos and what printing does to colour.

    5 min read

  • QR code size for printing

    Minimum sizes, the distance ÷ 10 rule, the quiet zone and error correction, with a table of real codes.

    5 min read