Updated May 9, 2026
If your patio is looking more ugh than inviting after a long winter, you are going to love this. I found a concrete cleaner hack that completely brought our outdoor space back to life, and the best part? It is probably already sitting in your laundry room. After battling stains, grime, and planter rings that would not budge, this simple trick made cleaning our concrete patio easier (and way more satisfying) than I expected.
Undiluted household bleach applied with a pump sprayer, scrubbed in with a push broom, and rinsed off with a pressure washer is the most effective DIY concrete cleaner for set-in stains, planter rings, and outdoor grime. Three rules: water nearby grass and plants first to protect them from runoff, wet the concrete before applying bleach so it spreads evenly, and rinse the patio thoroughly when finished. This method outperforms diluted bleach mixes, vinegar, and most store-bought concrete cleaners on stubborn stains.
The full process for getting a concrete patio sparkling clean comes down to seven steps:
After a long, cold, stormy winter, our patio was looking rough. Dirt, leaves, and grime had built up in every corner. So, like any determined DIY-er, I started cleaning our concrete patio step by step.

First up: clearing the debris. I used a push broom, a blower, and then gave it a quick rinse with the hose. It already looked better, but not clean.


Next, I brought out the big guns: my pressure washer. If you have ever seen the results in Revive Your Old and Weathered Wood Fence, you know why I had high hopes. And it did help lift a lot of the surface grime, but there were still stubborn stains hanging on for dear life.

These photos are after the pressure washing. Yuck. I knew I was going to have to get creative to get these stubborn stains cleaned off my concrete patio.


Naturally, I went with the conventional wisdom that I found recommended on the internet. I mixed up a solution in my pump sprayer: five parts water to one part bleach. I sprayed it directly on the worst spots, let it sit for 5 to 10 minutes, gave it a solid scrub with the push broom, then rinsed it off with the pressure washer again.
And nope. The stains were still there.


At this point, I decided to go bold. Out came the bottle of straight, undiluted bleach.
But wait. There is a method to this madness, and a few important precautions.
Concrete is porous, which means stains soak into the surface, not just sit on top of it. Diluted cleaners and most store-bought concrete cleaners can lift surface dirt, but they cannot reach the staining particles that have penetrated below the top layer. Undiluted bleach has the chemical strength to oxidize organic stains (mildew, algae, planter rings, food spills, leaf tannins) deep in the pores, which is why it outperforms diluted mixes on set-in stains. The trade-off is that undiluted bleach is harsh on plants, grass, and untreated wood, so prep matters.
Before cleaning your concrete patio with bleach, water any nearby grass or plants. This helps protect them from accidental runoff or splash damage.
Plants and grass absorb whatever liquid is at root level. If the soil around your patio is dry when bleach runoff hits, the roots will pull the diluted bleach in. If the soil is already saturated with plain water, the bleach gets diluted further and rinsed past the root zone before it can do damage. The same logic applies to the bleach itself: a thoroughly wet patio holds the bleach on the surface where you want it, instead of having it soak immediately into the dry pores.
Start by wetting the area of your concrete patio that is stained. This helps the bleach spread more evenly and keeps it from soaking in too quickly.
I poured bleach straight from the jug for some areas, but ended up preferring the pump sprayer for more control. Using the undiluted bleach directly on the stain gave me the results I was after.
The jug pour is fastest for big, badly stained sections, but you waste a lot of bleach and you get drips and splashes outside the stain area. The pump sprayer is the better default: it lets you apply an even mist over a stain, control the boundary so you do not hit grout lines or expansion joints, and use less bleach overall. I keep one sprayer dedicated to bleach so I never accidentally cross-contaminate with other cleaners.
Five to ten minutes is the sweet spot. Less than five and the bleach has not penetrated deep enough to lift set-in stains. More than ten and the bleach starts to dry on the surface, which leaves white residue you have to scrub off later. If you are working in direct sun, stay closer to five minutes because evaporation speeds up. If it is cool or overcast, ten is fine.
Grab your push broom and scrub thoroughly. I mean really work that concrete cleaner into the surface.


