A QR code is the fastest way to get someone from something physical, such as a packaging insert, a shop window, a flyer or a business card, to a page on their phone. This generator makes the code in your browser: you choose what it opens, style it in your brand colors, drop your logo in the middle and download a file that is ready for print or the web.
Every code made here is static. The link or text sits inside the black and white pattern itself, so there is no redirect server in the middle, no monthly fee, no scan limit and nothing that can expire or be switched off later. The trade-off, which we explain below, is that you cannot change where a printed static code points.
How to make a QR code
- Choose the content type at the top: Website, Text, Wi-Fi, Contact card, Email, SMS, Phone or WhatsApp.
- Fill in the fields. For a website, paste the full link. If you leave out https://, the tool adds it for you.
- Under Design, set the dots color, corner color and background, or click one of the six color presets. Pick a dot style (square, rounded or dots) and a corner style (square, rounded or circle).
- Optional: click Add logo and choose a PNG, JPG, SVG, WebP or GIF under 5 MB. The tool switches error correction to H automatically so the code still scans with part of it covered. Use the slider to set the logo between 10% and 30% of the code width.
- Check the preview panel. It shows the QR version, the grid size in modules, the error correction level and how many bytes of data the code holds, plus warnings if something could stop it scanning.
- Pick a PNG size (512, 1024, 2048 or 4096 px) and click Download PNG, Download SVG or Download JPG. Copy image puts a 1024 px PNG on your clipboard for pasting into Canva, Google Docs or an email.
- Scan the downloaded file with two different phones before you print anything.
What each QR code type does when scanned
The type decides what text is written into the code and what the phone offers to do with it. Here is exactly what this tool encodes for each one.
| Type | What the phone does | What is stored in the code |
|---|---|---|
| Website | Offers to open the link in the browser | The URL, for example https://yourstore.com/products/linen-throw |
| Text | Shows the text (up to 1,200 characters in this tool) | Plain text |
| Wi-Fi | Offers to join the network without typing the password | WIFI:T:WPA;S:network;P:password;; with special characters escaped |
| Contact card | Offers to save a new contact | A vCard 3.0 with name, company, job title, phone, email, website and address |
| Opens a new email with the address, subject and message filled in | A mailto: link | |
| SMS | Opens a text message to your number with the message typed | SMSTO:number:message |
| Phone | Offers to call the number | A tel: link |
| Opens a WhatsApp chat with your number and a prefilled message | A wa.me link with the number in international format |
For WhatsApp, type the number with the country code. The tool strips spaces, dashes, brackets, the plus sign and a leading 00, because wa.me links only accept digits. A Pakistani mobile such as +92 300 1234567 becomes wa.me/923001234567.
Designing a QR code that still scans
Phone cameras are good at reading QR codes, but they still need contrast, a clean border and enough intact pattern. The preview warns you about each of these as you design.
Colors and contrast
Keep the dots darker than the background. Many camera apps cannot read an inverted code (light dots on a dark background), so the tool flags that as an error. It also calculates the contrast ratio between your dot color, corner color and background and warns you below 4:1. Navy on white, forest green on pale mint and terracotta on cream all pass comfortably. Pale gray, pastel yellow or gold dots on white usually do not.
The transparent background option removes the background from PNG and SVG files so you can place the code on colored packaging. Only do this when the surface behind it is light and plain. JPG files cannot be transparent, so a JPG download always gets a white background.
Dot and corner styles
Rounded dots and round dots look friendlier and match most brand styles. Rounded and circle corner markers (the three large squares in the corners) scan in current iPhone and Android cameras. If people will scan the code with an older dedicated scanner app, or the code is going onto something where one failed scan costs a sale, square corners are the safest choice.
Logos and error correction
QR codes carry extra repair data, so part of the pattern can be damaged or covered and the phone still reads it. The level you choose decides how much can be lost:
| Error correction | Approximate data it can recover | Use it for |
|---|---|---|
| L | 7% | Plain codes on screens, where the code is clean and sharp |
| M (default) | 15% | Most printed codes without a logo |
| Q | 25% | Codes that may get scuffed, such as on shipping boxes |
| H | 30% | Codes with a logo in the middle |
When you add a logo, the tool leaves a clean square hole in the center and, with White box behind logo ticked, draws a rounded background panel so the logo does not sit on top of dots. If the logo covers more than about 60% of what the chosen level can repair, you get a warning to use H or a smaller logo. At level H, a logo between 15% and 25% of the width is a good range.
The quiet zone
The empty margin around the code is called the quiet zone. The QR standard asks for 4 modules (the width of four dots) on every side, which is the default here. You can go lower for a tight layout on a screen, but under 2 modules the tool warns you, because codes placed on busy backgrounds or near other graphics start to fail.
Print size and file formats
Choose the file by where the code will end up:
- SVG is a vector file. It stays sharp at any size, so it is the right choice for printers, packaging designers and sign makers. Your logo is embedded inside the SVG as an image (scaled to at most 512 px to keep the file small).
- PNG is best for the web, email, Canva and social posts. Use 1024 px for screens, 2048 px for flyers and 4096 px if a printer wants a large raster file.
- JPG is there for tools that only accept JPG. It always has a solid background.
How big should the printed code be? A common rule of thumb is that the code width should be about one tenth of the scanning distance, so a code people scan from 50 cm (20 in) away should be at least 5 cm (2 in) wide. Small inserts and business cards can go down to about 2 cm (0.8 in) if the content is short. Longer content makes a denser code: once the grid goes above 57 modules (version 11), the tool suggests keeping the print at least 3 cm (1.2 in) wide or shortening the link.
Worked examples
A packaging insert that opens a care page
A home goods seller wants a QR code on a thank-you card that opens https://harborlane.com/products/linen-throw. That is 43 bytes. At error correction M the code is version 4, a 33 x 33 grid, which is small and easy to scan even at 2.5 cm on the card. With a logo added, the level switches to H and the code becomes version 5 (37 x 37), still comfortable at that size.
The same link with tracking
If the seller adds UTM tags so scans show up in Google Analytics, the link grows to 113 bytes: the same address plus utm_source=packaging, utm_medium=qr_code and utm_campaign=insert-card-2026. With a logo at level H the code is now version 10 (57 x 57), noticeably denser. The fix is to use shorter UTM values, keep the logo off, or print the code a little bigger. Build the tagged link with our UTM builder, which also warns that GA4 has no QR channel, so these visits land in Unassigned unless you filter by source.
Guest Wi-Fi at a pop-up shop
Network name Shop Guest with password coffee-and-linen-42 on WPA security stores 47 bytes. At level M that is version 4, easy to print on a counter card. Visitors point the camera at it and tap to join. Special characters in the password, such as a semicolon or colon, are escaped automatically so the phone reads the password correctly.
How sellers and small businesses use QR codes
- Packaging inserts: link to setup videos, care instructions, a review request or a reorder page.
- Product labels and hang tags: send shoppers to the full product page with sizing and materials.
- Market stalls and pop-ups: a WhatsApp code lets people message you about custom orders, and a Wi-Fi code saves you from spelling out the password all day.
- Invoices and packing slips: add a code for your returns page next to the details from our invoice generator.
- Business cards and trade show badges: a contact card code saves your name, number, email and website in one scan.
- Flyers, posters and shop windows: link to a sale collection with UTM tags so you can compare it with your online campaigns.
Static vs dynamic QR codes
Many QR sites give you a "dynamic" code by default. That code actually contains a short link on their server, which then redirects to your page. It lets you change the destination later and count scans, but the code only works while you keep paying or while that company keeps the service running. When a subscription lapses, printed codes can stop working or show an ad page.
Codes made here are static. They cannot be edited after printing and they do not count scans on their own. To get both benefits without a subscription:
- Point the code at a page on your own domain that you control, such as yourstore.com/scan. If the offer changes, change that page or add a redirect in your store settings, and the printed code keeps working.
- Add UTM tags to the link so every scan shows up in Google Analytics as its own source.
QR codes, product barcodes and GS1 Sunrise 2027
A marketing QR code is not a retail barcode. Checkout scanners in stores look for GS1 barcodes that carry a GTIN, the product number that Google Merchant Center and Amazon also use to match products. GS1 US has set a goal, called Sunrise 2027, for retail point-of-sale systems to be able to read 2D codes such as QR codes that carry a GS1 Digital Link by the end of 2027. Those codes follow a specific GS1 format built around a licensed GTIN, which a general QR generator does not create. For product barcodes, use our barcode generator, and check a number with the GTIN lookup tool.
Troubleshooting
The phone does not react to the code
Check contrast first: dark dots on a light background, with the ratio warning gone. Then make sure the quiet zone is at least 4 modules and nothing is printed inside it. If a logo is on, confirm error correction is H and try a smaller logo.
The code scans on screen but not on paper
This usually means the print is too small for the density, or the printer spread the ink. Download the SVG or a 4096 px PNG instead of a screenshot, print it larger, and avoid glossy surfaces that reflect light straight at the camera.
"Too much data for one QR code"
A QR code holds at most 2,953 bytes at level L and less at higher levels. Shorten the text, remove long tracking parameters, or put the content on a web page and encode the link instead.
The Wi-Fi code asks for a password anyway
Check that the security type matches your router. Most home and shop routers use WPA2 or WPA3, which is the default here. Choose None only for an open network, and tick Hidden network if your network name is not broadcast.
The WhatsApp code opens the wrong chat or an error
The number needs the country code and no leading zero from the local format. For example, a UK mobile written 07700 900123 becomes 447700900123. The account must also be a WhatsApp number.
If the code will link to your own site and you do not have one yet, the AI Site Builder in AM Jarvis can build a niche site to point it at.