CartHacker Free Tools

Free QR Code Generator Create Custom QR Codes Instantly

Generate high-quality, custom QR codes for your website, digital business cards, text messages, or WiFi networks. Add your own logo, customize colors, and download print-ready files in vector SVG, PNG, or JPG formats. 100% free for commercial use, no sign-ups required, and your static codes will never expire.

Start generating SVG · PNG · JPG · up to 4096 px
  • Free for commercial and personal use
  • Static codes never expire
  • High-resolution print-ready exports
  • Absolute privacy with no forced tracking

Your QR code updates in real-time as you type, allowing you to scan and test it instantly from your screen.

Counts every scan and keeps the destination editable after printing. Requires a free account.

Your QR code is ready to generate. But creating the code is only step one. Below, you will find the ultimate CartHacker guide to QR code best practices - from optimal sizing and error correction levels, to high-conversion print placement. Discover how to ensure your codes scan instantly on any device, anywhere.

What Is a QR Code and How Does It Work?

A QR code is a two dimensional barcode: a grid of black and white squares that stores data in both directions instead of only across, which is why it holds thousands of characters where the striped barcode on a cereal box holds thirteen digits. Denso Wave, a Toyota subsidiary, designed it in 1994 to track gearbox parts moving down a production line faster than the linear barcodes of the day could keep up with. The design brief was speed of recognition from any angle, and that decision is the reason the format took over the world thirty years later, once every person on earth started carrying a camera.

Scanning is not a network operation. The camera sees the pattern, the decoder locates the three big squares in the corners, works out the orientation and the perspective distortion, reads the grid of light and dark cells into a stream of bits, corrects whatever it got wrong, and hands the result to the operating system. All of that happens on the device in a few milliseconds. If the payload is a website address, the phone then offers to open it. If it is WiFi credentials, contact details, or plain text, the phone acts on it without touching the internet at all.

Why the format costs nothing to use

QR is published as an open standard, ISO/IEC 18004. Denso Wave holds patents on it and made a public decision not to enforce them, keeping only the words "QR Code" as a trademark. Nobody licenses the geometry, nobody charges per scan, and no company can switch the format off. That is the whole reason a free QR code generator can exist and stay free: the standard itself has no owner collecting rent. When a custom QR code maker charges you money, it is charging for hosting, redirects, analytics, or design work, never for the code itself.

That distinction matters more than it sounds, and it is the single most useful thing to understand before you generate anything. A code that carries your data directly is yours in perpetuity. A code that carries somebody else's short link is a subscription with a print bill attached. We come back to this in detail below, because it is where most people building their first codes lose money.

Inside the Symbol: What a Scanner Actually Reads

Every QR code is built from the same fixed parts, and knowing which parts are structural is what stops you from designing a code that cannot be read. Nothing in the pattern is decorative. The generator on this page lets you restyle a lot of it, and it protects the parts that must not change.

  • Finder patterns. The three large squares in the top left, top right, and bottom left corners. They tell the decoder where the code is, how big it is, and which way up it sits. They are why you can scan a code upside down or at forty five degrees. Restyle their shape if you want, but never cover one.
  • Separators and the quiet zone. A one module blank ring around each finder, plus a four module blank margin around the entire symbol. The quiet zone is not padding you can trim to fit a layout. It is how the decoder knows where the code ends and your artwork begins.
  • Timing patterns. A single row and a single column of strictly alternating light and dark cells running between the finders. They give the decoder the module pitch, so it can map a photographed, warped, slightly out of focus grid back onto exact cell coordinates.
  • Alignment patterns. Small concentric squares that appear from version 2 upwards and multiply as the code grows. They correct the barrel and perspective distortion you get when a code is photographed at an angle or wrapped around a bottle.
  • Format and version information. Bits sitting next to the finders that declare the error correction level and the mask pattern in use. They are stored twice and protected by their own error correcting code, because if a decoder cannot read these, it cannot read anything else either.
  • Data and correction codewords. Everything left over. Your payload, plus the recovery data that lets the symbol survive damage, woven through the remaining space in a zigzag and then scrambled by one of eight mask patterns so the result does not accidentally contain large blank areas or fake finder patterns.

The masking step is worth a sentence of its own, because it explains why two codes carrying almost identical links look completely different. The encoder tries all eight masks, scores each result against penalty rules for long runs of one colour, large solid blocks, and patterns that could be mistaken for a finder, then keeps the lowest scoring version. Change one character in your URL and the winning mask can change, which flips the visual appearance of the entire code. It is not a bug, and it is not the generator being inconsistent.

