Last Updated on September 24, 2026 by Umar Farooq
Cleaning stains from concrete is a diagnosis problem before it is a cleaning problem. Almost every concrete stain belongs to one of four families — organic, petroleum, metallic or mineral — and each family responds to one kind of chemistry while ignoring the other three completely. Work out which family you are looking at, pick the matching product, give it real dwell time, then rinse. Get the family wrong and the job fails no matter how hard you scrub or how much pressure you bring.
That is the whole article in a paragraph, and it is also the part nearly every homeowner skips. The usual sequence is to buy the bottle with the most confident label, scrub for twenty minutes, achieve nothing, then assume the answer is a bigger machine. It almost never is. I went looking for a single product that handles all four families and there is no such thing, because the four stains are not even chemically related. Rust and algae have about as much in common as a nail and a lettuce.
The Four Families Every Concrete Stain Belongs To
Sorting a stain into a family is the only decision that actually matters. Everything else — product brand, pressure, brush stiffness — is detail.
| Family | Typical culprits | What removes it | What does nothing |
| Organic | Algae, mould, mildew, moss, leaf and berry tannin, pet waste | Sodium hypochlorite or percarbonate (oxidisers) | Acid, degreaser |
| Petroleum | Motor oil, transmission fluid, grease, tyre marks, BBQ drippings | Alkaline degreaser and surfactants | Bleach, acid |
| Metallic | Rust, fertiliser burn, patio furniture feet, copper and bronze runoff | Oxalic or phosphoric acid, chelators | Bleach (makes it worse), degreaser |
| Mineral | Efflorescence, hard water scale, mortar smears, battery haze | Mild acid or a proprietary efflorescence remover | Bleach, degreaser |
Paint and coatings are the awkward fifth item, and they belong in their own bucket because they are not stains at all. A stain has soaked into the pores. Paint is a film sitting on top, which is why strippers work on it and cleaners do not.
The Concrete Masonry and Hardscapes Association splits the job into three approaches — water cleaning, abrasive cleaning and chemical cleaning — in its technical note on removal of stains from concrete masonry. Its recommendation for anything soaked in is a poultice: a paste of a solvent or reagent mixed with a fine, inert, absorbent powder, spread a quarter to half an inch thick, left to dry and then scraped off. The document adds a detail I had not seen on a single home improvement site, and it is a good one: if the poultice uses an acid, do not make the paste with whiting, ground limestone, hydrated lime or portland cement. Those powders are carbonates and hydroxides. The acid will spend itself neutralising your own paste instead of the stain, and you will stand there wondering why nothing happened.
Reading a Stain: Colour, Edge, Shape and Where It Sits
You can family-sort most stains from three feet away with no products at all. Four things tell you nearly everything.
Colour. Green and black that varies with shade and season is biological. Orange to reddish brown is iron. Brown with a yellowish halo is tannin from leaves, acorns or berries. Black with a hard glossy centre is petroleum. Chalky white is mineral salt.
The edge. Organic growth has a soft, irregular boundary that follows where water sits. Petroleum has a defined dark core with a lighter halo where it spread through the pores. Rust has streaks and runs that point downhill, because it arrived dissolved in water.
The shape and its source. Look up and look uphill. A rust streak below a downspout is galvanised runoff. A brown patch under a tree in October is tannin. A dark oval where the car parks is not a mystery. Concrete stains are almost always geography.

Whether it changes when wet. This one is underused. Wet the area with plain water. Organic growth usually darkens and can feel slick. Efflorescence often disappears completely while wet and returns as the slab dries, which is the most reliable single tell for mineral salt. Petroleum tends to stay visible and may bead water slightly. Rust does not change much at all.
Two minutes with a hose and your eyes will get you the right family far more often than the label on the bottle you already own.
Three Spot Tests You Can Do With What Is Already in the Garage
When the visual read is ambiguous — and shaded driveways with mixed staining usually are — three small tests settle it. Do all of them somewhere inconspicuous, because two of them can lighten the concrete.
The water drop test. Drop a tablespoon of water onto the stain and onto clean concrete nearby. If it soaks into both within about thirty seconds, the slab is unsealed and the stain is down in the pores. If it beads on either spot, there is a sealer, and the whole job changes: sealed concrete gives up stains far more easily, but an acid or a strong solvent will damage the sealer and leave a patch you can see from the street.
The bleach dab test. Put a capful of household bleach on a coin-sized part of the stain and wait five minutes. If it visibly lightens, you have an organic stain and an oxidiser is your product. If nothing at all happens, you have ruled out the entire organic family in five minutes, which is the fastest useful result on this page.

