QR Code Generator

Turn any URL, text, phone number, email address or Wi-Fi login into a scannable QR code in seconds. The generator is free, redraws as you type and runs entirely in your browser, so what you encode is never uploaded.

QR Code GeneratorPrivate · runs on your device
Content
Quick fill:
Words 0Characters 0Lines 0
Your QR code
Type something on the left to generate the code.

How to use the QR code generator

The code is drawn on your own device while you type, so the text you enter stays with you. Everything happens in one panel.

  1. Type or paste your text into the Content box, or press a quick-fill button (Website URL, Email, Phone, SMS, Wi-Fi or Contact card) and replace the sample values with your own.
  2. Choose a Size of 200, 300, 400 or 600 px. The default is 300 px.
  3. Set the Error correction to L (7%), M (15%), Q (25%) or H (30%). M is the default.
  4. Pick a Foreground and a Background colour if you do not want the default dark ink on white.
  5. Read the note under the preview, which reports the grid size, the correction level and the character count, then scan the code with a phone camera to confirm it works.
  6. Press Download PNG for an image, Download SVG for a vector file, or Copy image to put the PNG on your clipboard (this needs a browser that allows image copying).

How big a code gets, and what each level costs

A QR code is a square grid of modules, the small dark and light squares. More data or a higher error correction level means a bigger grid, and a bigger grid needs more room when printed. These sizes come from the library this page uses, for plain text:

ContentCharactersLMQH
https://example.com1925 x 2525 x 2525 x 2529 x 29
A web address of 45 characters4529 x 2933 x 3333 x 3341 x 41
A Wi-Fi string of 35 characters3529 x 2929 x 2933 x 3337 x 37
300 characters of text30061 x 6169 x 6981 x 8189 x 89

The tool adds a blank margin of four modules on every side. For https://example.com at level M the grid is 25 modules wide, so the image is 33 modules across, and at 300 px each module is about 9 px. At level H the grid grows to 29, which makes every module a little smaller, about 8 px. Capacity is also capped: for plain English text about 2,950 characters fit at L, 2,330 at M, 1,660 at Q and 1,270 at H. Accented letters and emoji take several bytes each, so they reduce those figures. If the text is too long, the page says so and you can shorten it or lower the level.

Error correction exists so a scanner can rebuild missing parts of the pattern. L recovers about 7 percent, M 15, Q 25 and H 30. Choose a higher level for stickers, packaging or codes that may be scratched, and a lower one when the content is long and the printed area is small.

What to encode, and why a code might not scan

The codes made here are static: the text is stored in the pattern itself. They work for as long as the destination exists, there is no account to keep alive and no scan tracking, but the content cannot be edited once printed. If you may need to change the destination later, encode a short address on a site you control and redirect it. Useful formats:

  • A web address such as https://example.com/menu. Add campaign tags first with the UTM builder if you want to see scans in your analytics, and run addresses with spaces or symbols through the URL encoder.
  • tel:+441234567890 opens the dialler and mailto:name@example.com?subject=Hello starts an email.
  • WIFI:T:WPA;S:NetworkName;P:password;; lets guests join without typing. Anyone who photographs the code can read the password, so use a guest network and a separate passphrase from the strong password generator.
  • A contact card in vCard format, which the Contact card button fills in for you.

When a code refuses to scan, the cause is usually one of these: low contrast between the two colours, a light code on a dark background, a print size too small for the grid, a margin cut off by a neighbouring graphic, or a dense code made from a long URL. Test the final file on two or three phones at the real printed size. Use SVG for posters and signage because it stays sharp at any size, and PNG for screens and documents. The tool does not add logos, track scans or make several codes at once.

Quick answers

Frequently asked questions

The questions people ask most, answered in plain words.

Is this QR code generator really free?

Yes. There is no sign-up, no watermark and no limit on how many codes you make or download. The code is drawn in your browser, so your text is never sent to a server, and the PNG and SVG files are created on your own device.

Do QR codes made here expire?

No. These are static codes, so the text or address is stored inside the pattern rather than on a server. The code keeps scanning for as long as the website, phone number or Wi-Fi network you encoded still works. The only thing that can break it is the destination changing.

Which error correction level should I choose?

Use M for most jobs. Choose L when the text is long and the printed area is small, and choose Q or H for stickers, packaging or anything likely to be scuffed. Higher levels recover more damage but make the grid denser, so each module prints smaller.

Should I download a PNG or an SVG?

Download a PNG for websites, chat apps and documents, since it is a ready-made image at 200, 300, 400 or 600 px. Download an SVG for print, posters or signage, because a vector file scales to any size without blurring and a designer can resize it freely.

Why will my QR code not scan?

The usual causes are weak contrast, light ink on a dark background, a code printed too small, a cropped margin or a very long URL that makes the grid dense. Use dark ink on a light background, keep the blank border, raise the size, and test on more than one phone.