Close up, the practical consequence is visible in the image below: the sharper the boundary between light and dark cells, the more margin a decoder has to work with.

Close up of a highly scannable custom QR code generated for a website URL, displayed clearly on a modern mobile phone screen.
Fig. 01Make Custom QR Code OnlineA close-up view of a perfectly scannable, high-contrast QR code generated online and displayed directly on a smartphone screen.Screen to screen scanning is the easiest case there is: the display supplies its own light and perfect contrast. Everything printed is harder than this, which is why print sizing gets its own section below.

Notice how clean the corner finder is in that shot, and how the cells hold their edges even where the screen is photographed at an angle. That is the condition every printed code is trying to approximate and never quite reaches, because paper absorbs ink, ambient light is uneven, and nothing on a shelf is ever perfectly flat.

How to Create a Custom QR Code Online for Free

Four steps, about three minutes, no account needed to build and preview. This online QR code generator runs entirely in your browser, so there is no software to install and no registration to sit through, and what you type into the fields above never leaves your machine unless you deliberately switch on tracking.

  1. 1

    Pick what the code should carry

    Choose a website link, a business card, plain text, or WiFi login details. Each tab writes the payload in the exact format phones expect, so a business card lands in the contacts app and a WiFi code joins the network instead of opening a browser. The preview redraws as you type, with nothing sent to a server.

  2. 2

    Style it, then add your logo last

    Set the module shape, the corner style, and the colours to match your brand, then pick a frame with a short call to action if the code is going somewhere people need a nudge to scan. Upload a logo at the end. Error correction jumps to its highest level automatically the moment a logo is loaded, so the code can rebuild whatever the logo covers.

  3. 3

    Read the warning under the preview

    The tool measures your colour contrast and your logo coverage on every redraw. An amber note means the design is marginal and will read on a modern phone but not on an older handheld scanner. A red note means it will not read reliably at all. Neither is decoration, so fix the design before you go any further.

  4. 4

    Print a test, then export

    Use the 2 cm print test to get a real scan on paper at the smallest size that matters, and try it with a cheap phone in poor light rather than your own flagship. Once it reads, export SVG for anything going to a printer and PNG at 1024 pixels or higher for anything on a screen.

What you can turn into a QR code

Almost everything people search for here is one of four jobs, and the first one wears a lot of different names:

  • URL to QR code. Any link works. A product page, a Google Form, a hosted PDF, a Maps address, a payment page, a booking calendar. Paste it into the Website tab and you have converted a link to a QR code. There is no separate PDF format and no separate Google Form format, only a code pointing at the file or form you already host.
  • vCard business card code. The Business card tab writes full contact details into the symbol itself, so the details land in the phone's address book with no profile page in between.
  • WiFi code. Network name, security protocol, and password, encoded once and read offline forever.
  • Plain text. Batch numbers, serial numbers, machine identifiers, short instructions. Nothing to load, nothing to host, no connection required.

Use the 2 cm print test before anything else. The button under the preview exports the code at exactly 236 pixels, which is 2 cm at 300 dpi. Print it on your own office printer, scan it from arm's length, and you have tested the worst realistic case in under a minute. A code that survives that will survive almost anything you put it on.

Static or Dynamic: The Expiry Trap in Free QR Code Generators

This is the part of the subject that costs businesses real money, and almost every free QR creator on the first page of Google is quiet about it.

A static code contains your data. Type https://yourstore.com/summer-sale and those characters are encoded into the pattern as mathematics. No server sits in the middle. Nothing can be revoked, rate limited, or switched off. The code is a printed object that resolves to a destination, the same way a printed phone number does.

A dynamic code contains a short link belonging to whoever generated it, something like qr-vendor.io/x7Kp2. That link redirects to your real destination. This buys you two genuine features: you can change the destination after printing, and you can count scans. It also means a third party now sits between your customer and your website, permanently, on every single scan for the entire life of the printed material.

What the middleman actually costs