Once everything has had a good scrub, rinse the whole patio off with a pressure washer. Not only does this remove the bleach, it gives you that satisfying “sparkly clean” finish.
Bleach is the right call for most outdoor concrete, but there are cases where it can cause problems.
If your patio has a clear sealer on top, bleach can dull or discolor the sealer over time, especially with repeated use. For sealed concrete, start with a milder cleaner (a few squirts of Dawn in warm water plus a stiff brush) and only escalate to diluted bleach for stubborn spots. Colored or stamped concrete is also at risk: bleach can fade the integral color or break down the surface treatment. Test bleach on an inconspicuous corner first and watch it for 24 hours before treating the whole patio. If you have an oil-based stain (engine oil, grease from a grill), bleach will not lift it. Use a dedicated concrete degreaser or kitty litter to absorb the fresh oil first, then bleach the residual discoloration.
Not every stain responds to the same treatment. Here is what actually works for the four most common types of concrete patio stain.
For fresh spills, cover the area immediately with kitty litter or sawdust to absorb as much oil as possible. Sweep up the absorbent material after a few hours, then scrub with hot water and dish soap (Dawn works well). For older oil stains, a poultice of baking soda and a degreaser left to sit overnight pulls oil out of the pores. Bleach does not touch oil; do not bother with it for grease.
Rust comes from metal furniture legs, planters, or rebar bleeding through. The fix is an acid-based rust remover (lemon juice or white vinegar for light rust, or a dedicated oxalic-acid concrete rust remover for heavy stains). Apply, wait 5 to 10 minutes, scrub with a stiff brush, rinse. Bleach does not work on rust either; it can actually set the stain.
This is where bleach shines. Black streaks under shaded areas, green algae near grass and downspouts, and pink mildew in damp corners all respond to undiluted bleach with the method described above. For prevention, a 50/50 bleach-water mix sprayed monthly during humid season keeps the regrowth down.
Those circular stains under terra cotta pots are a mix of mineral deposits from hard water and organic gunk from soil. Bleach handles the organic part. For the mineral deposits, a follow-up treatment with diluted CLR or white vinegar lifts the calcium and lime. Going forward, set planters on saucers or pot feet to prevent the rings from forming again.
You do not actually need a pressure washer for this method. You need it for the baseline clean and the final rinse, but both can be substituted with a strong garden hose plus more elbow grease.
Replace the pressure washer baseline with a stiff push broom and a hose with a high-pressure nozzle. Scrub the whole patio in 4-foot sections, rinse, repeat. This takes about twice as long as a pressure wash but gets you to the same starting point. For the final rinse, the same nozzle plus a slow walk-around works fine; you just won’t get the dramatic “sparkly” finish a pressure washer gives. If you only deep-clean your patio once a year, renting a pressure washer for one Saturday ($50 to $80) is still cheaper than buying one. If you clean more often or you also wash decks, fences, or vehicles, owning one ($150 to $300) pays itself back in two seasons.
Check out these before and afters: on the left, you can see planter rings and random splotches, and on the right, poof, gone. That deep clean magic? All thanks to this powerful DIY concrete cleaner routine.


