Skip to content
MyQRGenerator

How to Generate a QR Code (Free, Step by Step)

The complete beginner's walkthrough: choosing a type, entering content, designing, testing and downloading.

By MyQRGenerator team Updated 7 min read

A QR code is a square barcode that phones can read with their camera. You don't need an app, an account or design skills to make one. This guide walks through the whole process — from choosing what the code should do, to testing the printed result — and explains the decisions that actually affect whether people can scan it.

Step 1: Decide what should happen when someone scans

Every QR code stores text. What the phone does with that text depends on its format:

  • Open a website — the most common use: menus, product pages, sign-up forms, portfolios.
  • Join Wi-Fi — guests connect without typing a password.
  • Save a contact — a vCard adds your name, phone and email to their address book.
  • Start a message — email, SMS or WhatsApp with the text pre-filled.
  • Request a payment — UPI in India or a Bitcoin payment request.
  • Show text, a location or an event — useful for offline information, maps and calendar invites.

Pick the type that matches the action. A generator with a dedicated form for each type matters here: a Wi-Fi code must escape special characters in the password, a WhatsApp link needs the number in international format, and a vCard has strict line rules. Typing these by hand is where most broken codes come from.

Step 2: Enter your content (and keep it short)

The amount of data decides how dense the code is. A short link like example.com/menu produces a 25×25 grid of modules; a 300-character URL produces a 69×69 grid. Denser codes need to be printed larger and are harder to read in poor light. Before generating:

  • Remove tracking parameters you don't need from URLs.
  • Leave optional vCard fields empty if they aren't useful.
  • For long text, link to a web page instead of encoding the text directly.

MyQRGenerator shows the version (1–40), module count and data size under the preview, so you can see the effect of every change. If content exceeds what a QR code can hold, you get a clear message with the byte count — it is never silently cut off.

Step 3: Customise the design without hurting scanning

Branding a code is fine as long as you respect a few rules:

  1. Dark code, light background. Aim for a contrast ratio of at least 4:1. Light-on-dark (“inverted”) codes fail on many older scanners.
  2. Keep the quiet zone. The blank border around the code should be about four modules wide. Don't let text or images touch it.
  3. Leave the three corner squares recognisable. These finder patterns are how phones locate the code. Rounded or circular finders work; hiding them doesn't.
  4. Logos go in the middle and stay small — under about 25% of the width, with error correction Q or H.

Our generator checks each of these and runs an independent decoder on the design after every change. The Scan verified badge means the exact content was read back from the rendered image.

Step 4: Choose the right download format

FormatBest forNotes
SVGPrint shops, designers, signageVector — sharp at any size
PDFPrinting at an exact physical sizeVector for solid colours
PNGDocuments, slides, websites, social mediaSupports transparency
JPGSystems that only accept JPEGNo transparency
WebPModern websitesSmaller than PNG

For raster formats, 1024 × 1024 px is a safe default; use 2048 px or SVG for anything larger than a postcard.

Step 5: Test before you print

Automated checks catch most problems, but always do a real-world test:

  • Scan with at least one iPhone and one Android phone, using the built-in camera app.
  • Print a sample at the final size and scan it from the distance people will actually stand.
  • Check the destination: does the link load quickly on mobile data? Does the Wi-Fi password work?

If something doesn't scan, our troubleshooting guide lists every common cause.

Static codes don't expire — but destinations can

Codes made with MyQRGenerator are static: the content is stored in the pattern itself, so nothing on our side can switch them off. If you encode a link, though, the code only works as long as that page exists. Use an address you control for anything printed in large quantities. The static vs dynamic guide explains the trade-offs.