ConsiderationStatic codeDynamic code
Expiry riskNone. There is nothing to expire.Total. The vendor's trial, pricing change, or shutdown kills every printed code at once.
Editable destinationOnly if you point it at a URL you control and redirect thatYes, from the vendor dashboard
Scan analyticsVia campaign parameters and your own server logsBuilt in, per scan
Data exposureNone. No third party sees the scan.The vendor logs the IP address, device, and rough location of every customer who scans
SpeedDirect to your pageOne extra DNS lookup, TLS handshake, and redirect hop before your page starts loading
Pattern densityHigher if the URL is longLower, because short links encode into smaller symbols
Sensible forPackaging, product labels, signage, business cards, anything with a long print lifeShort campaigns, A/B tests, media buys where the destination genuinely changes

The redirect trick that gets you both

There is a third option, and it is what we would actually do. Encode a static code that points at a short path on your own domain, for example yourstore.com/box, and set up a 301 redirect on your own server from that path to wherever you want the traffic to go. Add campaign parameters to the destination so the traffic is identifiable in analytics: ?utm_source=qr&utm_medium=print&utm_campaign=summer-box.

The result is a code with no expiry date, no third party in the loop, no customer data handed to a vendor, a destination you can change any time you like by editing your own redirect, and full attribution in your own analytics. The only thing you give up is a per scan counter, and a dedicated redirect path in your own access logs replaces most of that anyway. If your domain outlives the print run, so does the code. That is a lower bar than trusting a QR startup to still exist in 2031.

The generator on this page builds static codes by default for exactly this reason. Tracking is a switch you have to find and turn on, and it is never enabled behind your back. Leave it off and every tab produces a genuinely offline code: the address, the contact details, the network password or the message live in the printed pattern, nothing is stored on our servers, and no scan is visible to anybody including us.

Turn it on and the trade is explicit. The code stops carrying your content and starts carrying a short link to our servers, which is what buys you the two things a static code can never have: a scan count, and the ability to change what the code says after it is printed. That now applies to all four types, not just web addresses. A business card code resolves to a hosted contact card with a Save to contacts button, a WiFi code resolves to the network name and password, and a text code resolves to the message. Correct a phone number, rotate a WiFi password or rewrite a message, and the cards already in circulation are current again on the next scan. The cost is the one named at the top of this section: those codes now depend on a server, and the server is ours.

So the honest recommendation has not moved. For a web address, the redirect on your own domain beats both. For a business card that will sit in wallets for three years, a tracked code is the difference between a correction and a reprint, and that is a judgement only you can make.

The counter setup below is the textbook case for a static code. A small restaurant prints a code once, it sits in a stand next to the till for years, and there is no marketing team standing by to reprint it when a vendor changes its pricing.

A custom printed QR code displayed on a restaurant counter next to a menu, allowing customers to easily leave a review using a free QR code generator.
Fig. 02Free QR Code Generator For Business ReviewsAn example of a static QR code generated for a local restaurant, placed on the counter to easily collect customer reviews and feedback.Counter placement wins because the customer is already stopped and already holding a phone. Point it at a path on your own domain and you can swap the review platform later without reprinting the card.

Note the practical details in that setup: the card stands upright rather than lying flat, so the camera is not fighting overhead glare, and it sits at the point of payment rather than on the table, where it competes with plates. The code itself is doing the least interesting part of the job. Placement is doing the rest.

One warning on review codes. Sending a code to a page that filters happy customers to a public review site and unhappy ones to a private complaint form is review gating, and it violates the terms of Google, Amazon, and Trustpilot. Send everyone to the same place. The rating average you get is real, and it will not vanish when a platform audits you.

Error Correction: How Much Damage a Code Can Survive

QR codes carry redundant data so that a damaged symbol can still be decoded. The mechanism is Reed-Solomon coding, the same family of mathematics that keeps scratched CDs playing and gets telemetry back from deep space probes. The encoder adds correction codewords alongside your data, and the decoder uses them to detect and rebuild whatever it could not read.

You choose how much redundancy to buy. Four levels are defined by the standard, and the generator exposes all four.

LevelRecovers roughlyCapacity costUse it for
L (Low)7% of codewordsSmallest symbol, densest dataScreens, email signatures, anywhere the code is never physically touched
M (Medium)15% of codewordsBalanced, the default hereFlyers, business cards, posters, most print work
Q (Quartile)25% of codewordsNoticeably larger symbolPackaging, labels, outdoor use, anything that gets handled or scuffed
H (High)30% of codewordsLargest symbol for the same payloadIndustrial surfaces, curved containers, and any code with a logo on it

