Utility Tools

How to Create a QR Code for Free

A QR code lets someone open a link or read a short piece of information by scanning a square image with a phone camera. They are useful on posters, menus, packaging, business cards and presentations. The most reliable QR codes use a short destination, strong contrast and enough empty space around the code.

Create a QR code in three steps

  1. Open the QR Code Generator.
  2. Enter the URL or text, choose a size and select an error-correction level.
  3. Generate the code, test it with a phone camera and download the PNG when it scans correctly.

Choose the right settings

Medium error correction is suitable for most screen and print uses. Choose a higher setting if the code will be printed very small, placed on a textured surface or might be partly covered. Higher correction creates a denser image, so avoid putting too much text into one code.

Design for reliable scanning

Use a dark foreground on a light background and leave a clear border around the code. Do not stretch the PNG or place a low-contrast pattern behind it. If the code points to a website, use the final HTTPS URL and test it on more than one phone before publishing.

Test before publishing the code

A QR code should be tested at the size and distance where it will actually be used. Scan the finished code after exporting or printing it, not just the original preview. Keep the destination URL correct and avoid cropping the quiet margin around the code, because small layout changes can make scanning less reliable.

Encode the destination before styling the QR code

A QR code is only useful if the encoded content is correct and remains reachable. For a URL, check the full address, including the path and any important query parameters, before generating the image. A typo in the payload can produce a perfectly readable code that sends users to the wrong place.

Test scanning from realistic distances

Scan the generated code from a phone and at the approximate size where it will be printed or displayed. High contrast, a clear quiet zone and sufficient module size help scanners detect the pattern. Avoid placing important artwork over the code unless you have tested the result thoroughly.

Always perform a real scan after generation; visual appearance alone cannot confirm that the payload works.

The payload is the important part of the QR code

A visually attractive QR code can still be useless if its encoded URL or text is wrong. Copy the payload from the authoritative source, generate the code, scan it with a phone and inspect the decoded value before publishing. If the code will be printed, test a physical or realistically sized copy rather than assuming a large monitor preview proves reliability.

Test the final medium, not only the source image

A QR code that scans on a large monitor may fail after being printed small, placed on a glossy surface or viewed at an angle. Test the version that people will actually encounter. For a poster or card, scan from a normal distance and make sure the quiet zone around the code has not been crowded by surrounding graphics.

Open QR Code Generator

Check the QR code before publishing it

A QR code should be tested in the same conditions in which people will use it. Scan the final exported image from a phone, then test it again after placing it on the website, poster, document, label or screen where it will appear.

Keep enough contrast between the code and its background, avoid covering the quiet zone around the pattern, and do not make a code smaller than the intended scanning distance allows. If the destination changes later, remember that a static QR code still contains its original payload.

Frequently asked questions

What can a QR code contain?

A QR code can contain a website URL, plain text, contact detail, Wi-Fi detail or another short data string.

Which error correction level should I choose?

Medium is a good general choice. Use higher correction when the code may be printed small or partly obscured.

AdvertisementAd space — reserved, no network calls until AdSense is enabled