The deep clean lasts longer if you build a few low-effort habits into your spring and summer routine.
Honest breakdown of what cleaning a concrete patio actually costs and takes:
Materials: Bleach runs $4 to $6 per gallon (you will use 1 to 2 gallons for a typical small patio). Add a pump sprayer ($15 to $25 if you do not own one), a push broom ($25 to $40), and pressure washer rental ($50 to $80 for a weekend) or purchase ($150 to $300). All-in for someone starting from zero: $90 to $150 for rental + supplies. If you already own the broom and pressure washer: under $10.
Time: A focused half-day for a typical small patio (about 4 to 5 hours), or a long Saturday for a large patio with multiple stained zones.
| Phase | Active time | Notes |
|---|---|---|
| Sweep + clear debris | 15 min | Push broom + blower |
| Pressure wash baseline | 30 min | Removes surface grime |
| Water grass + plants | 5 min | Protects from runoff |
| Wet stained areas | 5 min | Hose down before bleach |
| Apply bleach + scrub | 20 min | 5 to 10 min dwell, then scrub |
| Final pressure wash | 20 min | Rinses bleach + finishes shine |
| Dry + admire | 1 hour | Air-dry before walking |
Some of you might remember when I hired help from Facebook Marketplace to pour our patio in Install a Concrete Sidewalk (and More!). It has held up beautifully (honestly, no regrets), but if I could go back, I would probably seal it to make cleaning easier.
That said, I am glad I have this method up my sleeve. When it comes to cleaning concrete patios, this has become my go-to trick. Bleach might not be fancy, but it is hands-down the best concrete cleaner I have tried for deep, set-in stains.
If you also want to refresh your concrete porch or front walkway, my guide on how to paint a concrete porch walks through that process from prep to finish coat.

We love using our patio for everything from family hangouts around the fire pit to hosting backyard dinners and celebrations. It is one of the most-used spaces in our home, especially once the weather warms up. If you want to see how we styled these areas or get all the links and sources, check out this post about our fire pit lounge area and this one with our outdoor dining setup.


If you are still in the dreaming and planning phase, save this tutorial so you can come back when you are ready to tackle your own patio.
Straight, undiluted household bleach (used carefully) worked better than any diluted mixture or store-bought product I tried. Just prep your space, wet the area first, and rinse thoroughly afterward.
Sweep all debris, pressure wash for a baseline clean, water nearby grass and plants to protect them from bleach runoff, wet the stained areas, apply undiluted bleach with a pump sprayer or pour direct on the worst spots, scrub with a push broom for 5 to 10 minutes, then pressure wash for a final rinse.
Used occasionally and rinsed well, undiluted bleach will not harm bare concrete. Avoid overuse, and never use bleach on sealed or stamped/colored concrete without testing an inconspicuous corner first because it can dull the sealer or fade the color.
Five to ten minutes. Less than five minutes and the bleach has not penetrated deep enough to lift set-in stains. More than ten and it starts to dry on the surface, leaving white residue you have to scrub off.
Yes. Replace the pressure wash with a stiff push broom and a garden hose with a high-pressure nozzle. Scrub in 4-foot sections, rinse, repeat. This takes about twice as long but gets you the same result.
It can if it hits them concentrated. Always water the surrounding grass and plants thoroughly before you bleach the patio. Pre-soaked soil dilutes the runoff and pushes it past the root zone before it can do damage.
Vinegar is great for mineral deposits and rust stains on concrete (it is mildly acidic), but it does not lift mildew, algae, or organic grime as effectively as bleach. Use vinegar for planter rings and rust spots, bleach for everything else.
Yes, if you can. A clear concrete sealer applied every 2 to 3 years dramatically reduces how often you need to deep-clean and how stubbornly stains set in. Wait at least 48 hours after a bleach cleaning for the surface to fully dry before sealing.
Once a year in spring is plenty for most patios. If yours is in deep shade, near trees, or sees heavy entertaining traffic, a second pass mid-summer keeps it looking fresh. Spot-treat new stains within 24 hours.
It helps a ton for the baseline clean and the final rinse, but a strong hose stream plus more scrubbing time can substitute. Renting a pressure washer for one Saturday ($50 to $80) is still cheaper than buying one if you only deep-clean once a year.
About Crystel
I’m Crystel Montenegro, a stay-at-home mom of five turned home DIY expert. I share budget-friendly DIY projects, home design, garden, recipes, and lifestyle content from my own home – every project here is one I actually built or made. Read more about me or follow along on Instagram.