QR Code Generator

Generate QR codes for URLs, Wi-Fi, contact cards, email, and text — instantly, for free. Customise colours, dot style, and size. Download as PNG or SVG. Generated entirely in your browser — see how private this actually is in the FAQ below.

QR code settings
Changes update the preview instantly
Content type
Dot style
Colours
Output size — 600 px
300px 1200px
Error correction level
Centre logo (optional)
Upload PNG or SVG logo
Requires Q or H error correction
Live preview
Enter content to generate
URL · privacytestlab.com
https://privacytestlab.com

What you can encode in a QR code

Website URLs

Link to any webpage — your portfolio, product page, social profile, or landing page. The most common QR use case worldwide.

Wi-Fi credentials

Let guests connect to your network instantly by scanning — no typing long passwords. Works on iOS and Android natively without any app.

Contact cards (vCard)

Share your name, phone, email, company, and address in one scan. Saved directly to the scanner's contacts app immediately.

Email address

Encode an email address with a pre-filled subject and body. Scanning opens the mail app with everything ready to send.

Phone number

Encode a phone number so scanning immediately opens the dialler — great for business cards, menus, and printed materials.

Plain text

Encode any short message, address, event details, or instructions. Displayed directly on screen when scanned — no app needed.

QR code best practices — make yours scannable and professional

Minimum print size: 2 cm × 2 cm

Smaller than 2 cm becomes unreliable for most phone cameras. For billboard use, scale proportionally — QR size should be 1/10th of scanning distance.

Use H error correction with logos

Adding a centre logo covers up to 30% of the code. H-level (30%) error correction ensures it stays scannable. Never use L or M with a logo overlay.

High contrast is mandatory

QR modules must contrast strongly with the background. Light QR on dark background works — but never similar colours. Red on green fails colour-blind scanners.

Always keep a quiet zone

Leave at least 4 module widths of white space around all 4 edges. Printing a QR flush to the edge of a design is the most common scanning failure cause.

Use short URLs for simpler codes

Longer URLs create more complex QR patterns that are harder to scan. Use a URL shortener or a redirect on your domain to keep codes simple and reliable.

Download SVG for print, PNG for web

SVG is vector — infinitely scalable without pixelation. Use PNG for social media and web. Use SVG for business cards, print, and signage.

What most QR generators don't tell you

A QR code looks like a simple image, but the encoding format, physical permanence, and cross-device scanning behavior all have real-world failure modes worth understanding — especially the privacy angle, which almost no generic QR tool thinks to mention.

A printed Wi-Fi QR code is a permanent, photographable copy of your password

Unlike telling someone your Wi-Fi password out loud, a printed QR code sitting on a wall or table can be photographed by anyone who walks past — and unlike a piece of paper with the password written on it, most people don't think to treat a QR code as sensitive the same way. If you're generating a Wi-Fi QR code for a semi-public space (a café, an Airbnb, an office lobby), consider that it's effectively broadcasting your network credentials to anyone with a camera, not just the people you intend to share it with.

The Wi-Fi QR format has a syntax that breaks silently on special characters

Wi-Fi QR codes encode a specific string formatWIFI:T:WPA;S:mynetwork;P:mypassword;; — where semicolons, commas, colons, and backslashes are structural characters. If your network name or password contains any of these, they need to be escaped with a backslash or the generated code can scan successfully but hand the connecting device a corrupted network name or password, failing silently rather than throwing an obvious error. This is a common, under-documented cause of "the QR code scanned fine but it won't connect."

Static and dynamic QR codes trade permanence for flexibility

This tool generates static QR codes: the destination URL or data is encoded directly and permanently — reliable forever, but if a linked page moves, the code breaks with no way to fix it after printing. Dynamic QR codes instead encode a redirect URL you control, letting you change the destination later, at the cost of depending on that redirect service staying online indefinitely. For anything printed permanently (business cards, signage), a static code to a URL you own and won't change is usually more durable than a third-party dynamic-QR service.

Longer content doesn't just take more data — it makes the code visually denser

QR codes come in 40 standard sizes ("versions"), from a 21×21 module grid up to 177×177. A short URL under about 25 characters typically fits in one of the smallest versions and stays visually simple even at small print sizes. A long marketing URL loaded with UTM tracking parameters can push the code into a much higher version with far more modules packed into the same physical space — which is exactly why it becomes harder for a phone camera to resolve at a glance, especially at small sizes or from a distance.

Native scanning support isn't universal across devices

iOS has scanned QR codes directly from the Camera app since iOS 11, with no separate app required for URLs, Wi-Fi, contacts, or text. Android's native support depends heavily on the manufacturer's camera app and Google Lens integration — behavior is inconsistent across OEMs and older Android versions, and some devices still need a dedicated QR scanning app. If a QR code needs to work reliably for an unknown audience, don't assume every phone handles every content type the same way.

Frequently asked questions

“Do QR codes expire?”
The QR code image itself never expires — it's just an encoded pattern with no built-in lifespan. What can "expire" is the content it points to: a static code encoding a URL will keep working forever as long as that URL stays valid, but if the destination page is removed or moved, the code effectively stops working even though it still scans.
“Is it safe to share my Wi-Fi password as a QR code?”
It's convenient, but worth thinking about where you display it. A printed Wi-Fi QR code is a permanent, photographable copy of your network password — anyone who can see and photograph it can connect later, not just the person you handed it to in the moment. Fine for a private home; worth reconsidering for a semi-public space unless you're comfortable with wider access.
“Why does my QR code look denser or more complex for some content than others?”
QR codes scale across 40 standard sizes based on how much data needs to be encoded and your chosen error correction level. Short content like a brief URL fits in a small, simple grid. Long content — a lengthy URL with tracking parameters, or a large vCard — needs a bigger grid with more modules packed into the same visual space, which is why it looks noticeably denser.
“Can I edit a QR code after I've generated and printed it?”
No — a static QR code (what this tool generates) has its content permanently encoded in the pattern itself. If you need to change the destination later without reprinting, you'd need a dynamic QR service that redirects through a URL you control, which is a different trade-off: flexibility now, but dependence on that redirect service staying online indefinitely.
“Will every phone scan this QR code without needing an app?”
Most modern phones, yes. iOS has scanned QR codes natively through the Camera app since iOS 11. Android's native support varies by manufacturer and OS version — most recent Android phones handle it through Google Lens integration, but some older or budget devices may still require a dedicated QR scanner app.
“What's the difference between error correction levels, and which should I use?”
L (7%), M (15%), Q (25%), and H (30%) describe how much of the code can be damaged or obscured and still scan correctly. Higher levels add redundancy at the cost of a denser code. Use Q or H if you're adding a centre logo (it needs to cover the loss), and L or M for plain codes where you want the simplest, most easily scannable pattern.
“Why did my Wi-Fi QR code fail to connect even though the code scanned fine?”
This usually means a special character in your network name or password — like a semicolon, comma, or colon — wasn't escaped correctly in the underlying Wi-Fi QR format, corrupting the credentials the scanning device receives even though the code itself scans without error. If your SSID or password contains punctuation, double-check the connection manually as a backup.
“Is this QR code generator actually private — does the content go to your servers?”
No. QR code generation happens entirely in your browser using client-side JavaScript — the URL, Wi-Fi password, or contact details you enter are never transmitted to PrivacyTestLab's servers. You can verify this yourself by checking your browser's Network tab while generating a code. See our transparency page and privacy policy for the full data-handling policy.

Community

Get the next leak test before it's news

Tool releases and research notes, sent when there's something worth reading. Nothing else.

At least 10 characters.