QR Code Generator
Type a link or any text and get a QR code you can download as a vector and print at any size.
Version 2 · 25×25 modules · recovers from about 15% damage
A QR code is only as good as its contrast and its quiet zone. Keep it dark on light, leave the white border, and print it at least 2 cm across for a phone at arm’s length.
What is a QR code?
A QR code is a square barcode that stores text, most often a web address, in a grid of black and white squares. A camera reads it from any angle thanks to the three large squares in its corners, and it keeps working when partly damaged because up to 30% of the data is redundant.
How it works
The text is encoded as UTF-8 bytes, wrapped in error-correcting code, and laid out on a grid of black and white squares called modules. The three big squares in the corners are what a camera uses to find and orient the code.
The error correction level decides how much of the code can be dirty, torn or covered and still read: from about 7% at L to about 30% at H. Higher recovery needs more modules, so the code gets denser for the same text.
The download is an SVG: a vector, not a picture of one. It stays sharp whether it ends up 2 cm on a business card or two metres on a shop window, which a PNG cannot do.
What is a QR code
A QR code is a two-dimensional barcode: a grid of black and white squares that encodes text, read by a camera rather than a laser. Denso Wave, a Toyota subsidiary, designed it in 1994 to track parts down a car production line, which is why it reads from any angle and still works when part of it is dirty or torn. QR stands for Quick Response, and the three large squares in the corners are what let a camera find the code and work out which way up it is.
What it holds is text, and nothing more interpreted than that. A QR code is not a link. It is a short string of text, and a phone camera reading one simply hands that text to the operating system, which decides what to do with it: a string starting with https:// opens a browser, one starting with WIFI: offers to join a network, one starting with BEGIN:VCARD offers to save a contact. The code itself has no idea what any of it means.
That matters because of what it implies about editing. The text is baked into the pattern: change one character and the whole grid is different. A printed QR code cannot be redirected later unless the text it carries is a link you control, which is the one good reason to point a code at your own short URL rather than straight at the destination.
How to make a QR code
Making one is encoding, not designing: you give the generator a string of text, it works out the smallest grid that will hold it at the redundancy you asked for, and draws the pattern. Nothing is registered anywhere and there is no account in the loop, because a QR code is a representation of text rather than a record in somebody's system.
The only decisions that change the result are what the text says and how much damage the code should survive. Everything else is presentation.
- The content a full URL including https:// for a link, or any text at all. Plain text shows up as text on the phone; it is not a link unless it looks like one.
- Error correction L, M, Q or H, from about 7% to about 30% recoverable. M is the sensible default. Go to Q or H only if the code will be printed small, on something curved, or somewhere it will get scuffed.
- Size the pixel size written into the SVG. It matters only for programs that ignore vectors; the file scales either way.
- Download SVG the vector file. Drop it into a document, a design tool or a print layout and resize it freely.
- Read the version line it tells you how dense the code came out. A version 2 code is 25 modules a side; version 10 is 57, and needs to be printed larger to stay scannable.
Static and dynamic QR codes: the difference
A static QR code carries the text itself. Scan it and you get exactly what was encoded, which means it works forever, with nobody in the middle, and cannot be changed once it is printed. Every code this page makes is static.
A dynamic QR code is not a different kind of code at all. It is a static code pointing at a short redirect that a service hosts, and the service changes where the redirect goes. That is what buys you editability and scan statistics, and what you pay for it is a dependency: the day that service closes, raises its price or lets the subscription lapse, every code you printed stops working. The pattern on the paper is still perfect; the destination behind it is gone.
If you want both, you do not need a dynamic code product. Point a static code at a URL on a domain you own and redirect it yourself. The code stays yours and the destination stays editable, and nothing in the chain can be switched off by somebody else.
How much data fits in a QR code
The grid comes in 40 sizes, called versions. Version 1 is 21 modules a side and each step up adds 4, so version 10 is 57 and version 40 is 177. The generator picks the smallest version that holds your text, which is why the version line moves when you type.
At the largest version and the lowest redundancy a QR code holds about 7,089 digits, 4,296 alphanumeric characters or 2,953 bytes. Those are ceilings nobody should go near: a version 40 code has 31,329 modules, and printing it large enough for a phone to resolve each one means something closer to a poster than a label. In practice a URL under about 80 characters keeps a code comfortable.
- Module one black or white square. Everything about print size comes back to keeping a module large enough to photograph.
- Version 1 to 40, the size of the grid. More text means a higher version, and a higher version needs more printed area, not less.
- Error correction Reed-Solomon redundancy baked into the pattern, at roughly 7%, 15%, 25% or 30% recoverable for levels L, M, Q and H. It is why a code with a logo over the middle can still read.
- The redundancy costs room level H holds roughly half the data of level L in the same grid. Asking for more damage tolerance on a long string pushes the version up twice over.
- Quiet zone the blank margin around the code, four modules wide. Part of the specification, not decoration.
What you can put in a QR code besides a link
- A web address write it in full with https://. Without the scheme many readers treat it as plain text and do nothing useful.
- Wi-Fi credentials WIFI:T:WPA;S:NetworkName;P:password;; lets a phone join without typing. Worth knowing that anyone who photographs the code has the password.
- A contact card a full BEGIN:VCARD … END:VCARD block. It gets long quickly, which pushes the version up and the code gets dense: often a link to a contact page scans better.
- An email or a phone call mailto:someone@example.com or tel:+391234567890, both of which open the right app with the details filled in.
- Plain text a table number, a serial, a short note. It appears on screen as text; nothing opens.
Why a QR code does not scan
Printed too small is the most common reason, and the rule of thumb is simple: the code needs to be about a tenth of the scanning distance. Read from 30 cm away it should be at least 3 cm across; across a room, much bigger. A denser code, more text, or higher error correction, needs more size, not less, because each module has to stay big enough for the camera to resolve.
The quiet zone is the second. QR codes need a clear margin of four modules on every side, and a design that crops the code tight against a coloured background or another graphic takes that away. The scanner then cannot tell where the code ends, and simply does not see it.
Contrast and inversion are the third. Dark on light is what scanners expect; light on dark works on some readers and not others, and mid-tone on mid-tone works on none. The same goes for a code printed over a photograph: it may look good in the mockup and fail on half the phones in the room.
Questions people ask
Are QR codes generated here free to use commercially?
Yes. A QR code is a pattern derived from your text, with no licence attached. Use it on packaging, posters or anything else.
Do these codes expire?
No. The text is encoded in the pattern itself, so the code works for as long as whatever it points at does. Nothing here phones home.
How big should I print a QR code?
About a tenth of the distance it will be read from: at least 3 cm across for 30 cm, proportionally larger for further. Leave the white margin: it is part of the code.
Which error correction level should I pick?
M for most things. Choose Q or H when the code will be small, curved, or likely to get dirty or scratched: it survives more damage but comes out denser.
Can I change where a code points after printing it?
Only if it points at a URL you control and can redirect. The code itself cannot be edited: the text is baked into the pattern.