How to create a QR code: the complete guide
Choose the right type, encode it, design it without breaking it, export the right file, and test before printing. The whole process in one place.
Making a QR code takes about thirty seconds. Making one that still works after it is printed on five thousand menus takes five steps. This covers both.
Step 1 — Pick the right type
This is the decision people skip, and it determines everything else. A QR code does not "contain a link" — it contains whatever text you put in it, and the phone decides what to do based on the format.
| You want someone to… | Use |
|---|---|
| --- | --- |
| Open a web page | URL |
| Join your WiFi | WiFi |
| Save your contact details | vCard |
| Message you on WhatsApp | |
| See a restaurant menu | Menu |
| Pay you in Brazil | PIX |
| Pay you in India | UPI |
| Follow you on social | Social |
Choosing WiFi instead of plain text is not cosmetic: the WiFi format makes the phone offer to *join the network*, while plain text just shows the password on screen.
Step 2 — Keep the content short
Every character adds modules — the little squares. More modules at the same physical size means smaller squares, and smaller squares fail sooner.
Two habits that pay off:
- Strip tracking parameters.
example.com/page?utm_source=flyer&utm_medium=print&utm_campaign=summermore than doubles the data versusexample.com/page. If you need the tracking, put it in a redirect on your own domain. - Drop optional fields. A vCard with address, job title and two phone numbers produces a visibly denser code than one with name, phone and email.
You can see this immediately: type a long URL, then a short one, and watch the pattern get simpler.
Step 3 — Design it, carefully
Colour and logos are fine. Both have limits.
Colour. Dark modules on a light background, always — inverted codes fail on many scanners. Aim for a contrast ratio of at least 4.5:1. Avoid red modules, which some monochrome scanners read as light.
Logo. Keep it at or below 25% of the code area, and set error correction to H. The logo is damage from the scanner's point of view, and error correction is the budget that repairs it — you want headroom left for real-world scratches and print imperfection. See adding a logo without breaking the code.
Never cover the three corner squares. Those are position markers. The scanner uses them to find the code at all, and they are not repairable data.
Step 4 — Export the right file
This is where most free generators start charging, so it is worth knowing what you actually need.
| Use | Format | Why |
|---|---|---|
| --- | --- | --- |
| Print, any size | SVG | Vector. Infinitely sharp, tiny file |
| Print via a designer or press | Vector, and universally accepted | |
| Print shop that insists | EPS | Older workflows still ask for it |
| Website, slide, social | PNG at 1000 px+ | Raster is fine on screens |
The rule: anything going on paper should be vector. A QR code is thin lines and sharp edges, which is exactly what suffers when a raster image is scaled up. Exporting a 300 px PNG and stretching it across a poster is the most common cause of a code that "worked on my screen".
Step 5 — Test before you commit
The step everyone skips, and the only one that catches expensive mistakes.
- Check it decodes. A good generator does this for you — ours decodes every code the way a phone camera would and compares the result to what you typed.
- Print one at final size, on the real material.
- Scan with an older phone, not your newest one. A two-year-old Android in dim light is the real test.
- Try it at the real distance and angle, in the actual lighting.
- Only then approve the full run.
If you already have a code from somewhere else, our QR code tester will tell you whether it will survive.
Sizing, briefly
The rule worth memorising: a code should be at least one tenth of the distance it is read from.
- Business card: 1,5–2 cm
- Table tent: 3–4 cm
- A1 poster: 20–30 cm
- Billboard at 20 m: 2 m — which is why most billboard QR codes never worked
Always leave a quiet zone of 4 modules of empty space on all four sides. Full detail in QR code size for print.
Mistakes worth avoiding
Using a generator that requires an account. That almost always means a dynamic code — one that redirects through their server and stops working when the trial or subscription ends. See do QR codes expire.
Forgetting the https://. Encode example.com and some scanners treat it as plain text instead of a link.
No call to action. A bare square gets ignored. "Scan for our menu" measurably outperforms nothing at all.
Not printing the URL in text. It is a fallback when the scan fails, and after all the QR-scam coverage it is a trust signal.
Linking to a page that is not mobile-friendly. The code works, the experience does not, and the customer blames the code.
In short
- Pick the type that matches what should happen — not just "URL" for everything
- Keep the content short; every character costs robustness
- Logo at 25% or less, error correction H, dark on light
- Vector for print, PNG for screens
- Print one, test on an old phone, then run it
Create a QR code now — free, no signup, all formats included, and generated in your browser so nothing you type is uploaded.