GENERATOR

Free QR Code Generator

Turn any link, Wi-Fi login or text into a static QR code that never expires. No sign-up.

About this free QR code generator

This QR code generator turns a link, a Wi-Fi login or any text into a static QR code you can download as a PNG or SVG. There is no sign-up, no watermark and no scan limit, and the code is built in your browser, so what you type is not uploaded. You can pick the size, the foreground color and one of the four error correction levels, and the preview updates as you type.

How it works

The text is converted to UTF-8 bytes and stored in the code's byte mode. If it contains any character outside plain ASCII, a 3-byte UTF-8 marker is added at the start. The tool then picks the smallest QR version, from 1 (21 × 21 modules) up to 40 (177 × 177), that holds those bytes at the error correction level you chose. It adds Reed-Solomon error correction data, applies the mask pattern that makes the code easiest to read, and draws it. The line under the preview shows the version, module count, byte count and level.

Both downloads include a white quiet zone four modules wide on every side, and the PNG is exactly the size you choose. The SVG contains the same pattern as vector squares, so it stays sharp at any print size.

Worked example

The page opens with https://thealltools.com at 300 × 300 and level M. That URL is 23 bytes. Version 1 holds only 14 bytes at level M, while version 2 holds 26, so the result is version 2, a 25 × 25 grid. With the quiet zone the PNG is 33 modules across, about 9.1 pixels per module. Switch to level H and the same URL needs version 3, 29 × 29, because more of the code goes to error correction.

Static vs dynamic: a QR code that doesn't expire

A static code, like the ones made here, stores your URL or text in the pattern itself. Nothing sits between the scan and your link, so there is nothing to expire, and it keeps working for as long as the destination page exists.

A dynamic code stores a short link to a QR service's server, which redirects to your real URL. That lets you change the destination later and count scans, but the code depends on that service. Some "free" QR makers produce dynamic codes, and the redirect can stop working when a trial or subscription ends or the service closes, which breaks every printed copy. Check the terms before printing one. For anything printed in quantity, a static code pointing at a page you control is the safer choice: you can update the page instead of reprinting the code. To count scans without a redirect, tag the link with the UTM Builder before encoding it, and the visits show up in your analytics.

Error correction levels

Error correction lets a scanner read a code that is dirty, scuffed or partly covered. Denso Wave, which invented the QR code, lists approximate restoration rates for the four levels defined in ISO/IEC 18004. The capacities are for version 40, computed from the standard's data codeword counts:

LevelCodewords restorableDigits onlyAlphanumericBytes
Labout 7%7,0894,2962,953
M (default)about 15%5,5963,3912,331
Qabout 25%3,9932,4201,663
Habout 30%3,0571,8521,273

This tool always uses byte mode, so the Bytes column is its limit. A plain English letter or digit is one byte, an accented letter two, most other scripts three and an emoji four, plus the 3-byte marker once. M suits screens and clean print. Choose Q or H for codes on packaging, outdoor signs or anything that may get worn, and L only when you need the most data in the fewest modules.

What you can encode

For product barcodes such as UPC, EAN-13 or Code 128, use the Barcode Generator instead.

Size, quiet zone and contrast for print

Test before you print

Scan the downloaded file with two different phones, and check that the link opens the right page and that a Wi-Fi code joins the network. The QR Code Scanner can decode an image file in your browser, which confirms the exact text before you send anything to print. Then print one proof at the final size and scan it from the distance people will use.

Common mistakes

Frequently asked questions

Do QR codes from this free generator expire?

No. They are static codes: your link or text is stored in the pattern itself, with no redirect server, account or subscription behind it, so there is nothing to switch off. The code keeps working as long as the page it points to stays online.

Why do some free QR codes stop working?

Those are usually dynamic codes. They hold a short link to the provider's server, which redirects to your real address, and the redirect can stop when a trial or subscription ends or the service closes. A static code from this page has no such dependency.

Which error correction level should I choose?

M, the default, recovers about 15% of codewords and suits screens and clean print. Choose Q (about 25%) or H (about 30%) for packaging, signs or codes that may get scratched, and L (about 7%) only when you need to fit the most data. Higher levels make the code denser for the same text.

What's the maximum amount of text a QR code can hold?

In byte mode, which this tool uses, the largest code (version 40) holds 2,953 bytes at level L, 2,331 at M, 1,663 at Q and 1,273 at H. Plain English letters take one byte each, accented letters two and most other scripts three, plus a 3-byte marker when the text is not plain ASCII. Codes near the limit are dense and hard to scan.

Should I download a PNG or an SVG?

Use the SVG for print, because it is vector and stays sharp at any size. The PNG is a fixed-size image of 200, 300 or 500 pixels, which is fine for screens, documents and web pages. Both include a white quiet zone four modules wide.

Why won't my QR code scan?

The usual causes are a pale foreground color, a code printed too small for how much data it holds, or artwork crowding the blank margin around it. Use a dark color, shorten the content or print larger, and keep the quiet zone clear. Then test with more than one phone.

How do I make a QR code for Wi-Fi?

Type WIFI:T:WPA;S:YourNetwork;P:YourPassword;; into the text box, replacing the network name and password. Use WEP or nopass instead of WPA if that matches your network, and put a backslash before any backslash, semicolon, comma, colon or double quote in the name or password. Most phone cameras offer to join the network when they scan it.