Design Tool

QR Code Generator

Turn any text, link, or Wi-Fi credential into a scannable QR code you can download instantly as a PNG.

100% free Data stays private No registration
Use QR Code Generator

Fill in the fields to generate your QR code.

Download PNG

About the QR Code Generator

A QR code stores text — usually a link — as a pattern a phone camera can read in a fraction of a second. These codes are static, which means they never expire and never redirect through a tracking service: whatever you type is exactly what a scanner reads, forever.

What this QR code generator makes

This tool turns text, a website URL, Wi-Fi network details, or a vCard contact card into a scannable QR code you can download as an image and print or share. Type or paste your content, pick an error correction level and size, and the QR code renders instantly in the browser.

Everything happens on your device — the content you encode, including anything sensitive like a Wi-Fi password or a phone number, is never uploaded anywhere or sent to a server [2](https://snipkit.app/qr-code-generator). That matters more than it sounds: plenty of QR generators quietly route your data through a backend, especially the ones offering 'trackable' or 'dynamic' QR codes.

The output is a standard QR code, readable by any modern phone camera or QR scanning app, with no dependency on our site to keep working — once it's generated and downloaded, it's just an image file that decodes on any standards-compliant scanner forever.

Supported content types

Plain text and URLs are the simplest case: whatever you type becomes the payload, and scanning it either opens a browser (if it's a valid URL) or shows the raw text. Always include the scheme (https://) on URLs — some scanners will search for text that looks like a domain instead of opening it directly if the scheme is missing [5](https://toolz.dev/tools/qr-generator).

Wi-Fi QR codes use a specific string format so phones recognize them as network credentials rather than plain text: `WIFI:T:WPA;S:NetworkName;P:password;;`. The T field is the security type (WPA/WPA2, WEP, or nopass for open networks), S is the SSID, and P is the password [3](https://allyouneed.dev/qr-generator/). Scanning this prompts the phone to join the network directly — handy for guest Wi-Fi printed on a card instead of read aloud.

vCard QR codes encode a contact card using the standard vCard format (name, phone, email, organization, etc.), so scanning the code offers to save a new contact rather than opening a link. This is the format behind most 'digital business card' QR codes, and it works the same on iOS and Android since both read standard vCard 3.0/4.0 payloads.

Other common formats you'll see across QR generators — mailto: links for email, tel: links for phone dialing, SMS pre-fill links, and geo: coordinates for map locations — follow the same idea: a small URI scheme wraps the data so the scanning app knows what action to offer instead of just displaying text [4](https://xerobit.dev/tools/qr-code-generator/).

Error correction levels: L, M, Q, H

QR codes use Reed-Solomon error correction so they still scan even if part of the code is damaged, dirty, or covered by a logo. There are four standard levels: L recovers from about 7% data loss, M about 15%, Q about 25%, and H about 30% [5](https://toolz.dev/tools/qr-generator).

Higher error correction adds redundancy, which makes the QR code denser and physically larger for the same content, since more of its modules (the black/white squares) are spent on recovery data rather than the payload itself. That's the trade-off: L gives you the smallest, simplest-looking code; H gives you the most damage tolerance but a busier-looking grid.

Use L or M for clean digital use — a QR code displayed on a screen or printed cleanly with nothing covering it rarely needs more than 15% redundancy. Reach for Q or H when you're placing a logo in the center of the code, printing on a material that might get scuffed (stickers, packaging, outdoor signage), or expect the print quality to be inconsistent, since the extra redundancy is what lets the code still scan with a chunk of it obscured.

QR versions, capacity and size

A QR 'version' refers to the grid size, from Version 1 (21×21 modules) up to Version 40 (177×177 modules); higher versions hold more data but require a bigger, denser code. The generator picks the smallest version that fits your content automatically, so you don't need to think about version numbers directly — just watch how the code visually gets denser as you add more text.

Capacity depends on both the version and the error correction level, and on what kind of data you're encoding. At the lowest error correction (L), Version 1 holds up to 41 numeric characters, 25 alphanumeric characters, or 17 bytes of raw data; a mid-size Version 10 at level M holds around 395 alphanumeric characters. As a rough real-world guide, a typical URL (40-80 characters) fits comfortably in a small, easily scannable code even at high error correction.

There's a practical ceiling worth knowing about: cramming a long block of text or a huge vCard into a QR code produces a very dense grid that becomes hard for cheap or older phone cameras to focus on and decode, especially at small print sizes. If your content is long, consider encoding a short URL that redirects to the full content instead of the raw text itself.

Worked example: a Wi-Fi QR code

Say your guest network is named 'CafeGuest' with WPA2 password 'sunshine2024'. The encoded payload is `WIFI:T:WPA;S:CafeGuest;P:sunshine2024;;`. If the SSID or password contains special characters like semicolons, colons, or backslashes, they need to be escaped with a backslash (`\;`, `\:`, `\\`) so the parser doesn't misread the string — most generators, including this one, handle that escaping for you automatically.

For an open network with no password, the format becomes `WIFI:T:nopass;S:CafeGuest;;` with the P field omitted entirely, since there's nothing to authenticate with.

Once generated, print the code at a size that scans easily from typical arm's length — roughly 2.5cm (1 inch) square minimum for close-range scanning, and larger if it will be viewed from further away, like on a poster or window decal. Test the printed version with two or three different phones before distributing it widely, since low-quality printers can blur the fine modules of a dense code.

Printing QR codes correctly

Always keep the 'quiet zone' — the blank margin around the QR pattern — intact. Scanners use that empty border to detect where the code starts and ends; cropping it too tight, even by a small amount, is one of the most common reasons a printed QR code fails to scan.

Print in genuine black-on-white or another high-contrast combination whenever possible. Colored QR codes can look nice, but the contrast between the foreground and background modules needs to stay high enough for a camera to distinguish them reliably — light gray on white or two similarly-toned colors are a common cause of scan failures.

Avoid stretching a QR code non-uniformly (different horizontal and vertical scale) since it distorts the square modules into rectangles and can break decoding. Download the QR as a vector format like SVG if you need it at large sizes for posters or banners, since scaling a small raster PNG up will visibly pixelate the edges of each module.

Common mistakes to avoid

Encoding an unshortened, extremely long tracking URL full of UTM parameters makes the QR code unnecessarily dense. If you need analytics, use a short, stable redirect URL and track clicks server-side on your own domain rather than baking a 200-character link straight into the code.

Testing only on your own phone is another common gap — different manufacturers' camera apps and third-party scanner apps handle edge cases (very small codes, unusual aspect ratios, low light) differently. Test with at least an iPhone and an Android device before finalizing a design that will be printed at scale.

People sometimes forget that a QR code encodes exactly what you gave it at generation time — if you encode a raw URL and later need to change the destination, you'd have to reprint every physical copy. If the destination might ever change, point the QR at a URL you control that you can redirect elsewhere later, rather than a raw external link.

Where QR codes are genuinely useful

Menus, product packaging, event tickets, business cards, and Wi-Fi access are the classic use cases, and all of them share a common thread: a QR code removes friction where typing a long URL or password by hand would be annoying or error-prone. A vCard on a business card is a good example — the recipient scans once instead of manually typing a name, phone number, and email.

QR codes are also useful anywhere a physical object needs to link to something digital: a printed spec sheet linking to a full manual PDF, a poster linking to a signup form, or a shipping label linking to tracking information. In each case the QR code is just a compact, camera-readable pointer, and it's most effective when what it points to loads fast and works well on mobile.

How to use the QR Code Generator

  1. Type or paste your text or URL into the input field.
  2. Choose your preferred size.
  3. Click "Generate QR code," then "Download PNG" to save it.

Why use this tool?

Never expires

The code is generated in your browser and encodes your data directly, so there is no short link that can be switched off.

Print-ready PNG

Export up to 1024px so the code stays crisp on posters, packaging and business cards.

Wi-Fi and contact modes

Share network access or a phone number without anyone typing a password by hand.

Frequently asked questions

What can I put in a QR code?

Any plain text works — website URLs, phone numbers (as "tel:+123..."), or Wi-Fi credentials in the format "WIFI:T:WPA;S:NetworkName;P:Password;;".

Do QR codes expire?

No — a QR code generated this way encodes the data directly and doesn't expire or rely on an external redirect service.

What size should I use for printing?

For print materials, use the largest size option to keep the code scannable from a normal reading distance.