How to Remove Oil Stains from Concrete
Oil stains on concrete aren't just unsightly—they're slippery, they spread, and they get darker and harder to remove the longer they sit. A fresh spill cleaned immediately takes minutes. A six-month-old stain takes elbow work. The key is understanding what you're fighting: oil penetrates concrete's porous surface and bonds to it chemically, so you need either a chemical solvent to break that bond or a moisture-based poultice that draws the oil out as it dries. The difference between a driveway that looks maintained and one that looks neglected often comes down to whether those stains got tackled early.
- Assess the stain's age and depth. Walk the stained area in daylight. Fresh stains (under a week) sit on top and look glossy. Set-in stains are darker, matte, and sometimes barely visible when wet. Press a white paper towel against the stain—if oil transfers, it's still accessible. This tells you whether to use a degreaser (fresh) or a poultice (old).
- Blot up excess surface oil. If the stain is fresh and wet, lay down absorbent material—cat litter, sand, or sawdust—and let it sit for 15 minutes to pull up free oil. Sweep it away. This removes the easy part and keeps you from just spreading oil around when you start scrubbing.
- Apply degreaser for fresh stains. Pour a commercial concrete degreaser directly onto the stain or mix a gallon of hot water with one cup of dish soap and one tablespoon of trisodium phosphate (TSP). Let it sit for 10 minutes, then scrub hard with a stiff-bristled brush in circular motions. The goal is to break the oil's bond to the concrete. Rinse well with a hose.
- Make and apply a baking soda poultice for stubborn stains. Mix one cup of baking soda with three tablespoons of dish soap and add water until you get a paste the consistency of peanut butter. Spread it over the stain about a quarter-inch thick and cover with plastic sheeting or old cardboard. Let it sit for 24 hours. The poultice draws moisture and oil out of the concrete as it dries.
- Scrub and rinse the poultice away. After 24 hours, the paste will be dry and crusty. Scrape it off with a putty knife, then scrub the area again with a stiff brush and fresh degreaser mixed with hot water. You'll see the remaining oil lift away. Rinse thoroughly until no soap residue remains.
- Use a pressure washer on high-set stains. For stains that won't budge after poulticing, rent a pressure washer at 3000 PSI or higher. Apply degreaser first, let it work for 10 minutes, then pressure wash at a 45-degree angle to avoid etching the concrete. Keep the nozzle moving and at least 12 inches from the surface.
- Prevent future stains with a sealer or enzyme treatment. Once the stain is gone, let the concrete dry completely (24 hours in dry weather). Apply a concrete sealer according to manufacturer instructions—it fills the pores and makes oil sit on top rather than sink in. Alternatively, use a biological enzyme-based concrete cleaner quarterly as preventive maintenance to keep fresh spills from setting.