QR code generator

Turn any link, text or contact info into a scannable QR code.

Did you know?

Type or paste any text or URL into the box above and a QR code is generated instantly. Pick the size and error correction level, then click Download as PNG to save it. Works for websites, contact cards, WiFi passwords, payment links and more.

Read the full guide →
Medium (15%)

What is a QR code?

When to use which error correction level

Low (7%): small physical sizes, simple use, perfect printing conditions.

Medium (15%): the default, works well for most digital and printed uses.

High (30%): outdoor signs, stickers that may peel, or codes with a logo overlay.

Static vs. dynamic QR codes

This tool generates a static QR code — the data is encoded directly into the pattern, so it works forever with no service behind it, but the destination can't be changed after printing. Dynamic QR codes instead point to a short redirect link that you can repoint later, usually through a paid service, which also adds scan tracking. For a one-off flyer or business card, static is simpler and has no ongoing dependency; for anything printed in bulk where the link might need to change, dynamic is worth the trade-off.

Design tips before you print

Keep a quiet zone — a plain border with no other content — around the code; scanners use it to find the edges. Test a printed copy at its actual final size before running a full batch, since a code that scans fine on a screen can fail at business-card size. And always test with more than one phone; camera quality and QR-reading behavior vary between devices.

The most common reason a branded QR code fails

Light gray on white, or pastel colors matched to a brand palette, might look better in a mockup, but low contrast between the foreground and background is one of the most common reasons a QR code won't scan — scanners rely on a clear boundary between the two, not just human-readable aesthetics. If you're customizing colors, keep the contrast strong and test the actual printed result before finalizing, the same way you'd check contrast for body text.

Shorter data makes a simpler, more reliable code

A QR code can technically hold thousands of characters, but more data means a denser pattern of smaller squares, which needs a larger printed size to stay scannable. A long tracking URL with dozens of parameters produces a noticeably busier code than a short link pointing to the same destination. If you're encoding a URL and scannability at a small size matters — a business card, a product label — shortening the link first keeps the code simpler and more forgiving of imperfect lighting, printing, or camera quality.

FAQ

What can I put in a QR code?

URLs, plain text, contact details (vCard format), WiFi credentials, payment links, app store links, calendar events and more.

Do QR codes expire?

No. A QR code is just an image — it never expires. But if it links to a URL, the code stops working if that URL goes offline.

What is error correction?

It is built-in redundancy that lets a QR code remain scannable even when partially damaged. Higher levels = more reliable but slightly larger code.

Why won't my colored or branded QR code scan?

Usually it's low contrast between the foreground and background colors. Light gray on white or pastel combinations often look fine to the eye but don't give scanners a clear enough boundary to read reliably.