Rust stains from well-water irrigation: removal by surface and prevention at the sprinkler
Iron in the well, oxygen in the spray, orange on the slab. The fix is the sprinkler head, then the cleaner, then the sealer.
- Cause
- Dissolved iron in well water oxidizing on the surface
- Where
- Well-irrigated lots east of I-75 and in South Venice, North Port, Charlotte
- Removal
- Oxalic-acid cleaner; not on limestone
- Prevention
- Head redirection, iron filter, sealer
Why does my driveway turn orange, and how do I fix it?
Well water in this county carries dissolved iron; sprayed through sprinklers it meets air, oxidizes and drops rust on whatever it lands on. Removal is an oxalic-acid cleaner on concrete and concrete pavers (never on travertine, shellstone or marble, which acid etches), tested on a corner, dwelled, agitated and rinsed, followed by resealing. Prevention is heads that don't cross the hardscape, an iron filter or sequestering injector on the well system, and a penetrating sealer.
The stain is cosmetic; it doesn't hurt the concrete. Sealer that was already on the surface takes the stain instead of the pore, which is why sealed driveways clean up and unsealed ones hold the orange. For scale: the EPA's secondary drinking-water standard for iron is 0.3 mg/L, and irrigation wells east of I-75 commonly test at 1 to 5 mg/L; oxalic-acid cleaners are typically diluted 8:1 to 10:1 with water and dwell 5 to 10 minutes; a 600-square-foot driveway takes about 2 hours to clean and a day to dry before resealing.
Removal by surface
| Surface | Cleaner | Notes |
|---|---|---|
| Broom or textured concrete | Oxalic acid (diluted per label) | Reseal after |
| Concrete pavers | Oxalic acid | Reseal; re-sand if joints are disturbed |
| Travertine, shellstone, marble | Neutral-pH rust remover made for natural stone | No acid; test first |
| Porcelain | Almost anything | Immune |
| Stamped or sealed decorative | Strip, clean, reseal | Rust remover takes the sealer with it |
Prevention
- Walk the irrigation zones and note every head whose spray crosses a slab or paver field; redirect, replace with a shorter-throw nozzle, or move it.
- Test the well water for iron; above about 0.3 ppm, an iron filter or a sequestering agent injector on the irrigation line is the durable fix.
- Seal the hardscape with a penetrating sealer so stains stay on the surface.
- Rinse the surface after any irrigation change.
Questions we get about this
How do I remove rust stains from well-water irrigation on pavers?
With an oxalic-acid cleaner diluted per the label, applied with a pump sprayer, allowed to dwell without drying, lightly agitated and rinsed; test a corner first, keep it off travertine and marble (acid etches limestone), and expect to reseal afterward because rust removers strip most sealers.
How do I stop it coming back?
Redirect or replace sprinkler heads so the spray doesn't cross the hardscape; add an iron filter or a sequestering-agent injector to the well irrigation system; seal the surface so iron sits on top of the sealer instead of in the pore.
Is it a problem east of I-75 only?
Mostly. Fruitville, Bee Ridge, Nokomis east of the interstate, South Venice, North Port and much of Charlotte County irrigate from wells with dissolved iron; city water lots rarely see it.
The chemistry, and the numbers that go with it
Iron in Florida well water arrives as dissolved ferrous iron. When a sprinkler sprays it across a driveway the iron meets oxygen, oxidises to ferric oxide, and bonds to the surface. That is rust, and it is a chemical bond rather than a deposit, which is why pressure washing moves the loose material and leaves the stain.
| Fact | Detail |
|---|---|
| What causes it | Dissolved iron, and often manganese and calcium, in untreated well water |
| Removal chemistry | Oxalic acid-based cleaner, the industry standard for iron oxide on concrete |
| Typical dilution | About 10 to 1 with water, applied with a pump sprayer |
| Dwell time | Several minutes, kept wet and never allowed to dry on the surface |
| Agitation and rinse | Light agitation, then a thorough rinse |
| Risk to sealers | Oxalic acid can damage an existing sealer and etch some surfaces; test a small area first |
| Risk to stone | Never use acid on travertine, shellstone or marble; these are calcium carbonate and will etch |
| Prevention at the source | Iron filtration on the irrigation supply, or a sequestering agent that keeps iron dissolved |
| Prevention at the sprinkler | Redirect or replace heads so the spray pattern misses the hardscape |
| Prevention at the surface | A penetrating sealer reduces bonding, so the stain sits on top and rinses |
The order matters more than the product. Redirecting two sprinkler heads costs nothing and stops the stain returning; buying a stronger acid and applying it twice a year to a stone deck will etch the surface permanently. On travertine and marble the only correct answer is prevention at the sprinkler plus a neutral-pH cleaner, because the acid that removes the iron also dissolves the stone.
| Surface | Treatment | Dwell | Repeat interval |
|---|---|---|---|
| Plain concrete, unsealed | Oxalic acid cleaner at 10 to 1 | 5 minutes, kept wet | As needed, 1 to 2 years |
| Concrete, sealed | Test first; the sealer may need stripping and reapplying | 5 minutes | 1 to 2 years |
| Concrete pavers | Oxalic acid cleaner, then re-sand joints | 5 minutes | 1 to 2 years |
| Travertine and shellstone | No acid; neutral-pH cleaner and mechanical agitation only | 10 minutes | 6 months |
| Marble | No acid; neutral-pH cleaner | 10 minutes | 6 months |
| Porcelain | Neutral cleaner; the surface is non-porous | 2 minutes | As needed |
Prevention is cheaper than any of that. An iron filter on the irrigation supply is a one-time cost against a stain that returns every 12 months, and moving a spray head 18 inches is free. On a 600 sq ft driveway a professional rust treatment runs roughly $200 to $500, which is more than most filtration payback periods over 5 years.
Last reviewed September 10, 2026 by the Sarasota Concrete editorial team (author name pending owner input).