QR code on t-shirt — printing methods that survive wash

A QR code on a t-shirt only earns its keep if it scans after 50 washes. DTG, screen, transfer, embroidery — which method survives, what size to print.

Jun 4, 2026 17 min read Linked.Codes
QR code on t-shirt — printing methods that survive wash

A QR code on a t-shirt has a fundamentally different job to one on a flyer. The flyer lives one week; the shirt lives two years and visits the washing machine 80 times in between. Most agencies that print branded merch treat the QR like a logo — drop the artwork into the same DTG queue as the front graphic, ship the carton, move on. Two months later the chest panel is faded, the modules are bleeding into each other, and a customer who scanned the shirt on day one can't scan it on day sixty.

This post is the field guide we wished existed when we first started shipping wearable QR codes through Linked.Codes. Four printing methods, what each one survives, how to size the artwork for a curved body, and the small set of design rules that apply on fabric but not on paper. By the end you'll know which method to spec, which fabric blend to back it with, and what error correction level to bake in so the code keeps scanning long after the shirt's stopped looking new.

The four ways a QR code lands on a t-shirt

There are four production methods that put a printable QR on a cotton or blend t-shirt at any meaningful run length: direct-to-garment (DTG), screen printing, heat-transfer (vinyl or DTF), and embroidery. Each has a different wash-survival profile, a different per-unit cost, and a different floor on the smallest module size you can hit. Picking the wrong one for the run length you're planning is the single biggest reason a wearable QR campaign collapses inside a quarter.

DTG runs an inkjet head across the garment, depositing pigment ink directly into the fibre. A standard Brother GTX or Kornit Atlas DTG bed handles one shirt at a time, prints in about 90 seconds, and gives you photo-grade detail at the cost of ink penetration that fades faster than alternatives. Screen printing pushes plastisol or water-based ink through a tensioned mesh stencil, one colour per screen. A four-station carousel can pump out 600 shirts an hour at the cost of needing one screen per QR variant — fine for one campaign code, painful for individualised codes. Heat-transfer ships the artwork on a carrier film (vinyl cut or DTF printed) and a heat press bonds it to the fabric in 15 seconds. Embroidery stitches the QR directly with a multi-needle Tajima or Barudan machine, around 250 modules per minute on a 12-needle head.

Each method has a sweet spot. The mistake is treating "QR on shirt" as a single decision instead of four.

Four printing methods for a qr code on t-shirt — wash survival and cost Garment-print methods — wash survival and per-unit economics DTG direct-to-garment ink ~30 washes $8–14 per shirt, 100% cotton photo detail slow, fades fast no setup fee Screen print plastisol ink + screen 60–80+ washes $2–4 per shirt at 100 units crisp edges one screen per code $35 setup per screen Heat transfer vinyl or DTF film 40–50 washes $4–7 per shirt, any blend unique per shirt edges lift over time no setup fee Embroidery stitched thread 100+ washes $9–18 per shirt, small codes only outlives the shirt thick modules scans iffy
The four methods at a glance. Wash survival, per-unit cost at meaningful run lengths, and the trade-offs you accept with each. Numbers are typical North-American and European trade pricing as of 2026.

What 50 washes actually does to each method

The wash cycle is brutal. A typical home wash is 30 minutes at 30–40°C with mechanical agitation, detergent (which is alkaline and chemically active against pigment), and a tumble-dry cycle at 50–70°C afterward. AATCC test methods 61 and 135 standardise this: 61 measures colourfastness under repeated wash, 135 measures dimensional change in laundering. Most apparel sold as "fade-resistant" passes 61-2A (5 cycles equivalent to ~25 home washes). That's the floor, not the ceiling.

DTG ink sits on top of and shallowly into the fibre. The pretreatment chemistry (a polymer-based primer applied before printing) bonds the pigment to cotton, but each wash cycle dissolves some of the polymer and lifts some pigment. Real-world DTG prints look great at wash 10, visibly faded at wash 30, and unreadable as QR data at wash 40–50. The dark modules turn grey, the light modules pick up dye drift from elsewhere on the shirt, and contrast — the single biggest factor in the QR scanability score — collapses. DTG-printed QRs on dark shirts fade twice as fast as on white because the white underbase has to survive the same washes plus the colour layer on top of it.

