Clean Concrete Stains From Your Garage Floor
Concrete looks indestructible until you spill something on it. Oil from the car, rust from metal shelves, antifreeze drips, mystery stains from that project three years ago — they all sink into concrete's porous surface and set up camp. The good news is that concrete is tougher than the stains, and with the right approach, you can pull most of them back out. The trick is matching your method to what you're fighting. This isn't about making your garage floor showroom-clean. It's about getting functional again, preventing stains from spreading deeper, and maybe restoring enough surface dignity that you don't cringe when the door rolls up. Most stains respond to aggressive cleaning if you catch them within a few months. Older stains take more patience, but even year-old oil marks will fade with proper treatment.
- Clear the Canvas First. Remove everything from the stained area and sweep thoroughly. Concrete dust and loose grit will block cleaner penetration and scratch the surface when you scrub. Use a shop vacuum on stubborn debris. You want bare, dry concrete before you start treating stains.
- Trap the Oil First. For oil, grease, or antifreeze less than a week old, cover the stain completely with cat litter, cornstarch, or commercial oil absorbent. Grind it into the stain with your boot, then let it sit overnight. The absorbent pulls wet contamination out of the concrete pores. Sweep up the spent material before moving to chemical cleaning.
- Break Down The Bond. Mix concrete degreaser according to package directions in a pump sprayer. Saturate the stain completely, working the chemical into the concrete with a stiff-bristle brush. Let it dwell for the recommended time, usually 10-15 minutes. The degreaser breaks down oil molecules so they can be rinsed away instead of just pushed around.
- Lift It Out Now. Scrub the treated area aggressively with a deck brush in circular motions, then switch to back-and-forth strokes. For stubborn stains, use a power washer at 3000 PSI with a 25-degree nozzle, keeping the wand moving to avoid etching the concrete. The mechanical action is what actually lifts the broken-down stain material.
- Convert Rust To Liquid. Rust stains need different chemistry. Apply a phosphoric or oxalic acid-based rust remover directly to rust marks from metal shelving, tools, or fertilizer. Let it work for 10 minutes while the acid converts the rust to a soluble form. These cleaners turn rust dark purple before lifting it — that's normal.
- Flush It All Away. Flood the cleaned area with a garden hose or pressure washer on low setting. Push the rinse water toward a floor drain or out the garage door. Residual cleaner will attract dirt and create new stains, so rinse until the runoff is completely clear. This usually takes 3-5 minutes of continuous rinsing per treated area.
- Go Deeper Next Time. Let the floor dry completely, then assess remaining stains. Old, set-in stains typically need 2-3 treatment cycles. Apply degreaser again to any remaining marks and repeat the scrub-and-rinse process. Each cycle pulls more contamination from deeper in the concrete's porous structure.
- Seal In Your Work. Once the floor is completely dry and clean, roll on a concrete sealer with a 3/8-inch nap roller. Sealer fills the porous surface so future spills sit on top instead of soaking in. Use two thin coats rather than one heavy coat, allowing 4 hours between applications. This step is optional but dramatically reduces future cleaning effort.