Free QR Code Generator — Create Custom Vector QR Codes
Create crisp, scannable QR codes for websites, Wi-Fi networks, business cards, and WhatsApp chats in seconds — free, with no account and no watermark. Customize colors and dot styles, drop your logo in the center, and download print-ready PNG or vector SVG. Every code is static: the data lives inside the pattern itself, so it never expires, cannot be switched off, and is never tracked. A live scan-readiness check scores your contrast, quiet zone, and print size before you download, so the code you print is the code that scans.
Static codes, made entirely in your browser. The data lives inside the pattern itself — so a code never expires, needs no account, and can never be tracked or switched off. It also means the destination cannot be edited after printing: if a link might change, encode a URL on a site you control.
Content type
Design
Finder squares always stay square — scanners lock onto them first.
Center logo (optional)
Batch — up to 20 codes at once
One URL or text item per line, using the design above (logos are skipped in batch). Wi-Fi and vCard types fall back to plain text lines here.
Live preview
Scan-readiness check
- Color contrast
- 17.9 : 1 ✓
- Quiet zone
- 4 modules ✓
- Error correction
- M ✓
- Minimum print size
- ≈ 1.9 cm wide
Looks scan-ready — still test-scan the downloaded file with your phone before printing.
How to Use
- 1Pick a content type — URL, text, Wi-Fi, vCard, email, SMS, phone, or WhatsApp — and fill in the details.
- 2Style it: colors or a preset palette, dot style, quiet zone, and an optional center logo (error correction locks to H automatically).
- 3Check the scan-readiness panel — contrast, quiet zone, and minimum print size — then fix any warnings.
- 4Download PNG for screens or SVG for print, copy the image, or generate up to 20 codes at once as a ZIP.
Key Features
- ✓
Eight content types, including vCard and WhatsApp
URL, plain text, Wi-Fi login, contact card, email, SMS, phone, and WhatsApp chat — each builds the exact payload format phones expect, so scanning a Wi-Fi code joins the network and scanning a vCard saves the contact.
- ✓
Logo, colors, and dot styles — free, not paywalled
Upload a center logo, pick brand colors or a preset palette, and choose square, dot, or rounded modules. The finder squares always stay square, because scanners lock onto them first. Many popular tools charge for exactly this combination.
- ✓
Vector SVG export for print
Download PNG for screens and messages, or SVG for anything printed — business cards, packaging, posters, banners. Vector scales infinitely without pixelation, so a code printed two metres wide stays razor-sharp.
- ✓
A scan-readiness check with real numbers
Instead of a vague “looks good,” the tool computes your color contrast ratio, checks the quiet zone against the 4-module specification minimum, verifies error correction against your logo, and derives a minimum print size from the module count.
- ✓
Batch mode with ZIP download
Paste up to 20 URLs or text items, one per line, and download every code as a PNG in a single ZIP — one code per table, product, or guest, without generating them one by one.
- ✓
Print-size guidance built in
Each module needs roughly 0.75 mm on paper to scan reliably. The tool turns your code's module count into a minimum print width, so you know before printing whether a business-card code is big enough.
- ✓
100% client-side, honestly private
The QR matrix is built in your browser with a local engine. Your URLs, Wi-Fi passwords, and contact details are never uploaded, logged, or stored — which matters, because anyone who scans a Wi-Fi code can read its password.
Frequently Asked Questions
Do these QR codes ever expire?
What is the difference between a static and a dynamic QR code?
Can I add my logo without breaking the code?
Should I download PNG or SVG?
What size should I print a QR code?
Why won't my QR code scan?
Are QR codes generated locally?
How a QR code actually works
A QR code is a square grid of dark and light modules that encodes a short piece of text — a link, a Wi-Fi login, a contact card. Three large squares in the corners (the finder patterns) tell the phone camera where the code is and which way up it is; the remaining modules carry the data plus error-correction information. The grid grows with the content: a short URL becomes a sparse, easy-to-scan version-3 code, while a long vCard becomes a dense version-10 code whose tiny modules demand a larger print size. That is why shorter content scans better, especially in print — every extra character makes the pattern denser. If you are encoding a long link, consider a short URL on a domain you control first; the code gets simpler and you keep control of the destination.
Static vs. dynamic codes — the distinction that matters
| Property | Static (this tool) | Dynamic (paid platforms) |
|---|---|---|
| What it holds | Your content, directly in the pattern | A short link to the vendor's server |
| Expiry | Never — nothing to switch off | Ends when the plan lapses |
| Editing after print | Impossible — print a new code | Possible — the redirect is re-pointed |
| Scan tracking | None — nobody sees scans | Counts, locations, devices |
The common complaint — “my free QR code stopped working months after printing” — happens with dynamic codes whose redirect was switched off or replaced with an upgrade page. A static code cannot break that way: it works for as long as the destination itself exists. If you need scan counts, add UTM parameters to your link and read them in your own analytics instead of paying for a redirect.
Error-correction levels, explained
Every QR code carries redundant data so a damaged or partly covered code still scans. The level trades capacity for resilience:
| Level | Recoverable damage | Use it when |
|---|---|---|
| L — Low | ~7% | Clean screens, maximum content capacity |
| M — Medium | ~15% | The everyday default |
| Q — Quartile | ~25% | Outdoor or handled print |
| H — High | ~30% | Always, when a logo covers the center |
This tool locks error correction to H automatically while a logo is present — covering the center with a logo destroys modules, and only maximum redundancy keeps the code readable. Keep the logo around 22% of the code width, on a white backing, and test-scan before printing.
Print sizes that actually scan
The rule of thumb is 0.75 mm per module: multiply your code's module count by 0.75 mm to get its minimum reliable print width. The scan-readiness panel on this page computes it for your exact code. As a guide:
- Business cards and labels: at least 2 cm wide — and only for short content, since dense codes need more room.
- Flyers and menus: 3–5 cm, with a clear quiet zone (blank margin) of at least 4 modules on every side.
- Posters and packaging: 5 cm and up; for anything larger, use the SVG export so edges stay razor-sharp.
- Distance rule: a code scans from roughly ten times its printed width — a 3 cm code reads from about 30 cm away.
Whatever the size, the final check costs five seconds and catches every other mistake: scan the downloaded file with your own phone, on the real background, before you send anything to print.
What each content type puts inside the code
A QR code is just a container for text — the prefix in front of the text tells the phone what to do with it. A URL code holds the link itself (always include https:// so phones open it as a link, not plain text). A Wi-Fi code holds the network name, password, and security type in the standard WIFI: format, so the phone offers to join without typing. A vCard holds a structured contact record (name, phone, email, organization, website) that the phone saves straight into its address book. WhatsApp codes hold a wa.me link with an optional pre-filled message, and SMS codes hold a number plus an optional message body. Knowing the format matters when a code misbehaves: a Wi-Fi code that will not join almost always has a wrong security type or a mistyped, case-sensitive password.
For adjacent jobs, the barcode generator makes retail and inventory barcodes, the image compressor shrinks a logo before you embed it, the color palette generator finds brand colors with readable contrast, and the color contrast checker verifies a code's colors meet accessibility ratios.
The five mistakes that break QR codes
- Low contrast — a light code on a light background, or inverted colors. Scanners read darkness differences, not hues.
- No quiet zone — cropping the blank margin. The spec minimum is 4 modules on every side.
- Logo too large — covering more than ~30% of the code, or using anything below error correction H with a logo.
- Printed too small — below 0.75 mm per module, or a dense code squeezed onto a business card.
- Overloaded content — paragraphs of text in one code. Shorten the content or split it across codes.
Related Tools You Might Like
Handy utilities in Design & Media Tools
Barcode Generator
Generate custom barcodes online for free. Supports CODE128, EAN-13, and UPC formats. Download high-resolution vector SVGs for retail and packaging.
Color Contrast Checker
Check color contrast ratios against WCAG 2.2 AA and AAA accessibility standards. Ensure text readability for web designs with our free checker.
Image Compressor
Compress JPG, PNG and WebP images online for free — by quality slider or to an exact size like 100 KB. Batch ZIP download. No uploads, no sign-up.