QR code generator
Make a QR code from a URL or any text and download it as a PNG or a print-ready SVG. Generated in your browser, with no tracking redirect.
Runs in your browser
Higher correction survives more damage but needs a denser code for the same content. M is the usual choice; use H only when the code will be printed on something that gets handled.
The code points where you tell it to
Many free QR generators encode a link to their own domain that redirects to yours. That gives them a scan count and gives you a code that stops working whenever they do. The code on this page encodes exactly the characters you typed — nothing is registered, and no account is needed to keep it working.
Download the SVG for anything that will be printed. It is a vector, so it stays sharp at any size; a PNG scaled up to poster size will not.
Error correction
A QR code carries redundant data so it can still be read when part of it is damaged or covered.
| Level | Recoverable | Use for |
|---|---|---|
| L | 7% | Screens, and long content that would not otherwise fit |
| M | 15% | The usual choice |
| Q | 25% | Print that gets handled — labels, packaging |
| H | 30% | Codes with a logo placed over the middle |
Higher correction is not free: the same content needs a denser grid, and a denser grid needs to be printed larger to stay scannable.
Size, and why the quiet zone matters
The white margin around the code is part of the specification — four modules wide — and scanners use it to find the code’s edges. Placing a code flush against artwork or a coloured background is a common reason a printed code fails to scan, and the failure is intermittent enough to survive testing.
As a rough rule for print, a code needs to be about a tenth of the distance it will be scanned from: 3 cm across for a code read at 30 cm, on a table tent or a business card.
Content that scanners understand
Plain text and URLs work everywhere. Some other formats are widely, though not universally, recognised:
WIFI:T:WPA;S:NetworkName;P:password;;
mailto:hello@example.com?subject=Hello
tel:+886212345678
geo:25.0330,121.5654
BEGIN:VCARD…END:VCARD
Keep URLs short. Every character makes the grid denser, and a long tracking query string can push a code from a comfortable 33×33 grid to one that needs careful printing to survive.
Your data stays here
The code is generated in your browser and never sent anywhere, which matters for the Wi-Fi passwords and private links people put into QR codes without thinking about where the encoding happened.