QR Code Generator
PNG · SVG · No sign-up
What should the QR code open?
Show the encoded text

        

How to make a QR code

  1. Choose what the code should do: open a link, show a text, join a Wi-Fi network, write an email, call a phone number, send an SMS or save a contact.
  2. Fill in the fields. The QR code updates while you type. Under it you see its size in modules (the small squares) and how much of the space is used.
  3. Pick the error correction level and colors if you need them. The defaults (M, black on white, a 4-module border) work almost everywhere.
  4. Download PNG for web pages, chats and documents, or SVG for print and design tools: it is a vector file that stays sharp at any size. Copy image puts the PNG on your clipboard.
  5. Test it with your phone camera before you print many copies.

You can open the tool with content already filled in: geektools.net/qr_code_generator?text=Hello or ?url=https://example.com.

Which error correction level?

A QR code stores extra Reed-Solomon recovery data, so it can still be read when part of it is dirty, torn or covered. More recovery data means more modules for the same content.

LevelCan recoverUse it for
Labout 7%Long content on screens or small, clean prints, where a simpler code helps more than repair
Mabout 15%The default: websites, slides, flyers, business cards
Qabout 25%Packaging, stickers, things that get scratched or folded
Habout 30%Outdoor signs, rough surfaces, or a small logo placed over the middle

How much fits in a QR code?

The size of a QR code is its version, from 1 (21 × 21 modules) to 40 (177 × 177). The tool always picks the smallest version that fits. Maximum content in bytes (one byte is one letter of plain English text; accented letters use 2 bytes, Chinese or Japanese characters 3):

VersionModulesLMQH
121 × 211714117
225 × 2532262014
329 × 2953423224
433 × 3378624634
537 × 37106846044
1057 × 57271213151119
2097 × 97858666482382
40177 × 1772,9532,3311,6631,273

Content that is only digits uses the compact numeric mode (up to 7,089 digits), and upper-case letters, digits and $%*+-./: and space use alphanumeric mode (up to 4,296 characters). The tool chooses the mode by itself.

Wi-Fi, contact and other QR code formats

A QR code only stores text. The phone decides what to do from the way the text starts. These are the formats this tool writes, and you can also type them into the Text box yourself:

TypeEncoded text
Linkhttps://example.com/menu
Wi-FiWIFI:T:WPA;S:MyHomeWiFi;P:my-secret-pass;;
Emailmailto:[email protected]?subject=Order%20123
Phonetel:+15551234567
SMSSMSTO:+15551234567:See you at 8
ContactBEGIN:VCARD VERSION:3.0 N:Doe;Jane FN:Jane Doe TEL:+15551234567 END:VCARD (one field per line)
Map locationgeo:1.2834,103.8607

In the Wi-Fi format the characters \ ; , : and " in the network name or password must be escaped with a backslash. The tool does that for you, so a password like a;b works.

Tips for a QR code that always scans

  • Size: make the code at least one tenth as wide as the distance it is scanned from, and never smaller than about 2 cm (0.8 in). On a table: 3 cm. On a poster read from 3 m: 30 cm.
  • Keep the quiet zone: scanners look for the white border to find the code. Four modules is the standard; do not let text or pictures touch the code.
  • Dark on light: use a dark color on a light background with strong contrast. Light codes on dark backgrounds fail on many older scanners, and the tool warns you about them.
  • Shorter is better: a short link gives a code with fewer, bigger modules that scans from further away and from worse prints.
  • Print the SVG: a small PNG that is scaled up gets blurry edges. SVG stays sharp in Word, Illustrator, Canva, Figma or a print shop.
  • Test before you print: try two different phones, in normal room light, at the real distance.

Static or dynamic QR codes?

This tool makes static QR codes: the link or text is written into the code itself. They are free, they work offline, they never expire, and nobody can see who scans them.

Dynamic QR codes from paid services contain a short link to the service, which then redirects to your page. You can change the destination and count scans, but every scan goes through their server, and the printed code stops working when the subscription ends. Many "free" QR generators make dynamic codes that are switched off after a trial.

If you want to change the destination later without a subscription, encode a link to a page on your own website (for example example.com/menu) and change that page or redirect it. To count scans, add a campaign tag such as ?utm_source=qr and read it in your own analytics.

Make QR codes in code

WhereCode
Linux / macOSqrencode -o qr.png -s 10 -l M "https://example.com"
Terminal (show it)qrencode -t ansiutf8 "https://example.com"
Pythonimport segno; segno.make("https://example.com", error="m").save("qr.svg", scale=10)
Node.jsawait require("qrcode").toFile("qr.png", "https://example.com", { errorCorrectionLevel: "M" })
Java (ZXing)BitMatrix m = new QRCodeWriter().encode("https://example.com", BarcodeFormat.QR_CODE, 512, 512); MatrixToImageWriter.writeToPath(m, "PNG", Path.of("qr.png"));

This page uses its own small encoder that follows ISO/IEC 18004. It picks the smallest version, the right mode (numeric, alphanumeric or UTF-8 bytes) and the best of the 8 mask patterns, like the libraries above.

Frequently asked questions

Do QR codes made here expire?

No. This tool makes static QR codes: the link or text is stored inside the black and white squares themselves, not on our server. The code keeps working for as long as the printed image exists and the link it contains still works. There is no account, no subscription and nothing that can be switched off.

Can I use these QR codes for business and print?

Yes. The codes are free for any use, including menus, flyers, packaging and business cards, with no watermark and no attribution needed. For print, download the SVG: it is a vector file that stays sharp at any size. QR Code is a registered trademark of DENSO WAVE, but the code itself is an open ISO standard that anyone may use.

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

Choose Wi-Fi, type the network name (SSID) exactly as it appears on your phone, the password and the security type (WPA/WPA2/WPA3 for almost all home routers). When a guest scans the code with an iPhone or Android camera, the phone offers to join the network without typing the password. The password is only put into the image; it is not sent anywhere.

How big should a printed QR code be?

A common rule: the code should be at least one tenth of the scanning distance wide, and never smaller than about 2 cm (0.8 inch). A code on a table read from 30 cm needs about 3 cm; a poster read from 3 m needs about 30 cm. Short content makes a code with fewer, bigger squares that scans more easily. Keep the white border (quiet zone) around it.

Which error correction level should I choose?

M (15%) is a good default for screens and clean print. Choose Q (25%) or H (30%) when the code may get dirty, scratched or folded, for example on packaging or outdoors, or when you plan to put a small logo over the middle. A higher level makes the code denser, so for long content on a small print L (7%) can scan better.

Can I track how many people scan my QR code?

Not with a static code, and this tool does not track anyone. Scans are counted by dynamic QR services that put their own short link in the code and redirect visitors, which also means the code stops working if you stop paying. To count visits yourself, encode a link to your own site with a campaign parameter such as ?utm_source=qr and read it in your analytics.

Why does my QR code not scan?

The usual reasons are: too little contrast or light squares on a dark background (many scanners need dark on light), no white border around the code, a print that is too small for the amount of content, a blurry or stretched image, or a glossy surface with reflections. Use dark on white, keep a quiet zone of 4 squares, shorten the content and test with two different phones before printing many copies.

More tools