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.

100% Client-Side PrivacyZero Installation

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

#0f172a
#ffffff

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

Version 225 × 25 modulesEC M20 chars encoded

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

  1. 1Pick a content type — URL, text, Wi-Fi, vCard, email, SMS, phone, or WhatsApp — and fill in the details.
  2. 2Style it: colors or a preset palette, dot style, quiet zone, and an optional center logo (error correction locks to H automatically).
  3. 3Check the scan-readiness panel — contrast, quiet zone, and minimum print size — then fix any warnings.
  4. 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.

Got Questions?

Frequently Asked Questions

Do these QR codes ever expire?
No. These are static QR codes: the destination data is encoded directly in the pattern, with no redirect through any server — so there is nothing that can expire, be switched off, or be put behind a paywall. A link code works for as long as the page it links to exists.
What is the difference between a static and a dynamic QR code?
A static code holds your content in the pattern itself and cannot be edited after printing. A dynamic code holds a short link to the vendor's server, which can be re-pointed and tracked — but it stops working if the plan lapses. This tool makes static codes only, and says so plainly.
Can I add my logo without breaking the code?
Yes. The logo is drawn at about 22% of the code width on a white backing, and error correction locks to H (30% recovery) automatically while a logo is present. Keep the logo small and test-scan the downloaded file with your phone before printing.
Should I download PNG or SVG?
Use PNG for screens, messages, and documents. Use SVG for anything printed — business cards, packaging, posters — because vector scales infinitely without pixelation. PNG sizes go up to 2048 px; SVG has no size limit.
What size should I print a QR code?
Each module needs about 0.75 mm on paper. Multiply your code's module count by 0.75 mm for the minimum width — the scan-readiness panel computes it for your exact code. As a rule: at least 2 cm on business cards, 3–5 cm on flyers, and always scan-test before printing.
Why won't my QR code scan?
The usual causes are low contrast, no quiet zone (blank margin — the spec minimum is 4 modules), a logo that is too large, printing too small, or overloaded content. This tool's scan-readiness panel flags all five before you download.
Are QR codes generated locally?
Yes. The QR matrix is rendered directly in your browser using a client-side engine. Your URLs, Wi-Fi passwords, and contact details are never uploaded, logged, or stored.

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

PropertyStatic (this tool)Dynamic (paid platforms)
What it holdsYour content, directly in the patternA short link to the vendor's server
ExpiryNever — nothing to switch offEnds when the plan lapses
Editing after printImpossible — print a new codePossible — the redirect is re-pointed
Scan trackingNone — nobody sees scansCounts, 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:

LevelRecoverable damageUse 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

  1. Low contrast — a light code on a light background, or inverted colors. Scanners read darkness differences, not hues.
  2. No quiet zone — cropping the blank margin. The spec minimum is 4 modules on every side.
  3. Logo too large — covering more than ~30% of the code, or using anything below error correction H with a logo.
  4. Printed too small — below 0.75 mm per module, or a dense code squeezed onto a business card.
  5. 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

View all Design & Media Tools