The part people get wrong

Level H does not mean you can cover 30% of the picture. The percentage is measured in codewords, not in area, and several things eat into that budget before your logo does. The finder patterns, timing patterns, alignment patterns, and format information are not protected by error correction at all, because they are what the decoder needs before correction can even start. Damage those and no amount of redundancy saves you.

The number is also a ceiling, not a comfort zone. A symbol running at 29% damage decodes in a lab and fails in a car park, because motion blur, glare, and a cheap camera sensor all consume part of the same budget. Treat the published figure as the point of failure and design well below it. In practice, that means a logo occupying no more than about 20% of the code width at level H, which is exactly where the generator starts warning you.

One piece of good news is built into the format. Codewords are interleaved across multiple correction blocks rather than stored in one contiguous run, precisely so that a single blot of damage spreads its effect thinly across many blocks instead of destroying one block completely. A centred logo is therefore close to the best possible shape of damage. A coffee ring across one corner, or a label torn along one edge, is much worse, even though it looks like it covers less.

The tool handles the logo case for you: upload any image and the level locks to H automatically, with a note under the selector explaining why. You can still pick your own level for codes without a logo, and Q is the honest choice for anything that will live on a shelf.

How Much Data Fits, and Why Short Links Scan Better

QR codes come in 40 sizes, called versions. Version 1 is a 21 by 21 grid. Every version up adds four modules to each side, so version 40 is 177 by 177. The encoder picks the smallest version your payload fits into at your chosen error correction level, which is why adding a few characters to a URL sometimes makes the pattern visibly denser all at once instead of gradually.

VersionGridCharacters at level LAt level MAt level H
121 x 2117147
329 x 29534224
537 x 371068444
1057 x 57271213119
40177 x 177295323311273

Those figures are for byte mode, which is what this generator uses for everything. Byte mode with a UTF-8 declaration is the only mode that handles accented characters, non Latin scripts, emoji, and the line breaks a vCard needs, so we encode everything that way rather than switching modes to save a handful of modules on links that happen to be all uppercase. The status line under the preview reports the version and level actually chosen on every redraw, so you can watch the symbol grow as you type.

Why this matters physically

Every extra module makes each module smaller for the same printed size. A version 3 code printed at 3 cm has modules around 1 mm across. The same 3 cm printed as a version 10 code has modules around half a millimetre, which is where cheap printers, uncoated stock, and older phone cameras start to struggle in poor light. Payload length is not an abstract number. It is the physical width of the smallest feature your printer has to reproduce and your customer's camera has to resolve.

  • Keep printed URLs short. Under about 70 characters keeps you in comfortable territory. Long campaign parameter strings belong on the destination page via a redirect, not baked into the printed symbol.
  • Drop what the browser adds back. Nothing needs www. in a printed code, and modern browsers upgrade to HTTPS anyway. Every character removed is one less thing to shrink.
  • Trim the vCard. A business card code with a fax number, a full postal address, and a job title can double the version compared to a name, mobile, and email. Encode what a person will actually use.
  • Do not encode a document. There is no such thing as a QR code containing a PDF. What people mean by that is a code pointing at a hosted PDF, which is a plain website code and behaves like one.

How to Create a QR Code With a Logo Without Killing the Scan

Everything in the design panel is a trade against readability. That is not a reason to avoid it, because an unbranded black square gets scanned less often than a code that looks like it belongs to a business people recognise. It is a reason to know what each control costs.

Safe by design

  • Dark modules on a light background, always in that direction
  • Contrast ratio above 4.5 to 1, measured, not eyeballed
  • Logo under 20% of the code width, centred
  • Rounded or dot modules with the finder shape restyled to match
  • A single flat brand colour, dark enough to pass on white
  • A frame with a short call to action such as SCAN ME

Where codes die

  • Inverted designs, light modules on a dark background
  • Gradients that fade the modules toward the background at one end
  • A logo big enough to touch the timing patterns
  • Pastel or mid grey modules that look fine on a monitor
  • Artwork or a border crossing into the quiet zone
  • A code placed over a photograph instead of a flat area

Contrast, measured rather than guessed

The tool calculates the real contrast ratio between your two colours on every keystroke and reacts in two stages. Below 4.5 to 1 you get an amber advisory, which means modern phones will manage it and older handheld scanners will not. Below 3 to 1 you get a red one, which means stop. Inverted codes trigger the red warning too, because although most current phone cameras handle light on dark, a large share of industrial and older scanners simply refuse them, and you cannot control which reader your customer is carrying.

