Barcode Color: Why Red Bars Won’t Scan (and the Other Color Traps)
A barcode scanner reads with red light, so red bars are nearly invisible to it. This explains why certain colors fail, why reversed barcodes do not work, and which color combinations actually scan.

Here is a failure that looks like a printer problem, a scanner problem, or a bad barcode — but is none of those. You print a barcode in a brand color, a nice deep red or a warm orange, and the scanner will not read it no matter how many times you try. The bars are crisp, the quiet zone is fine, the data is correct, and still: nothing.
The cause is the way barcode scanners "see." They do not read black ink the way your eyes do. This guide explains the physics, the specific colors that fail, the "reversed" trap, and how to check your own labels before you print a thousand of them.
The scanner sees differently than you do
Most laser and linear barcode scanners emit a narrow beam of red light, typically in the 630–670 nanometer range. The scanner does not build a picture of the bars; it measures how much of that light bounces back as the beam sweeps across the symbol.
Here is the key insight: the scanner only cares about contrast — the difference in reflectivity between the bars and the spaces. Dark bars absorb the red light and return almost nothing. Light spaces reflect it back. That difference is what the scanner turns into a pattern of 1s and 0s.
Your eye has three color channels and can tell "deep red" from "black." A red-light scanner effectively has one channel, and to it, a red bar is just about as bright as a white space.
Why red bars disappear
Red ink reflects red light. A bar printed in red, magenta, orange, or a warm pink reflects most of the scanner's red beam straight back — nearly as much as the white paper around it. The scanner sees no dark bar there at all.
The practical result:
- A red bar against a white background reads as a blank space, so the symbol is effectively "all light" and contains no code.
- A red bar against a light pink or yellow background is even worse — both are bright in red light.
- A red barcode on a dark background can sometimes pass on high-end imagers, but it is unreliable and should never be shipped.
The single most common version of this trap is a marketing department that wants the barcode to match the brand palette. It is a natural instinct and a guaranteed scan failure. Barcodes are one place where function has to win over aesthetics.
The reversed trap: light bars on a dark background
The mirror image of the red-bar problem is inverted (or "reversed") printing: light bars on a dark background — white bars on black, for example.
Some 2D imagers can read reversed codes if explicitly configured to, but most linear scanners and virtually all retail point-of-sale scanners cannot. They are calibrated to expect dark bars on a light background, and a reversed symbol reads as noise. If your label design calls for a light logo area on a dark band, keep the barcode on a light field, or give it its own white box.
Which colors work, which do not
As a rule, you want maximum darkness for the bars and maximum lightness for the spaces. Here is the practical matrix:
| Bar color | Verdict | Why |
|---|---|---|
| Black | Best | Absorbs all of the red beam |
| Dark blue, dark green | Usually fine | Absorb red well, but test at high volume |
| Dark brown | Risky | Reflects a noticeable amount of red |
| Red, orange, magenta, pink | Fails | Reflect the red beam almost like white |
| Yellow, gold | Fails as bars | Too bright; use only as a background (and even then, test) |
And the reverse side — background (space) colors:
| Space color | Verdict | Why |
|---|---|---|
| White | Best | Maximum reflection |
| Very light yellow, cream | Usually fine | Still bright enough, but reduce margin for error |
| Red, pink, orange | Fails as spaces | Too dark in red light — the bars and spaces become indistinguishable |
If in doubt, remember the mnemonic: the bars must be darker than the spaces to red light, not just to your eyes.
Print contrast signal (PCS): the number behind the rule
The industry does not rely on eyeballing. Verifiers measure a quantity called the print contrast signal (PCS), which is the mathematical expression of how much darker the bars are than the spaces, in the scanner's light:
- A PCS of 0 means the bars and spaces are identical (unreadable).
- A PCS of 1.0 means the bars are perfectly black and the spaces perfectly white.
- Retail and logistics specs generally require a PCS of 0.70 or higher (some accept 0.75 for long-range readers).
A red bar on white paper might have a PCS of 0.2 or less — far below the threshold, even though it looks like a perfectly dark bar to you. This is why a symbol can pass a visual check and still fail verification. The full definition is in the print-contrast glossary entry.
What the standards actually require
The color rule is not just advice from label vendors; it is written into the standards that govern barcode quality. ISO/IEC 15416 covers the measurement of printed linear barcode quality, and GS1 sets the reflectance thresholds the supply chain actually enforces.
Two numbers from those standards matter most for color:
| Measure | Typical threshold | Why it matters |
|---|---|---|
| Space reflectance | ≥ 50% (70%+ ideal) | The light areas must bounce enough of the scanner's light back to register as "space" |
| Bar reflectance | ≤ 20% | The dark areas must return almost nothing to register as "bar" |
| Print contrast signal | ≥ 0.70 | The computed difference the scanner can actually decode |
These are exactly the numbers a red barcode fails. A red bar on white paper might come in around 45% reflectance for the bar and 60% for the space — a contrast difference far too small to decode, even though the symbol looks clean and high-contrast to the eye. The standards are objective and unforgiving, which is why they are referenced across GS1's barcode standards and the General Specifications.
The practical takeaway: "will it scan" is a question answered by measurement, not appearance. If a label matters enough to print at volume, run it through a verifier — a verifier grades against these requirements, while a scanner merely tells you whether that particular unit happened to read this time.
A real example: brand color vs. scan reliability
Here is a pattern I see constantly. A company rebrands, and the new identity uses a deep burgundy or a bright orange as a primary accent. The packaging team wants the barcode to sit inside a brand-colored panel so the label looks cohesive. The result is a barcode that fails at the dock no matter how carefully it is printed.
The resolution is almost always the same: give the barcode its own white or near-white box, regardless of what is around it. A white-out box tells the scanner "this patch is an independent symbol," and it guarantees the contrast the reader needs. It looks slightly less integrated than the rest of the label, but it never fails.
If a colored barcode is genuinely unavoidable — a brand insists on a color-matched QR code, for instance — then treat it as a compromise: test it with the exact scanner used in the field, at the smallest size you will ship, and expect to back off to black-on-white the moment the failure rate crosses the line. The cost of a returned pallet or a rejected shipment is orders of magnitude higher than the aesthetic cost of a white box.
2D codes are more forgiving — but not immune
QR, Data Matrix, and other 2D codes are usually read by camera-based imagers, which see in color (or at least in a broader range) and can often decode lower-contrast and even colored symbols. That is why a colored QR code on a product box usually scans fine while a colored linear code does not.
But "more forgiving" is not "immune." A QR code with red modules on a white background still has low contrast and will fail on weak lighting, cheap phone cameras, or when printed small. For anything that must scan reliably — logistics, retail, healthcare — keep even 2D codes black-on-white.
How to check your own colors
Before you commit a colored barcode to a production run, do two things:
- The screen test. Display the symbol on a bright phone and scan it with a phone app. This checks the data and the symbol shape, but it does not test the print color — a phone imager is more forgiving than a laser.
- The real-scanner test. Scan the printed label with the actual scanner you will use in the field. If it is a laser or linear reader, this is the test that matters, because it exposes exactly the red-light contrast problem a phone will hide.
If you are printing at volume, run a proper verifier rather than a scanner — a verifier grades the symbol against the ISO standard and will flag a PCS failure the moment the bars dip below threshold.
This color trap is one of the twelve causes in the full "won't scan" diagnostic. If your bars are the right color and still failing, work through that list in order — contrast is only one layer.
