I used to think QR codes needed an app, an account, and ten minutes. Then I timed the browser flow: how to create a QR code free takes about 60 seconds — type, size, download, scan-tested. Here is the exact process I ran on September 20, 2026 for a menu URL, a WiFi network and a 200-character event note, plus the content-formatting details that decide whether phones open the right app.
This is part of the free QR code generator guide — the pillar covers the whole system, this tutorial is the hands-on walkthrough. Open the free QR code generator in the next tab and follow along. No signup, no watermark, works offline after load, codes never expire.
What you need before you start (1-minute prep)
Do not open the tool yet. Decide two things and the rest is mechanical. I learned this after generating a gorgeous code for a 340-character tracking URL that no budget phone could read.
- The exact content: final URL (short beats long), exact text, phone with country code, or email with subject. Shorter content = sparser pattern = easier scanning.
- Where it will be scanned: phone screen and chat (512px), printed handout (512px), poster or storefront (2048px). Distance decides size — full math in QR code size and print guide.
- WiFi or payment? Those need special formatting — use the WiFi QR generator for networks and see UPI payment QR guide for payee strings. Plain-text hacks fail silently.
Reader story (Mumbai tutor): she keeps a sticky note with her short course URL + UPI ID on the monitor. New code per batch takes 40 seconds. Boring system, zero failed prints in a year.
How to create a QR code in 5 steps
Step 1 — Enter the URL, text, phone or email
Type or paste content into the generator. For URLs, use the shortest final link — https://example.com/menu beats a 200-character UTM monster. Every extra character densifies the pattern. If you must track clicks, use a short redirect you control, not a 340-character analytics URL printed at 2 cm.
Step 2 — Pick 512px for screens, 2048px for print
512px PNG for websites, WhatsApp, slides, social posts. 2048px PNG for posters, flyers, menus, anything scanned beyond arm's length. My rule: viewing distance over 1 meter → 2048px, always. Regenerate rather than upscale — a stretched 512px file blurs module edges.
Step 3 — Preview and judge the density
Eyeball the preview. Sparse grid (short URL) = scans from anywhere. Dense snowstorm (200 characters) = needs size. If yours looks like static noise, shorten the content or commit to a 4 cm+ print — never shrink dense codes. Density examples with photos logic in the sizing guide.
Step 4 — Download with a sane filename
Click Download → qr-menu-512.png, event-feedback-2048.png. Never “qr-final-v2”. PNG is lossless and print-safe; avoid re-saving as JPG, whose compression smudges the black-white edges scanners read.
Step 5 — Test-scan on two phones before bulk printing
Scan the screen preview with your phone, then print ONE copy and scan from the real distance and lighting. I caught a beige-on-cream contrast failure at this step that would have wasted ₹2,000 in flyers. Old Android + iPhone, sunlight, low brightness — one flagship in office light proves nothing. Failures? QR not scanning fixes.
Content formats that open the right app
| You want | Encode this way | Phone does |
|---|---|---|
| Open a website | Full URL with https:// | Opens browser |
| Call a number | Number with country code, e.g. +91 98765 43210 | Opens dialer |
| Send an email | Address + subject line | Opens compose prefilled |
| Show text | Plain text, keep under ~200 chars | Displays note |
| Join WiFi | Use the WiFi tool (SSID exact) | Joins network |
| Share contact | vCard fields | Offers save-contact |
Contact cards deserve care — field order decides whether iPhone and Android both import cleanly. See vCard QR guide. For guest networks, the WiFi QR guide covers WPA/WEP, hidden SSIDs and special-character escaping.
Shorten before you encode: URL hygiene that halves failures
The single biggest quality lever is the URL itself. A 40-character link encodes as a sparse, forgiving grid; a 300-character tracking URL encodes as a dense brick that needs 4 cm+ to scan. Before generating, strip what scanners do not need: remove UTM parameters for print codes (keep them for digital-only use), use your site's short slugs (/menu not /pages/restaurant-menu-final-2026), and prefer your own domain over third-party shorteners — if bit.ly ever breaks or flags the link, your 500 flyers die with it.
- Print codes: under ~60 characters ideal. Test: if the preview looks airy, you are safe at 2–3 cm.
- Digital codes (chat, slides): length barely matters — screens render perfectly and viewers pinch-zoom. Long URLs acceptable here.
- Never encode: links behind logins (gym member portal), expiring drive shares, or staging URLs. The code outlives all three, and customers land on errors.
- HTTPS always: phones warn on plain http:// links; some corporate devices block them outright. Five characters that cost nothing.
5 first-timer mistakes (I made 3)
- Printing untested. 500 flyers, zero scans. Always one-copy test first.
- Tracking-URL bloat. 300-character URLs make unscannable bricks. Shorten first.
- JPG re-saves. Each JPG save blurs edges. Keep PNG end to end.
- No quiet margin. Pattern touching text or borders fails. White space is functional.
- Assuming one phone proves all. Test old + new, Android + iPhone, sun + shade.