There is one more trap the checker catches for you. A transparent background looks great in a preview on a dark theme and prints onto white paper, where a pale code disappears entirely. If you tick transparent, the tool tests your module colour against white rather than against whatever the preview is showing.

Module shapes and finder styles

Square modules are the reference implementation and the most tolerant of everything. Rounded modules cost a little at small sizes because the corners of each cell are what the decoder samples. Dots cost the most, since they shrink the effective dark area of every cell, and at 2 cm on cardboard that difference is real. Connected modules sit between the two. If a code is going somewhere physically demanding, the honest answer is squares. On a screen or a large format print, use whatever matches the brand.

Finder styles are safer than they look. Circular or leaf shaped corners still present the same nested ring structure the decoder looks for, and decoders are considerably more tolerant here than the folklore suggests. The rule is proportion: the ring, the gap, and the core must stay in their original ratio, which the generator enforces for you.

Large format is where branding pays off most, because size gives you back all the margin the design costs. The billboard below carries a centred logo in a symbol that is metres wide, so a logo occupying a fifth of the width is still leaving hundreds of readable modules in every direction.

A person using a smartphone camera app to scan a large dynamic QR code with an embedded logo displayed on a public advertising billboard.
Fig. 04Generate Scannable QR Code With LogoA practical demonstration of scanning a large-format custom QR code with an embedded central logo from a public advertising billboard.Large format buys margin. The same logo ratio that is risky on a 2 cm label is comfortable when each module is several centimetres across and the viewer can step closer.

One thing that shot gets right and most billboard placements get wrong: the code is at a height and angle a person can actually point a phone at. A code six metres up an unlit wall satisfies the size table and still collects zero scans. Reachability is a design constraint, not an afterthought.

QR Code or Retail Barcode: Which One You Need

A large share of people searching for a free barcode generator online actually want a QR barcode maker for their website or packaging, while a smaller but important share want an EAN or UPC retail barcode and will waste a week finding that out. The two are not interchangeable, and no barcode create online tool can give you the second one legitimately for free.

ComparisonQR codeEAN / UPC retail barcode
ContainsAnything you type, up to a few thousand charactersA single licensed product number, 8 to 13 digits
Who issues itNobody. You generate it yourself, free.GS1, against a paid membership tied to your company
Read byAny camera, any phoneTill scanners and warehouse laser readers
Used forLinks, contact details, WiFi, instructions, asset tagsSelling a physical product through retail and most marketplaces
This tool makes itYesNo, and neither can any other free generator

If a marketplace or a retail buyer has asked you for a barcode, they mean a GS1 number and you have to license it. If you are numbering your own stock internally, or routing customers to a page, a QR code does the job and costs nothing. Plenty of products carry both: the retail barcode for the till, and a QR code for the customer.

Worth knowing where this is heading. GS1 has been pushing a migration toward two dimensional codes at checkout, with QR codes carrying a GS1 Digital Link so that a single symbol serves the till and the shopper's phone at once. Retail rollout is uneven and the retail barcode is not going anywhere yet, but the direction of travel is one code doing both jobs.

Where QR Codes Actually Earn Money

The glamorous placements are the ones that underperform. Billboards and magazine spreads look impressive and convert badly, because the person seeing them has no reason to act yet. The codes that pay for themselves are the boring ones, placed where somebody is already holding a phone and already has a problem your page solves.

Inside the box

  • Packing slip reorder codes. One code per consumable product, pointing straight at a prefilled cart. The customer scans it when the bottle runs low, not when the parcel arrives. This is the highest converting placement in e-commerce and almost nobody does it properly.
  • Setup and instruction codes. Printed on the product itself, not on a leaflet that gets thrown away with the packaging. A code pointing at a two minute setup video removes the most common support ticket category in most hardware businesses.
  • Returns and warranty registration. A code that opens the returns portal with the order already identified turns your worst customer experience into your cheapest one, and warranty registration collects the email address a marketing team spent months failing to get.
  • Batch and provenance codes. Plain text codes carrying a batch number, a packing date, or a production line identifier. No internet required, readable by any phone, and considerably harder to smudge into illegibility than a handwritten label.