Screen-printed plastisol ink is essentially a thin sheet of PVC fused to the fabric at 160°C cure. It doesn't fade — it cracks. The first 30 washes leave the print effectively untouched. Around wash 40 you start seeing fine craquelure in the dark modules. By wash 80 the cracks have widened enough that adjacent dark modules look like two cracked dark modules with a hairline of fabric showing through. Whether the QR still scans depends entirely on whether the cracks penetrate full-thickness (they usually don't) and whether the QR has enough error correction headroom to tolerate the noise pattern (they often do at level Q or H, rarely at L).

Heat-transfer is the middle child. DTF (direct-to-film) is the modern flavour and outperforms older vinyl methods — the hot-melt adhesive layer bonds to fabric more aggressively than cut vinyl, and the edges are smoother. A DTF QR survives 40–50 washes cleanly. After that the edges start lifting at the corners of the transfer (especially around the QR's finder patterns, where the heaviest ink concentration creates a small thickness step in the carrier). Once one finder pattern lifts, the code stops scanning — the decoder can't lock on. The shirt looks fine; the QR is dead.

Embroidery is in a class of its own. Polyester or rayon thread on a tight-tension stitch outlives the t-shirt itself — we've tested QR-embroidered samples through 200 washes without measurable degradation. The catch is the modules. A standard embroidery satin stitch is 0.4–0.5mm wide at minimum, which means the smallest QR you can stitch with one-module-per-stitch fidelity is about 50mm square (21 modules × 2.4mm per module). Smaller and the stitches start bleeding into adjacent cells. Get the threading right and the embroidered code outlives everything else on the shirt; get it wrong and you've stitched a beautiful abstract pattern that doesn't decode.

Body placement — where the QR goes affects the size and the survival rate Body placement zones and recommended QR size CHEST Chest panel (left) 25–35mm side, low stretch EC level Q minimum Sleeve cuff 18–25mm side, high motion EC level H, screen or embroidery only FULL BACK Centre back 60–120mm side, stretches across shoulder blades EC level Q, screen for runs
The three placements that account for ~95% of wearable QR codes. Each one demands a different size, different error correction, and a different shortlist of printing methods.

Sizing for the body, not the proof

A QR on paper is flat. A QR on a body is not. The chest panel curves around the pectoral muscle by about 8° across a 100mm span on a medium fit. The back panel curves between the shoulder blades by about 12° across the same span and shifts another 6° when the wearer raises their arms. Sleeves bend through 90°+ at the elbow. None of this matters at the proof stage because the print runs flat on the heat press; all of it matters when somebody points a phone at the wearer's chest from arm's length.

The fix isn't bigger. The fix is the right size for the placement.

For the chest panel — left or right pec, the spot that takes a brand mark on a polo — the workable QR size is 25–35mm square. Smaller and the modules drop below the camera-resolution threshold on phones held at typical conversational distance (roughly 60–80cm); larger and the print starts crossing pectoral curvature and the side of the chest, distorting modules at the edges. Stay at 28–32mm and you land in the sweet spot. The minimum-size math behind the camera-resolution floor is in the minimum QR code size for print — the same physics applies to fabric but you add a 15% buffer for module-edge softening on fibre.

For the full back — centre between the shoulder blades — you can go bigger because scan distance is bigger. A back-panel QR is typically scanned from 1.5–2.5m (think: people in line behind you at a coffee shop, or a tour-guide signalling a group). At 2m, the minimum module size is about 2mm, which puts your QR at 60–80mm square minimum for a typical 33×33 module code. We've seen 120mm back-panel QRs work as social-media bait, but the diminishing returns flatten fast above 80mm.

For the sleeve cuff — the sliver of fabric that runs from elbow to wrist on a long-sleeve, or the cuff of a short-sleeve tee — you're limited to 18–25mm by the available real estate. This is the smallest viable placement for a QR on a shirt, and it's also the highest-motion zone (the sleeve flexes through the elbow constantly). Screen printing or embroidery only for the cuff; DTG and heat-transfer crack too quickly at this size when the fabric flexes that hard. Error correction needs to be at level H to absorb the inevitable scanning-while-the-arm-moves cases. The error-correction-level walkthrough covers the redundancy maths in detail, but for sleeve placement specifically there's no debate: H is the floor.

For the hem and side seam — the bottom edge and the side panel — don't bother. The fabric folds and bunches there constantly, the surface is rarely flat enough to scan, and any QR placed there scans on the rack but fails on the body.

What the proof can't show you

Two failure modes only appear on the body and never in production.

The first is stretch during the scan. A QR on a chest panel of a medium-fit shirt sits at zero tension when the wearer is standing still and breathing normally. The same QR stretches 2–4% when the wearer raises their arms (which is most of the time someone's scanning their chest). The modules elongate horizontally by that 2–4%, the spacing between rows tightens by an opposite amount, and the decoder has to compensate. At error correction level Q (25% redundancy) the decoder copes; at level M (15%) it's borderline; at level L (7%) it fails on roughly one scan in four. This is why a QR-on-shirt design that scans perfectly in the proof can scan badly on the actual wearer — the proof doesn't stretch.

The second is scan distance variance. A QR on a flyer has a roughly known scan distance — 20–30cm, because that's where you hold a flyer. A QR on a chest panel has a scan distance of "wherever the person scanning happens to be standing", which ranges from 30cm (the wearer holding their own shirt up to scan it) to 3m (someone scanning across a counter). The same QR has to work across a 10× range of scan distances. The fix is sizing for the longest plausible distance — 1m for chest-panel codes, 2.5m for back-panel — and accepting that scans at the close end of the range will be over-resolved (which is fine; cameras handle over-resolution better than under-resolution).

Error correction levels under 3% fabric stretch — scan rate by level Scan rate at 3% fabric stretch — by error correction level L ~44% M ~70% Q ~95% H ~99% A 3% fabric stretch is what a typical chest-panel QR sees when the wearer raises their arms or shifts posture. Level L fails on more than half of those scans; Q and H both stay above 95%.
Fabric-stretch simulation: how a 3% horizontal stretch on a 33×33 module QR affects scan rate by error correction level. The pattern holds for the 2–4% range typical of fitted t-shirts in motion.

The interactive: which method, what fabric, what size

T-shirt QR printer picker

Pick the method, fabric, placement, and batch size. The picker returns per-shirt cost, wash-survival rating, recommended QR side length, and the error-correction level to bake in.

The picker bakes in the trade-offs from a few hundred trade-show conversations with garment-printers. Per-shirt cost includes the screen-setup amortisation for screen-printing — at batch 10 you're effectively paying $35 setup ÷ 10 shirts = $3.50 extra per shirt, which is why screen only wins at runs above 25 units. DTG is cheapest for one-off and individualised codes but most expensive per wash-survived. Embroidery is the most expensive upfront and the cheapest amortised across the lifetime of the garment.

A QR code on a t-shirt is the only printed QR that has to survive being beaten with hot water and detergent for two years. Pick the method for the wash cycle, not the proof.

Design rules that don't apply to paper

A few rules carry over from paper QR design (contrast minimum, error correction levels, finder patterns kept square). A few don't.

Quiet zone is non-negotiable on fabric. On paper a tight crop is forgivable; on fabric, the modules at the edge of the print already get slightly mangled by the fibre weave. Without a quiet zone the decoder can't tell where the code ends and the shirt begins. Two modules of clear space is the print-on-paper minimum; on fabric add another two on every side. Four modules of pure shirt-colour around the QR.

Light modules are rarely "white". A QR on a navy shirt with white modules looks great in the proof and fails in laundry. The white pigment fades into navy faster than the dark modules fade into anything, and you end up with a code that has high contrast at week one and effectively zero contrast at month six. The fix is printing on a contrasting underbase: navy shirt, white underbase, dark modules on top. The underbase costs an extra colour pass on screen, or a thicker ink deposit on DTG, but it doubles the lifetime contrast.

Logo overlay on fabric is harder than on paper. A 20% centre logo is the standard ceiling for paper QRs at error correction Q. On fabric, the ceiling drops to 15%. The combination of stretch + module-edge softening eats more of the error-correction budget than the spec suggests, and the practical ceiling has to drop accordingly. The logo-placement size math covers the print-conditions adjustments and shows the same pattern: harsher surface, lower logo cap.

Round modules survive fabric better than square ones. This is counter-intuitive given that round modules cover 22% less cell area than square modules. But on fabric, the cell-edge bleed from fibre absorption merges adjacent square modules at sub-print sizes, while round modules keep their inter-cell gap because the gap is mathematically baked into the shape rather than depending on the printer's edge sharpness. Round QR codes — what makes them work covers the geometry; on fabric it's a small but real win.

Colour matters more than you think. A QR with dark modules in any colour other than black scans noticeably worse on fabric than on paper. Phone cameras process the QR by converting to greyscale and applying a contrast threshold; on fabric, mid-luminance dyes (navy, forest green, deep red) drift toward grey faster than pure black does. We've seen brand-coloured QRs that score 88 on paper drop to 64 on fabric after 20 washes. The Pantone-on-fabric guides cover the colour-shift behaviour in detail; the practical answer is to use the brand colour only if it's already very dark (charcoal, near-black navy) and to default to true black for everything else.

4 modules
Minimum quiet-zone width on a fabric QR — double the paper minimum. The fibre weave at the print edge eats some of the modules' boundary sharpness, so the decoder needs more clear shirt-colour around the code to lock on.

What we recommend by use case

A few common briefs and the method we'd spec for each, assuming a 100% cotton shirt and a normal home-wash cycle.

Festival merch (100–500 shirts, scanned at the festival and never again): screen print at chest panel, 30mm side, level Q. The shirt is going to live in someone's drawer for a year before maybe coming out again. Wash survival is a nice-to-have, not a requirement.

Conference giveaway (50–200 shirts, scanned during the conference and possibly again at the next one): DTG at chest panel, 30mm side, level Q. The run length doesn't justify screen setup costs, the scan window is small, and DTG photo-detail lets you do gradient logos and other things screens can't.

Brand staff uniforms (50+ shirts, worn weekly, scanned by customers): screen print at chest panel, 28mm side, level Q with white underbase if the shirt is dark. This is the case where wash survival matters most. Screen earns its keep because you'll be washing these shirts twice weekly for two years.

Influencer-distributed campaign shirts (1000+ shirts, individualised codes per influencer): DTG at chest panel, 30mm side, level H. Individualised means you can't screen (one screen per variant defeats the economics), DTG is the only method that handles per-unit codes affordably, and H absorbs the inevitable fading over the shirt's promotional lifetime.

Hidden-Easter-egg merch (small runs, codes designed to age and look "discovered"): embroidery at chest panel, 50mm side, level H. The embroidery survives indefinitely, the thicker modules suit the heritage aesthetic, and the larger size is appropriate because the QR is the design rather than a small functional element.

A point that gets skipped: the URL the QR encodes matters as much as the print. A QR on a paper flyer points at a campaign page that lives a quarter. A QR on a t-shirt points at a destination that needs to outlive the shirt — two years or more. Static QR codes (where the destination URL is baked into the print) lock you in: change the campaign landing page in six months and every shirt becomes a 404 redirect. Dynamic QR codes (where the print encodes a short link that you redirect on the server side) let you change the destination at any time without touching the printed merchandise.

For wearable QR campaigns we ship every code as dynamic by default through the short-links docs. The short URL is part of the print; the destination is part of the dashboard. Six months in, when the original campaign page has been retired, you update the redirect once and every shirt instantly points at the new destination. The shirts in the wild don't know the difference.

This is the bigger architectural reason QR-on-t-shirt has to be dynamic. The shirt physically outlives the campaign. Static QRs assume the destination is permanent; dynamic QRs accept the truth that the destination changes and the print doesn't. The docs on the QR codes module cover how the design and the redirect get bound together inside a tenant account so they stay synced.

Want a QR designer that handles fabric defaults? Round modules at 105%, level Q minimum, dynamic-by-default redirects so the shirt outlives the campaign URL.

Try the QR generator →

When a QR on a t-shirt is the wrong call

A few cases where the answer is "use something else".

One-time event with no follow-up. A QR on conference merch that points at a page that retires the day after the event is wasted design effort. Print the event hashtag instead and let the scan happen on social.

Tiny audience. A QR on a 25-shirt internal-team uniform run is solving a non-problem. The team already knows where to scan; the cost-per-useful-scan is in the dollars.

Industries that don't scan shirts. Plumbers, contractors, anyone whose work happens with both hands occupied. A QR on a service-shirt chest panel sounds clever and gets scanned roughly never. A QR on the back of a service van gets scanned often. The fix is to be honest about where attention sits.

The general principle: a QR earns its place on a shirt when the wearer is in a context where someone else has reason to scan them. Customer-facing retail staff, event hosts, brand ambassadors at trade shows, influencers in long-form video — those are the cases. A team t-shirt at a hackathon, an internal-staff uniform with no public exposure, a personal-brand designer t-shirt printed for the founder — those are not.

Do embroidered QR codes actually scan?

Yes, if you stitch them at 50mm side or larger with a single satin stitch per module and good thread contrast. Smaller and the modules merge; lower contrast (e.g., navy thread on black shirt) and the camera can't separate the modules from the background. Stick to dark thread on light fabric or vice versa, and stay above the 50mm floor.

Can a QR on a chest stretch enough to break scanning?

A 2–4% stretch is normal for a chest-panel QR when the wearer moves. At error correction level Q or H the decoder absorbs it. At level L (the default on some generators) you'll see scan failures in roughly one of four attempts when the wearer's arms are raised. Q is the floor for any wearable QR.

How much does each printing method cost per unit?

Typical 2026 trade prices at 100-unit runs on 100% cotton: screen $2-4, heat transfer $4-7, DTG $8-14, embroidery $9-18. Setup fees apply to screen (~$35 per screen, amortised across the run). The picker above factors all of this in for your specific batch size.

Will a QR survive a year of wear and wash?

Depends entirely on the method. Screen-printed plastisol and embroidered codes survive 50+ washes routinely (i.e., ~12 months of weekly washing). DTG codes fade visibly by wash 30 and stop scanning around wash 40–50. Heat-transfer holds for 40–50 washes before edge-lifting kills the finder patterns.

What error correction should I use for fabric?

Level Q (25%) as a floor for any wearable QR. Level H (30%) for sleeve placements (high motion), embroidered codes (thicker modules), and any case where the shirt will see hard use. Don't drop below Q on fabric — the combination of stretch, fibre softening, and wash-fade eats more redundancy than the spec assumes.

Does fabric blend change the wash-survival rating?

Yes. DTG bonds best to 100% cotton because the pretreatment chemistry is calibrated for cotton fibre — printing DTG on polyester drops wash survival by 30–40% because the pigment doesn't fix as well. Screen print is the opposite: plastisol bonds slightly better to poly-blend than to pure cotton. Embroidery and heat-transfer are roughly fabric-agnostic.

Should the QR on a shirt always be dynamic?

For any campaign-driven shirt, yes. The shirt physically outlives the campaign page, so static QR codes lock you into a destination that will outlive its useful life. A dynamic QR encodes a short link you redirect server-side, which means you can update the destination at any point without touching the shirts already in the wild.

Sourcesshow citations

Try it on your own domain

Branded short links and dynamic QR codes, on your subdomain or your own domain. One-time purchase, no per-click fees.