The QR code guide
Everything worth knowing before you print one: which format to use, what error correction buys you, and the four reasons codes fail to scan.
Head back to the generator whenever you want to make one.
A free QR code generator with no catch
Most “free” QR code generators are free until they are not. You design a code, print it on a thousand flyers, and three weeks later it redirects to a paywall asking for a subscription to reactivate the link you thought you owned. That business model works because a dynamic QR code does not contain your destination — it contains a short link to a server that the generator controls. Stop paying, and the server stops redirecting.
The generator on this site does the opposite. Your text or URL is encoded directly into the pattern, in your browser, using nothing but your own device. The characters you type are never transmitted to us. Nothing expires, nothing is watermarked, and there is no account gate in front of the download button. The site is funded by the ads around the tool rather than by holding your codes hostage.
How to make a QR code
- Type or paste your content into the field on the generator. A full URL (including
https://) is the most common use, but any plain text works. - Choose your colours. Set a foreground and background, or click one of the preset swatches. Keep the contrast high — see the scannability notes below.
- Pick a size. 256 px is fine for screens. For anything going to print, choose 768 px or type a custom value up to 2048 px so the edges stay crisp when scaled.
- Test it before you commit. Scan the on-screen preview with the phone you expect your audience to use, then download the PNG.
What you can put in a QR code
A QR code stores text. Phones interpret certain text patterns as actions, which is why some codes open a browser and others offer to save a contact. The common formats:
- Website — a full URL such as
https://example.com/menu. The single most-scanned type. - Plain text — a serial number, a wall of instructions, a coupon code. The phone simply displays it.
- Phone number —
tel:+15551234567opens the dialler. - Email —
mailto:you@example.com?subject=Helloopens a pre-filled draft. - SMS —
sms:+15551234567?body=JOINpre-fills a message. - Wi-Fi —
WIFI:T:WPA;S:NetworkName;P:password;;lets a guest join without typing the password. - Location —
geo:37.7749,-122.4194opens a map pin. - Contact card — a vCard block, which prompts the phone to save a new contact. These get long, so expect a dense pattern.
You can paste any of these straight into the generator and the code will encode them correctly.
Error correction, and why QR codes survive being damaged
Every QR code carries redundant data so it still reads when part of it is scratched, smudged, or covered. There are four levels, and the trade-off is always the same: more resilience means more modules, which means a denser, physically larger code for the same content.
- Level L — roughly 7% of the code can be lost. Best for clean digital use and long URLs.
- Level M — roughly 15%. The general-purpose default, and what this tool uses.
- Level Q — roughly 25%. Sensible for outdoor signage or anything that gets handled.
- Level H — roughly 30%. Required if you plan to place a logo over the centre of the code.
That last point is the reason logo-in-the-middle QR codes work at all: the logo is deliberate damage, and level H is what pays for it.
Why your QR code is not scanning
Almost every failed scan comes down to one of four things.
1. Not enough contrast
Scanners threshold the image into black and white. Two mid-tone colours that look different to your eye can land on the same side of that threshold. Dark foreground on a light background, with a large luminance gap, is the reliable choice.
2. The code is inverted
A light pattern on a dark background is backwards from what the specification describes. Modern iPhone and Android cameras usually cope, but older scanners, dedicated barcode readers, and many in-app scanners do not. If your audience is broad or your code is going to print, use a dark foreground on a light background. Invert it only for on-screen use where you have tested the result.
3. No quiet zone
A QR code needs an empty margin at least four modules wide on all sides so the scanner can find its edges. Codes fail constantly because a designer cropped them flush to a coloured block or laid them over a busy photograph.
4. It is printed too small
The working rule of thumb is a 10:1 ratio: the code should be about one tenth as wide as the distance it is scanned from. A code read at arm’s length (30 cm) needs to be about 3 cm across. A poster read from 3 m needs about 30 cm. Longer content produces a denser grid and pushes that minimum up further, which is a good reason to keep URLs short.
Static and dynamic QR codes
A static code has the destination baked into the pattern itself. It works offline, forever, with no dependency on any company. The downside is that changing where it points means printing a new code.
A dynamic code encodes a short link that redirects. That buys you two things: you can change the destination after printing, and you can count scans. It costs you permanence, because the code is only as durable as whoever runs the redirect.
The download button on the generator always gives you a static code. If you want the dynamic kind, you can sign in and create a tracked link with scan analytics — but reach for it deliberately, and only when the ability to re-point a printed code is worth the dependency.
Common questions
Do codes expire, can you use them commercially, how much data fits, what happens to your data — those live on the FAQ page, grouped by topic. For where codes actually earn their place, see use cases.
Ready to make one?
Open the generator