Why covering part of a QR code doesn't break it

QR codes are built with redundant data on purpose, using the same family of math (Reed-Solomon error correction) that lets scratched CDs still play and hard drives recover from bad sectors. A scanner doesn't need every single module to be readable — it reconstructs the missing pieces from the redundancy, up to a threshold. That threshold is exactly what the error correction level controls, and it's why a logo sitting in the middle of a code doesn't automatically make it unreadable.

It's also why logo placement isn't arbitrary: a logo in the dead center covers the least structurally important area, which is why every QR logo overlay — including this generator's — centers it there automatically.

Step by step

  1. Set up your content first. Pick a type on the QR Code tab (URL, Wi-Fi, contact card, etc.) and fill it in. Style and logo settings apply on top of whatever content you choose.
  2. Raise the error correction level. Still on the QR Code tab, set Error correction to High (recovers ~30% of the code) or Extreme (High redundancy plus a larger pattern for extra headroom). Skipping this step is the single most common reason a logo'd code fails to scan.
  3. Open the Logo tab and enable it. Toggle Enable logo overlay at the top — everything below it is disabled until you do.
  4. Choose Image or Text. Image uploads your own file (a square logo with some transparent padding works best). Text renders up to a few characters — good for initials or a monogram if you don't have a clean icon version of your logo.
  5. Set size and padding. Start around 20% size. The padding slider adds breathing room between your logo and its background plate — the generator caps the total footprint automatically so you can't accidentally blot out too much of the code, but staying modest is still safer.
  6. Pick a plate shape and color. The plate is the background shape sitting behind your logo (square, rounded, circle, or none). Give it a color that contrasts with your logo — white or your background color both work well — and use the opacity slider if you want it to blend rather than sit as a hard card.
  7. Add a border if you want separation. A thin border in your module color makes the plate read as intentional rather than like a glitch.
  8. Test-scan before you print or publish. Use two or three different phones if you can. This is the step people skip and regret.

How big can the logo actually be?

There's no single universal number — it depends on error correction level, how much contrast your logo has, and how clean your printer or screen renders fine detail. As a practical range: 15–25% of the code's width is comfortable at High or Extreme correction. Past 30%, you're relying on a lot of redundancy recovery, and results get inconsistent across different scanner apps. If you need a genuinely large logo, prioritize Extreme correction and a simple module style (Square or Rounded) over an intricate one like Star or Hourglass, which already have less continuous dark area to spare.

Common mistakes that cause "my QR code won't scan"

  • Leaving error correction on Low or Normal. This is the #1 cause. Fix it before touching anything else.
  • A logo plate that's too close in color to the background. If a scanner can't tell where your data modules end and your logo begins, it can misread the boundary. Keep clear contrast, or use a white/solid plate.
  • Stacking a huge logo with an already-dense module style. Styles like Diamond or Hourglass leave less continuous ink; pair them with a smaller logo, not a bigger one.
  • Never actually testing a scan. A code that looks fine on screen can still fail in a scanner app with a worse camera or slower autofocus. Always test on a real phone, ideally more than one, before it goes to print.
Tip: If you're printing at a small physical size (business cards, product labels), also increase the quiet zone in the Export tab. A cramped white border around the code is a more common failure cause at small sizes than the logo itself.