In the shop and on the shelf

  • Shelf talkers. A small card under the price label linking to specifications, reviews, or a size guide. Retail's answer to a product page, at the exact moment of hesitation.
  • WiFi at the counter. Print the network code once and staff stop reading passwords aloud. The WiFi tab writes the standard format phones expect, and the code stays entirely offline.
  • Out of stock recovery. A code on the empty shelf edge that takes the customer to the same item online. This is free revenue that most retailers hand to a competitor.
  • Window codes after hours. Two thirds of the people who walk past a closed shop are past it for good. A window code linking to the online store is the cheapest recovery mechanism there is.

B2B, field service, and internal routing

  • Asset tags on hardware. A code on a rack unit, a machine, or a fleet vehicle, pointing at its own maintenance record or runbook. The engineer standing in front of the equipment stops searching a wiki for a serial number.
  • Business card codes. The Business card tab writes a full vCard, so the contact lands in the phone's address book with no hosted profile page in the middle. It works on a card, an email signature, a name badge, or a stand panel.
  • Trade show lead capture. A code on a stand panel pointing at a short form beats a fishbowl of business cards, and it timestamps every lead automatically.
  • Invoice payment codes. A code on a printed invoice that opens a prefilled payment page shortens the collection cycle measurably, particularly with small business customers.
  • Documentation on equipment. Manuals, safety sheets, and calibration certificates linked from the machine itself. The alternative is a binder nobody can find.

Retail promotion sits in the middle of that range. It works when the code is in the customer's hand rather than on a wall, which is what the flyer below is doing.

A happy retail customer holding shopping bags and a printed square QR code flyer, created using a free custom QR code generator to boost offline sales.
Fig. 05Create Custom QR Code For Retail MarketingA retail marketing application showing a customer holding a printed custom QR code used for promotional discounts and offline-to-online conversions.A code the customer carries home outperforms one on a wall, because it gets scanned in the evening on the sofa rather than in a queue with a basket in one hand.

The handout in that photograph is doing something a poster cannot: it survives the trip home. Print the discount code in readable text next to the QR code as well, so the offer still works when the code will not scan, when the phone battery is dead, or when the customer simply prefers typing. A printed fallback costs you nothing and recovers the scans you would otherwise lose.

QR Code Security: The Sticker Nobody Checks

A QR code is unreadable to a human. That is the whole security problem in one sentence. Nobody can look at a pattern of squares and tell whether it points at your payment page or somebody else's, which has produced a category of fraud commonly called quishing.

The attack is physical and requires no technical skill. Somebody prints a sticker and places it over the real code on a parking meter, a restaurant table, an electric vehicle charger, or a payment terminal. Customers scan it, land on a convincing copy of the payment page, and pay a stranger. The business finds out days later from complaints, and the reputational damage lands on the business, not the attacker.

  • Print the domain in text beside the code. A customer who can see the destination before scanning has a chance to notice when it changes. This is the single most effective countermeasure and it costs one line of type.
  • Laminate or use tamper evident labels. A sticker over a laminated code peels; a sticker over paper does not. For unattended terminals, use security labels that leave a void pattern when removed.
  • Include the code in opening checks. Staff who look at the code every morning notice the day it changes. This is a thirty second task with a large payoff.
  • Prefer your own domain over a shortener. A code that resolves to your own domain gives the customer something recognisable in the browser's preview. A random short link teaches customers that unrecognisable destinations are normal, which is exactly the habit an attacker relies on.
  • Never encode credentials or personal data directly. Anything in a static code is readable by anybody who photographs it. That includes the WiFi password in a WiFi code, which is fine for a guest network and wrong for the network your till runs on.

On the generator side, the same logic explains why scan tracking here requires an account. An anonymous service that lets anybody mint a redirect link on a trusted domain is a phishing tool with a marketing page, and open redirect abuse is how short link services acquire the reputation that gets them blocked by mail filters. Requiring an account keeps every tracked link attributable.

The Test Protocol Before a Print Run

