Back to All Tools

QR Code Generator

Create QR codes for any text, URL, or data.

100% Private — Your data never leaves your browser. Everything runs locally on your device.

Making a QR Code, Step by Step

  1. Type or paste your content into the "Text or URL" box. The box starts with https://example.com as a sample, so replace it with your own link or text.
  2. Pick a size: 200, 300, 400, or 500 pixels. The image can come out a few pixels smaller than the size you pick, for example 287 × 287 instead of 300 × 300. The image includes a white border, and each small square gets a whole number of pixels, which keeps the edges sharp.
  3. Pick a color for the dark squares. The background is always white. If the color is too light to scan well, a warning appears under the color picker. You can still make the code.
  4. Click "Generate QR Code". The code does not update while you type, so click the button again after every change.
  5. Click "Download PNG". The file saves as qr-code.png.

The code is built on your device by the open-source qrcode-generator JavaScript library, loaded from a public CDN. The text you type is not sent to our server or to any QR service.

What You Can Put in the Box

Web links

Paste the full address, including https://. Phone cameras show the link and open it in the browser.

WiFi login

There is no separate WiFi form, but you can type the standard WiFi format into the box. Most phones will then offer to join the network when they scan it:

WIFI:T:WPA;S:MyHomeWiFi;P:my-password;;

Anyone who scans the code can read the password.

Phone number and email

tel:+15551234567 opens the dialer. mailto:name@example.com opens a new email.

Length limit and languages

More Text Makes a Denser Code

A QR code is a grid of small squares. More characters need more squares. These are the grid sizes this tool makes:

What you typeCharactersGridPixels per square at 300 px
https://example.com1925 × 259
A normal page link, like this page's address4933 × 337
A short paragraph10041 × 416
A long paragraph30069 × 693
About half a page of text1,000121 × 1212
The maximum2,331177 × 1771

At the same print size, more squares means smaller squares, and small squares are harder for a camera to see. So keep links short. Remove tracking parts such as ?utm_source=... if you do not need them. If you use a link shortener, remember that the printed code stops working if that service deletes the link or shuts down. For anything longer than a short link, pick 400 or 500 px. If each square gets fewer than 3 pixels, the tool shows a note under the code and suggests a bigger size.

Error Correction: What This Tool Uses

Every QR code stores backup data, so a scanner can still read it when part is dirty, scratched, or hidden by glare. There are four levels:

A higher level adds more backup data, so the same text needs more squares. This tool always uses level M, and you cannot change it. M works well for paper, stickers, and screens. Because it only covers about 15%, do not put a large logo over the middle of the code. Codes with a logo in the center usually use level H.

Print Size and Scanning Distance

A common guideline is to make the code about one tenth as wide as the distance people will scan it from:

Codes with long text need more room. The 500 px option gives a file about 500 pixels wide. At 300 DPI that prints sharp up to about 4 cm. At 150 DPI it is fine up to about 8 cm. Bigger than that, the edges get a little soft. Scanners usually still read them, but test a printed copy.

Colors and the White Margin

Scanners look for dark squares on a light background. Pick a dark color such as black, navy, dark green, or dark red. Avoid yellow, light gray, and pastel colors. They are too close to white. The tool checks this for you. It works out the contrast between your color and white, using the same formula as the web accessibility guidelines (WCAG). Black on white is 21:1. If your color is below 4.5:1, a warning appears, but the tool still makes the code.

The standard also asks for an empty light border, called the quiet zone, around the code. It should be at least four squares wide. The PNG from this tool already includes this white border. Do not crop it off. When you place the code on a colored background or a photo, keep the white border around it.

Do These QR Codes Expire?

No. These are static codes. The link or text is stored inside the image itself, so we cannot change or switch off your code. A printed code for a link only stops working if the web address stops working, for example if the page moves or the domain is not renewed. So link to a page you control. The other side: you cannot edit a static code after printing. Paid "dynamic" codes let you change the target, but they stop working if you stop paying.

Mistakes to Avoid

Frequently Asked Questions

Is my text sent to a server?

No. The code is made in your browser by the qrcode-generator JavaScript library. Your browser downloads that library from a public CDN when the page opens, but the text you type is not sent to our server or to any QR service. We keep no copy of your codes.

Can I make a WiFi QR code with this tool?

Yes, but there is no separate WiFi form. Type the standard WiFi format into the Text or URL box, for example WIFI:T:WPA;S:MyHomeWiFi;P:my-password;; and replace the network name and password with your own. Use nopass instead of WPA for an open network. Anyone who scans the code can read the password.

Can I download an SVG or change the background color?

No. The tool saves a PNG file only, in four sizes from 200 to 500 pixels. The background is always white. You can change only the color of the dark squares. Keep that color dark so the code has strong contrast. The tool shows a warning if the color is too light.

Why is my image a little smaller than the size I picked?

Each small square in the code gets the same whole number of pixels, so the edges stay sharp. The image also has a white border four squares wide. A normal page link makes a grid of 33 × 33 squares, or 41 × 41 with the border. At 300 px, each square gets 7 pixels, and 41 × 7 = 287. Long text at the 200 or 300 px size can give only 1 or 2 pixels per square, so pick 400 or 500 px for long content. The tool shows a note under the code when a square gets fewer than 3 pixels.

What happens if my text is too long?

The tool shows a message that the text is too long, and no code is made. The most it can fit is 2,331 characters of English text. Nepali, Hindi and other non-Latin letters take three times the space, so the limit for them is about 777 letters. Shorten the text and click again.

Do QR codes from this tool expire?

No. They are static codes. The link or text is stored inside the image, and no server is involved when someone scans it. A printed code for a link keeps working as long as that web address works. The trade-off is that you cannot change the content after printing. You need to make and print a new code.

📖
How to Generate a QR Code for Free — Complete GuideRead our complete guide with creative uses and best practices.
📊
Free QR Code Generators Compared (2026): Static vs DynamicSee how FreeToolPoint stacks up against QR Code Monkey, QR Code Generator, and others.