QR Code Generator
Static QR codes built in your browser, never uploaded.
Version 2, 25 × 25 modules, byte mode, level M. Encoding 26 characters.
How the QR Code Generator works
The encoding happens in this page, so whatever you type stays on your machine. That matters more than it sounds for a Wi-Fi password, and it matters for a link too: many free QR sites hand back a code pointing at a redirect they own, which stops working the day they decide it should.
Also known as: free QR code maker · QR code creator no sign up · static QR code that never expires · WiFi QR code generator · QR code SVG download
Static and dynamic codes, and why the difference costs money
A static code carries your content inside the pattern. Scan it and the phone reads the URL, the Wi-Fi credentials or the text directly out of the modules. Nothing is looked up, no server is involved, and the code works forever because there is nothing to switch off.
A dynamic code carries a short URL belonging to whoever generated it. Scanning it goes to their server, which redirects to wherever you have currently pointed it. That buys two genuine features: you can change the destination after printing, and you get scan analytics. It also means your code stops working if that company folds, changes terms, or moves you onto a plan you decline to pay for.
The commercial model follows from this. Free tiers that quietly issue dynamic codes are issuing something they can later charge you to keep alive, and a fair number of people have discovered this after printing several thousand flyers. This page only makes static codes, which is a limitation and is also the reason it costs nothing and never will.
Choosing an error correction level
QR uses Reed-Solomon coding, the same family of error correction used on CDs and in deep space communication, and it can reconstruct missing data rather than merely detect it. The four levels reserve different proportions of the symbol for that reconstruction: roughly 7% at L, 15% at M, 25% at Q and 30% at H.
The cost is size. Higher correction means fewer modules available for your content, so the symbol grows to the next version, sometimes several. A URL that fits comfortably at level L may need a symbol twice the area at H, which matters when the space on the packaging is fixed.
M is the sensible default and what most printed codes use. Move up to Q or H when the code will be small, outdoors, on something that gets handled, or partly covered by a logo. Level L is worth choosing only when you genuinely need the smallest possible symbol and the code will live somewhere clean and flat, like a screen.
Printing so the thing actually scans
The rule of thumb is that the code should be about a tenth of the distance it will be scanned from. Read at 30 cm, roughly 3 cm across. Read across a room at 3 m, roughly 30 cm. Below about 2 cm most phone cameras struggle regardless of print resolution, because the limiting factor becomes minimum focus distance rather than detail.
The quiet zone is the part people cut off. The specification requires four modules of clear space on every side, and it is not decorative: it is how a scanner finds the boundary of the symbol. A code butted up against a border or a block of text fails intermittently, which is worse than failing outright because it looks like the reader's fault.
Print in vector where you can. A rasterised QR at the wrong resolution puts module edges between pixels, and the anti-aliasing that follows blurs the boundary a scanner is trying to threshold. The SVG download avoids the problem entirely; the PNG here rounds to a whole number of pixels per module for the same reason.
Colour, contrast and inversion
Scanners work on brightness rather than colour, so the useful question is not whether two colours look different but whether one is much darker than the other. A red code on a white background reads fine. A yellow one usually does not, because yellow is nearly as bright as white.
Inverting a code, light modules on a dark background, is the mistake that looks best in a design review. The specification allows for it and a good number of readers handle it, but plenty do not, and those fail silently. If a brand demands a dark background, the safer route is a dark code inside a white panel.
Gradients are the same story one step further. A gradient that stays dark throughout will usually work; one that fades towards the background will fail across part of the symbol, and which part depends on where the finder patterns landed. If you are going to try it, test on several phones, including an older Android, before it goes to print.
What the pattern is made of
The three big squares in the corners are the finder patterns, and they are what lets a scanner locate the code at any angle. Their 1:1:3:1:1 ratio of dark and light is uncommon enough in ordinary images that a camera can hunt for it cheaply. Three corners rather than four is what fixes the orientation.
The dotted lines running between them are the timing patterns, which tell the reader how wide one module is. The smaller concentric squares dotted through larger codes are alignment patterns, correcting for the barrel distortion you get when a code is photographed on a curved surface or at an angle.
The rest is your data interleaved with its error correction, then XORed with one of eight mask patterns. The mask exists purely to break up large blocks of one colour and any accidental resemblance to a finder pattern, both of which confuse readers. The encoder builds all eight, scores each against the four penalty rules the specification defines, and keeps the lowest. That is why editing one character can change the whole appearance of the code.
Wi-Fi codes, and where the escaping matters
A Wi-Fi QR code is a specially formatted string that Android and iOS both recognise: the network type, the SSID, and the password, separated by semicolons. Scanning it offers to join the network without anyone reading a twenty-character password aloud across a room.
The escaping is the part that goes wrong. Semicolons, colons, commas, backslashes and double quotes are all delimiters in that format, so a password containing any of them has to be escaped with a backslash or the string parses into the wrong fields. This page does that for you, which is worth knowing if you have ever generated a Wi-Fi code elsewhere that simply did not work.
Two practical notes. Hidden networks need the hidden flag set or the phone will not find the network to join. And a printed Wi-Fi code is a printed password: anyone who photographs it has your key, so a guest network is the right thing to put on the wall of a cafe, not the one your card terminal is on.
Frequently asked questions
Do these codes expire?
No, and they cannot. The address is written into the pattern itself, so scanning it goes straight to your link with nothing in between. Codes that expire are dynamic ones, which encode a short URL owned by the company that made them and redirect from there.
Is my Wi-Fi password sent anywhere?
No. The whole encoder runs in your browser and this page makes no network request when you type. You can confirm it by opening your browser's network tab, or by disconnecting from the internet after the page loads: everything still works.
Which error correction level should I use?
M for almost everything, which is what most printed codes use and tolerates about 15% damage. Go to Q or H if the code will be printed small, sit outdoors, get handled, or carry a logo over the middle. L only when you need the smallest possible symbol.
How small can I print a QR code?
The usual guidance is that the code should be about a tenth of the scanning distance, so a code read from 30 cm wants to be roughly 3 cm across. Below about 2 cm most phone cameras start to struggle regardless of resolution, because the limit is focus rather than pixels.
Can I use colours?
Yes, within limits. Scanners read brightness, not hue, so keep the foreground much darker than the background. Never invert a code to light-on-dark: some readers cope and many do not, and the ones that fail do so silently.
PNG or SVG?
SVG for anything going to print or into a design, because it scales to any size without softening the module edges. PNG for anything going into a document, an email or a platform that will not take vector. The PNG here always uses a whole number of pixels per module, which is what stops the edges blurring.
Why does the code get bigger when I add text?
A QR symbol comes in forty fixed sizes, and the page picks the smallest one your content fits into at the chosen correction level. More characters, or a higher correction level, means a larger grid. A long URL at level H can easily be four times the area of a short one at L.
Can I put a logo in the middle?
You can, using any image editor, and it is worth setting the correction level to Q or H first so the covered modules can be reconstructed. Keep the logo under about 20% of the width even at H, and test the result with more than one phone before printing anything.