Ten minutes of testing against the cost of reprinting a pallet of packaging. This is how you confirm you have a genuinely scannable QR code rather than one that only works on the designer's monitor. Run this every time, in this order.

  1. 1

    Read the warning under the preview first

    Contrast and logo coverage are checked on every redraw. An amber note means marginal, a red note means it will not read reliably. Neither is advisory decoration. Fix the design before printing anything at all.

  2. 2

    Print the 2 cm test on your own printer

    Not the design proof, not a screenshot. Paper, at the smallest size the code will ever appear at, from the printer that will produce the real thing if you can manage it.

  3. 3

    Scan with the worst phone in the building

    Your own flagship is the least useful test device you own. Borrow a three or four year old Android with a scratched lens. That is what your customers are carrying.

  4. 4

    Test in bad light and at an angle

    Indoor evening light, and again at roughly forty five degrees. If the code only reads flat under a desk lamp, it does not work in a shop.

  5. 5

    Check the destination on the phone that scanned it

    Confirm the page loads fast on mobile data, that it is not blocked by a cookie wall on first paint, and that the redirect chain is one hop rather than four. A code that scans perfectly into a slow page is still a failed code.

  6. 6

    Sign off on a physical proof

    For a real print run, get a proof on the actual substrate and scan that. Coated stock, kraft, matte vinyl, and shrink film all behave differently, and a digital proof tells you nothing about ink spread.

Export the right file for the job. SVG for anything going to a printer, because it is geometry rather than pixels and scales without softening a single edge. PNG at 1024 pixels or more for screens, email, and slides. JPG only when a system refuses everything else, since its compression blurs precisely the edges the decoder needs.

Why Your QR Code Will Not Scan

Ranked by how often each cause turns out to be the actual culprit.

SymptomProbable causeFix
Nothing happens at any distanceContrast too low, or the code is invertedDarken the modules, lighten the background, and never put light modules on dark
Works on screen, fails in printQuiet zone cropped by the layout, or printed too smallRestore four modules of blank margin and go up one size band
Reads on new phones onlyMarginal contrast, or dot modules at small sizePush contrast past 4.5 to 1 and switch to square modules
Stopped working after adding a logoLogo above roughly 20% of the width, or overlapping a finderShrink the logo, keep it centred, confirm the level is locked to H
Only reads from one angleGlare from gloss laminate or shrink filmMatte finish, or spot matte varnish over the code area
Blurry modules on cardboardInk spread on uncoated stock closing the light gapsPrint larger, use a white label, raise the level to Q
Fails on a bottle or tubeCurvature distorting the grid past what alignment can correctNarrower code relative to the curve, level H, test on the real container
Phone scanner works, warehouse gun does notColoured modules, or an inverted designBlack modules on white for anything a laser reader will see
Scans, then lands on an errorThe destination moved, or the redirect chain brokeNothing to do with the code. Fix the URL, and next time point it at a path you control
Worked last year, dead nowA dynamic code from a vendor whose free tier endedReprint as a static code. There is no other fix, which is the entire argument for static.

One diagnostic shortcut worth knowing. If a code fails, photograph it and try to decode the photograph on a desktop machine. If the photograph decodes, the pattern is fine and your problem is physical: lighting, size, glare, or distance. If the photograph fails too, the problem is in the artwork, and no amount of better lighting will save it.

Frequently Asked Questions

Is this QR code generator free for commercial use?

Yes. Build as many codes as you want, put them on packaging, invoices, shop windows, vehicles, or paid advertising, and keep the files. No watermark is added, no attribution is required, and there is no per-scan fee. The image belongs to you the moment it lands in your downloads folder.

Do the QR codes expire?

Static codes cannot expire. The payload is encoded into the black and white pattern itself, so there is no server between the phone and the destination that could ever be switched off. The only thing that can break a static code is the destination: if you delete the page it points at, the code still scans and still resolves, it just lands on a 404. Optional tracking links are the exception, because those do route through our redirect.

Can I download the QR code as an SVG vector file?

Yes. SVG is the format to hand a printer, because it stores the code as geometry instead of pixels, so the same file prints at 2 cm on a label and at 2 m on a shop window with identical edges. Use PNG for anything on a screen, use SVG for anything that goes near a press, and treat JPG as a last resort because its compression softens module edges.

Why will my QR code not scan?

In order of how often it actually happens: not enough contrast between the code and its background, a logo covering too much of the middle, artwork or text crossing into the blank margin around the code, printing it smaller than about 2 cm, or an inverted design with light modules on a dark background. Fix contrast first, it accounts for most failures.

How small can a QR code be printed?

The working floor for a printed code carrying a short link is about 2 cm square on coated paper, and about 2.5 cm on cardboard, kraft, or anything uncoated where ink spreads. Below that the individual squares get close to the resolution a phone camera can resolve at arm length. The print test button in the tool exports the code at exactly 2 cm so you can check it on your own printer before ordering anything.