The acid fizz test. A few drops of white vinegar on a white deposit. Visible fizzing means a carbonate, so efflorescence or mortar residue rather than a stain. No fizz on a white patch usually means it is the concrete itself — curing discolouration, or a spot where something etched the surface. Do this one sparingly and rinse afterwards, because even weak acid on cement paste is a slow, quiet kind of damage.
Three tests, ten minutes, no shopping. The alternative is buying four products and trying them in the wrong order, which is the standard approach and also why the internet is full of people insisting concrete stains are impossible.
Why the Wrong Chemical Does Nothing At All
This is the mechanism, and it is worth two minutes because it explains every failed attempt you have ever made.
An oxidiser like sodium hypochlorite works by tearing apart the double bonds in coloured organic molecules — the pigment in algae, the tannin in a leaf. Break those bonds and the colour is gone. It is remarkable on anything that was once alive. It does essentially nothing to a hydrocarbon chain or an iron oxide, because there is no organic chromophore sitting there to destroy.

An alkaline degreaser works by saponification and emulsification: high pH converts fatty components into soap, and surfactants wrap the remaining oil droplets so water can carry them away. That is a mechanism aimed squarely at petroleum. Point it at a rust streak and the rust does not care.
An acid or chelator dissolves metal oxides and carbonates by pulling the metal ion into solution. Oxalic acid is the standard choice for iron because it forms a soluble iron complex, and CMHA gives a working strength of about one pound of oxalic acid per gallon of water. On an algae stain, acid accomplishes roughly nothing except a mild etch.
Here is the part that costs people an afternoon: chlorine bleach does nothing at all to a rust stain. Hypochlorite works by oxidising, and iron oxide is already fully oxidised — there is no reaction left to give it. It cannot chelate either, so unlike oxalic acid it has no way to pull the iron into solution and carry it off. What it does do is lighten the cement paste around the stain, which means the rust often looks worse once the slab dries. You will read in a lot of places that bleach sets rust permanently. I went looking for a primary source on that and found trade blogs citing each other, so I am not going to repeat it as fact. What is supportable is narrower and enough: it is the wrong bottle, it wastes the dwell, and it changes the background rather than the mark.
Which brings me to the strongest opinion I hold about concrete: nine times out of ten, a failed concrete cleaning is a perfectly competent job done with the wrong bottle. Not too little pressure. Not too cheap a product. The wrong family. That is a five-minute diagnostic problem being treated as an equipment problem, and the equipment aisle is very happy to keep selling the misunderstanding.
Cleaning Stains From Concrete: One Sequence, Four Chemistries
Once the family is settled, the method is identical regardless of which bottle you are holding.
1. Sweep and clear first. Dry debris soaks up product you paid for. Moss in particular should be killed and swept off dead before anything wet happens, which the guide to removing moss from a concrete driveway covers properly.
2. Pre-wet with plain water. Dry concrete drinks the cleaner straight down past the stain and then dries out within minutes. Damp concrete holds it where the stain is. The exception is a fresh liquid spill, which you absorb dry with clay cat litter before any water touches it.

