How to Create a QR Code for Free
Making a QR code takes about fifteen seconds. Making one that still works in two years, on someone else's phone, in bad light, takes about five minutes — and this is the five minutes.
Three steps
1. Choose the type. A URL for almost everything. WiFi, contact details, email, phone, WhatsApp and calendar events each have their own format, and using the right one means the phone does the right thing automatically rather than showing a wall of text.
2. Enter the content. For a URL, include the scheme — https:// — because some older scanners will not add it back and will treat the string as plain text.
3. Download it. PNG for screens, SVG for anything going to a printer. Both, if you are not sure; they cost nothing. Which is which is explained in PNG versus SVG.
That is the whole mechanism. Everything below is about the code still working later.
The seven types, and when each is right
| Type | What the phone does | Watch out for |
|---|---|---|
| URL | Opens the page | Keep it short; the length sets the density |
| WiFi | Offers to join the network | Punctuation in the password must be escaped |
| vCard | Offers to save the contact | Usually too big for a business card |
| Opens a pre-filled message | Subject and body count towards the size | |
| Phone | Offers to dial | Always use +country format |
| Opens a chat with a message ready | Number without + or spaces in the link | |
| Event | Offers to add to the calendar | Time zones; test on both platforms |
Two of these have enough detail to deserve their own pages: the WiFi format and the vCard format. Both are places where a missing semicolon produces a code that scans perfectly and does nothing useful.
What "free" should mean
Plenty of generators are free to use and not free to keep. The distinction that matters is whether the code contains your data or a link to the generator's server.
- Static — your data is inside the image. Nothing to expire, nothing to pay, nothing to depend on.
- Dynamic — the image contains the provider's short link. It works while your account does.
If a generator offers scan statistics or the ability to edit a code after downloading it, the code is dynamic by definition: those features are only possible because the destination lives on their server. That may be a fair trade for a campaign, but it is a poor one for anything printed. The full comparison is in static versus dynamic QR codes.
Four checks before printing
- Scan it yourself, and read the destination. Not just "it beeped" — check the URL is the one you meant.
- Check the size against the distance. Reading distance divided by ten. A table card read from 30 cm wants 30 mm, not 15. The size guide.
- Leave the quiet zone alone. Four empty modules on every side, part of the code rather than a margin you can trim.
- Print a proof and scan the paper. Screens are more forgiving than paper in every respect that matters.
The full checklist has twelve, but those four catch most of it.
Keeping it working
A static code cannot expire, but the page behind it can move. The single best habit is to point printed codes at a short, stable path on your own domain — example.com/m — and have that path redirect to wherever the content currently lives. Then a site redesign is a one-line change instead of a reprint.
Beyond that: renew the domain, keep the certificate valid, and if the code lives outdoors or on a receipt, remember that paper and ink have their own lifespan. Why QR codes stop working lists the twelve usual causes and how to tell them apart.
Written by Manuel Llovet, who builds and maintains QR Code Free Forever. Published 2026-08-31, last checked 2026-09-08. Figures and measurements on this page were produced for this site; the method is described in each caption.