Can I put my logo in the middle of a QR code?

Yes, and the generator raises error correction to its highest level automatically as soon as you upload one, so the code can rebuild the data your logo covers. Keep the logo under roughly 20 percent of the code width. Above that you are gambling with the recovery budget, and the code may read on a new phone in good light while failing on a scanner at a warehouse door.

Do you store the URLs or contact details I type in?

No. Everything you type is encoded in your browser by JavaScript running on your own machine, and the preview is drawn on a canvas locally. Nothing you enter into the website, business card, text, or WiFi tabs is transmitted to us. The single exception is the optional tracking switch, which has to register a short link on our server to work at all, and which is off unless you turn it on.

Can I change where a printed QR code points afterwards?

Only if there is a redirect in the chain. Two ways to get one: turn on tracking here, which encodes a CartHacker short link you can repoint later, or point the static code at a URL on your own domain such as yourstore.com/box and change that redirect yourself whenever you like. For a plain web address the second option is the one we recommend, because the redirect stays under your control forever. For a business card, a WiFi sign or a printed message there is no equivalent trick, so tracking here is the only thing standing between a wrong phone number and a reprint.

Do QR codes work without an internet connection?

The scan always works offline, because decoding is pure maths performed by the camera. What happens next depends on the payload. WiFi credentials, plain text, and business card details are read and used immediately with no connection at all. A website code decodes offline too, but the phone obviously needs a connection to load the page it decoded.

Can I make a business card QR code that saves contact details?

Yes, that is the Business card tab. Left as a static code it writes a standard vCard, so scanning it opens the New contact screen on iPhone and Android with the name, phone numbers, email, company, job title, address, and website already filled in. Only the fields you complete are included, and the whole thing lives inside the code with no hosted page in between. Switch tracking on and the code instead resolves to a contact card hosted here, with the same Save to contacts result but two additions: you can count the scans, and you can correct a number after the cards are printed.

Can this tool generate a barcode for retail products?

No, and be careful with the wording here, because a QR code and a retail barcode are different things. The EAN or UPC stripes on a product are licensed numbers issued by GS1 and read by a till, and no free generator can legitimately issue you one. QR codes carry whatever you want and are read by cameras. Many shops need both, on the same label, for different readers.

Is this a free QR code maker or does it need software?

It is an online QR code generator and there is nothing to download. No installer, no freeware with a bundled toolbar, no desktop licence. Open the page, type, and the code is drawn in your browser. It works the same on Windows, macOS, Linux, iOS, and Android, because the only requirement is a browser from roughly the last five years.

How does this compare with the Canva or Adobe Express QR code generator?

Those are design suites with a QR feature attached, so the code is one element inside a document and getting a clean standalone file out of them is awkward. This is the opposite: a QR code builder that exports exactly the file a printer wants, with error correction, quiet zone, contrast checking, and true vector output as the point rather than an afterthought. Use a design tool for the poster, use this for the code that goes on it.

Do coloured QR codes still scan reliably?

Colour is fine as long as the code stays darker than its background, with a contrast ratio above roughly 4.5 to 1. Gradients, pastel codes, and light on dark inversions are where things break. Watch the warning under the preview: the tool measures the contrast of your chosen colours in real time and tells you when a design has crossed from a stylistic choice into a scanning failure.

Free CartHacker tools

Free speed test and trust badges for Shopify and WooCommerce stores

Find the apps that slow your store down, by name and in milliseconds, then answer shoppers' doubts with trust badges under Add to cart. Both are free, with no card and no access to your store admin.

Store Speed Test

Which app is slowing your store down?

Paste any page and get its three Core Web Vitals, the apps costing time, like Klaviyo or Judge.me, and the Shopify or WooCommerce fix.

  • 1 free test a day, no sign-up
  • 5 a day on a free account
  • Google's Lighthouse engine
Trust Seals & Badges

Do shoppers hesitate at Add to cart?

Show the promises that settle doubts, from free shipping to a money-back guarantee, right under the Add to cart button. One line in your theme.

  • 8 badges in 2 styles, free
  • Premium: 50 badges, 30 languages
  • View counts from the first shopper
Build my trust badges Design them without signing up.
Also free
39 PDF Tools

Convert, merge and sign in your browser. Your files are never uploaded.