Skip to content

QR Codes

Generate a QR code

Encode a link, WiFi network, contact card or anything else. Download true vector SVG or high-resolution PNG. Nothing uploads, and the code never expires.

  • Free, no signup
  • No upload — runs on your device
  • No watermark
  • Unlimited use

QR Code Generator

Processed locally

The "logo can cover 30%" advice is wrong, and it breaks codes

Every QR generator repeats the same line: error correction level H tolerates 30% damage, so your logo can cover 30% of the code. The first half is true. The second does not follow, and it is why so many branded QR codes fail to scan.

Reed-Solomon error correction operates on codewords — blocks of eight modules scattered across the symbol by an interleaving pattern. Level H can reconstruct 30% of those codewords. That assumes damage is distributed: a scratch, a smudge, a coffee ring. A logo is the opposite. It is a solid square in the exact centre, and it destroys entire codewords outright rather than damaging many partially. Once a block loses more than its correction capacity, it is unrecoverable no matter how much slack the rest of the symbol has.

We measured it. Taking a real QR code, punching a centred white square of increasing size, and decoding the result with a genuine scanner library: at level H, a short URL fails once the logo passes 15% of the total area. A longer URL — more data, more codewords, more redundancy — survives to about 21%. At level L, the default on many tools, a logo covering even 5% breaks the code.

Not 30%. Roughly half that. This tool caps the logo at the measured limit for the level you have chosen, and tells you when it has done so. The alternative is a code that looks correct on screen, passes the one test you do at your desk, and then fails on a poster in low light on somebody else's phone.

How it works

  1. Choose what to encode — a link, WiFi network, contact card or plain text
  2. Style it if you want: colours, dot shape, and a logo (the size is capped at the safe limit)
  3. Download SVG for print, or PNG for screens
Why nothing uploads. Every operation on this page happens inside your browser using JavaScript and WebAssembly. Your file is read into memory, processed, and offered back as a download. It is never transmitted. Disconnect from the internet after this page loads and the tool keeps working.

Frequently asked questions

How big can my logo be before the QR code stops scanning?
At error correction level H, about 15% of the total area for a short URL, rising to roughly 21% for longer data. Not 30%, which is the figure most tools quote. The 30% refers to error-correction codewords, and assumes damage is scattered rather than concentrated in a solid centre square. This tool caps the logo at the measured limit and tells you when it does.
Will this QR code expire or stop working?
No. It is a static code — your data is encoded directly into the pattern. There is no redirect through our servers, nothing to track, and nothing to switch off. Once you have the image it works forever, even if this site disappears. Codes that expire do so because they point at a redirect the generator controls.
Should I download SVG or PNG?
SVG for anything printed. It is true vector, drawn as mathematical paths rather than traced from pixels, so it stays razor sharp from a business card to a billboard. PNG for screens, email and slides. The PNG here is rendered from the same SVG, so the two are always identical.
Why did my code get denser when I raised the error correction level?
Because redundancy costs space. Level H stores roughly twice the recovery data of level L, so the same content needs a bigger symbol. That means more, smaller modules — which is fine on a poster and a problem on a small label. If your code looks too dense, shorten the URL before lowering the correction level.
Can I use light modules on a dark background?
Technically yes, and many scanners handle it. But the specification assumes dark-on-light, and older or cheaper scanners refuse the inverse outright. If the code will be printed and scanned by strangers, keep it dark on light. This tool warns you when you invert it.
What is the quiet zone and why does it matter?
The blank margin around the code. The specification requires at least four modules. Scanners use it to find where the symbol begins — without it, a code printed flush against text or an image edge often will not be detected at all. Four is the minimum, not a suggestion.
Is my data sent anywhere?
No. The code is generated in your browser and the SVG is built in JavaScript. Your WiFi password, contact details or URL never leave the page. You can verify this in your browser's network panel, or by disconnecting from the internet after the page loads.