3. Apply generously, past the visible edge. The stain is wider underground than it looks on top. Extend a few inches beyond what you can see, and work bottom to top on any slope so the product does not run ahead of itself and streak.
4. Dwell five to ten minutes, and never let it dry. This is where most attempts die. Chemistry needs contact time, and a product that dries on concrete re-deposits everything it just lifted. Work in shade or early morning and re-mist with a pump sprayer if the edges start looking matte.
5. Agitate with a stiff brush. Two minutes of brushing per square metre changes the outcome more than any product upgrade, because a broom finish has grooves that spraying simply never reaches.
6. Rinse at the low end. Concrete flatwork tolerates 2,500 to 3,000 PSI with a 15 or 25-degree tip, and the safe PSI numbers for a concrete driveway are worth having in front of you. On a treated stain you usually need less than that, because the chemistry has already done the work. The red 0-degree nozzle is not the tip for this, or for anything else on a slab. It cuts a visible line into cement paste in about two seconds and leaves you with a stripe instead of a stain.
7. Let it dry completely before judging. Wet concrete is uniformly dark and hides everything. Give it two to four hours in sun. Most stains older than a month need two or three cycles, each less dramatic than the last, and when a cycle changes nothing you have hit the limit of surface chemistry and it is time for a poultice.
The one family with a genuinely different curve is petroleum, because oil migrates millimetres below the surface where water cannot reach it. The full treatment for that is in whether pressure washing removes oil stains from concrete.
The Stains That Are Not Stains
A meaningful share of what people try to clean off concrete was never on the concrete. It is the concrete.
Efflorescence is salt, not dirt. CMHA describes three conditions that must all be present: soluble salts in the material, moisture to dissolve and carry them, and a force such as evaporation or hydrostatic pressure to move the solution to the surface. Remove any one and it stops, which is why their guidance on controlling and removing efflorescence spends more time on drainage than on cleaners. The salts come from the portland cement, the aggregate, the mix water and the adjacent soil. Scrubbing treats the symptom. The moisture path is the disease.
Curing discolouration is mottled light and dark patching that appeared when the slab was young and has never changed since. Calcium chloride accelerators, uneven curing and plastic sheeting all cause it. No cleaner touches it, because there is nothing there to remove.
Etching and wand marks are missing material. A too-close pass, a 0-degree tip or an acid left to sit has eroded the cement paste and exposed the sand below. The mark is lighter and rougher than the slab around it, and it will collect dirt faster from now on. Cleaning makes it more visible, not less.
Sealer failure looks like a stain and behaves like a bad mood. A worn or blushed acrylic goes cloudy and blotchy, especially where tyres sit hot. That is a stripping and recoating job, and every cleaner you apply is landing on the sealer rather than the concrete.
The tell for all four is time. Real stains have a start date and a source. If the mark has been there since the slab was poured, or since the day something etched it, no bottle is going to help. The National Research Council of Canada’s digest on removal of stains from concrete surfaces is worth a read if you want the full building-science version.
What Sets a Stain Permanently
Each of these turns a fixable mark into a feature of the slab.
Bleach on rust. Covered above and worth repeating, because it is the most common irreversible mistake in concrete cleaning.
Pressure before chemistry on a fresh spill. High-pressure water hitting untreated liquid oil drives it deeper and spreads it sideways. A four-inch spot becomes a two-foot smear that is genuinely harder to fix.
Letting the product dry on the surface. Everything it lifted settles straight back down, plus an alkaline haze to remove afterwards.
Muriatic acid as a general cleaner. It does not remove stains. It dissolves the calcium in the cement paste, leaving a lighter, rougher, more porous patch that will stain faster than the concrete around it. You have not cleaned the slab. You have traded a stain for a permanently absorbent scar.
Mixing families in one session. Bleach and acid together produce chlorine gas. If you have used an oxidiser and now need an acid, rinse thoroughly and let the slab dry in between. Treat the two as products that must never share an afternoon, let alone a bucket.
Cleaning one patch in isolation. A perfectly cleaned square in the middle of four years of grime reads as a bright spot, not a repair. Clean out to the nearest expansion joint at least.
FAQ
What is the best all-purpose cleaner for concrete stains?
There is not one, and any product claiming to be it is a general-purpose detergent with good marketing. Detergents lift surface grime, which is genuinely most of what a dirty driveway is, but they will not touch rust, cured oil or efflorescence. Sort the stain into a family first and buy for that family.
How do I tell an oil stain from a mould stain on concrete?
Oil is a defined dark patch with a lighter halo, usually where a vehicle sits, and it does not change much when wet. Mould and algae are green to black, spread across shaded or damp areas with soft irregular edges, and often feel slick underfoot. A capful of bleach settles it in five minutes: organic growth lightens, oil does not.
Does vinegar remove stains from concrete?
Vinegar is a weak acid, so it does something to mineral deposits and light rust and almost nothing to organic growth or oil. It is also an acid on a calcium-based material, so repeated use etches the surface. It is a useful diagnostic — the fizz test tells you whether a white deposit is a carbonate — and a fairly weak cleaner.
Can I use bleach on all concrete stains?
No. Bleach is an oxidiser aimed at organic colour: algae, mould, mildew, tannin. It does very little to petroleum and it actively makes rust stains worse by oxidising the iron into a less soluble form. Never mix it with an acidic cleaner or with ammonia.
Why did my stain come back after cleaning?
Two usual reasons. Either it is efflorescence, in which case the salts will keep arriving as long as moisture keeps moving through the slab, or the stain was deeper than your chemistry reached and what you removed was only the top layer. The first is a drainage problem. The second needs a poultice.
Will a pressure washer remove stains from concrete on its own?
It removes surface grime, tyre dust and loose organic film very well, and it rinses treated residue far better than a garden hose. What it cannot do is reach anything that has soaked into the pores, because water only acts on the surface it strikes. Pressure is the rinse step, not the treatment.
Should I seal concrete after removing a stain?
Yes, once the slab is completely clean and has dried for two to three days. A penetrating silane or siloxane sealer lines the pores and turns most future spills into wipe-up jobs. Do not seal over residual oil or a damp slab, because the sealer will not bond and will peel in patches.
Name It Before You Spray It
Cleaning stains from concrete stops being frustrating the moment you stop treating every mark as the same problem. Four families, four chemistries, and one method that works for all of them: pre-wet, apply past the edge, dwell without drying, agitate, rinse low, judge dry, repeat.
Spend the ten minutes on the spot tests. A tablespoon of water, a capful of bleach and a few drops of vinegar will tell you more about what you are dealing with than an afternoon of scrubbing and a receipt for three bottles. And if the mark turns out to be efflorescence, curing discolouration or an etch left by someone else’s enthusiasm with a red nozzle, you have saved yourself the afternoon entirely.
The slab is not being difficult. It is waiting for you to bring the right chemistry, and it has all the time in the world.

