Removing Hard Water Stains from Bathroom Surfaces

Hard water stains are the white, chalky, or cloudy deposits that build up on shower doors, faucets, tile, and tub surrounds in homes with mineral-heavy water. They're not dirt—they're calcium and magnesium minerals left behind when water evaporates. The longer they sit, the harder they bond to the surface, so catching them early matters. A bathroom with hard water stains looks neglected even when it's clean, but the work to remove them is straightforward if you use the right acid and give it time to break down the mineral bond. This guide covers every surface you'll encounter and the methods that actually work without scratching or damaging finishes.

  1. Know Your Enemy First. Look closely at where the stains are and what they're sitting on. Chrome, brass, and polished nickel faucets require different care than ceramic tile or fiberglass tub surrounds. Check if the stain is a light surface deposit or a thick, crusty buildup. Run your fingernail across it—if it flakes, it's thick and will need longer soaking time. Note which surfaces are porous (tile grout, stone) versus sealed (glass, enamel). This determines whether you'll use a liquid cleaner that needs containment or a paste that you can let sit without dripping.
  2. Clear The Battlefield. Remove any soap bottles, razors, or accessories from the area. Dry the surface thoroughly with a clean towel—wet surfaces dilute the cleaner and reduce its effectiveness. If the stain is on glass or a chrome fixture, wipe it completely dry so the acid can contact the mineral deposit directly without being weakened by water.
  3. Pick Your Chemical Weapon. For light to moderate stains on most surfaces, white vinegar (5% acetic acid) works well and is safe on nearly everything. For heavy buildup on glass or ceramic tile, use a commercial descaler like CLR or Bar Keeper's Friend, following label directions. For chrome, brass, and delicate finishes, vinegar is the safer choice. Never use descalers on natural stone, grout, or any surface you're unsure about—test on an inconspicuous spot first. Pour or spray the cleaner directly onto the stain, making sure it's fully saturated.
  4. Patience Dissolves The Bond. This is where most people fail. Set a timer for 20–30 minutes. The longer the acid contacts the mineral, the more it dissolves the bond. For thick, white, chalky buildup, 45 minutes is better. Do not wipe or scrub during this time. If using vinegar on vertical surfaces like shower walls, you may need to spray again halfway through to keep it from drying out. On glass, the vinegar will bead and run—this is normal.
  5. Work Loosened Minerals Away. After soaking time, use a soft-bristled brush, non-abrasive scrubbing sponge, or microfiber cloth to gently work the loosened stain. For glass, a plastic or rubber scraper works without scratching. Use circular motions on tile and linear strokes on glass. If the stain doesn't come off easily, the acid hasn't finished dissolving it—spray again and wait another 10 minutes rather than grinding away at it. On chrome and brass, use only cloth; never use scouring pads that can dull the finish.
  6. Neutralize And Dry Fast. Once the stain is gone or greatly reduced, rinse the entire area multiple times with fresh water to remove all acid residue. This prevents the acid from continuing to work on the surface and protects metal finishes from corrosion. For shower glass, rinse from top to bottom so water carries debris away. For tile and grout, run water along grout lines to flush out any pooled cleaner. Dry immediately with a cloth to prevent new stains from forming.
  7. Repeat For Stubborn Buildup. If faint staining remains after the first round, repeat the process. Some heavy buildup requires two or three cycles. Do not increase the strength of the acid or leave it longer than 45 minutes on a single application—this risks damaging finishes. Instead, apply the same cleaner again the next day or later that week. Patience works better than aggression on hard surfaces.
  8. Stop Stains Before They Start. The single most effective prevention is removing water before it evaporates. After showering, squeegee glass shower doors, the tub surround, and any tile walls that get wet. This removes the mineral-laden water before it dries and leaves deposits. A squeegee takes 30 seconds and prevents hours of cleaning later. Keep it within arm's reach of the shower so it's easy to use every time.
  9. Move Air To Move Water. Hard water stains form faster in bathrooms with poor air circulation because water sits longer and evaporates slowly. Run the exhaust fan during and for 20 minutes after showers. If you don't have a fan, crack windows and open the bathroom door. If you have a bathroom without ventilation, run a portable dehumidifier or towel-dry wet surfaces immediately after use. Better airflow reduces both mineral deposits and mold growth.
  10. Coat Glass For Long-Term Wins. For shower glass, consider a hydrophobic coating designed for bathrooms. These products make water bead and run off instead of pooling, which reduces the mineral deposits that accumulate. Apply according to product instructions, usually on clean, dry glass. These coatings last 3–6 months and need reapplication. They're not essential but significantly reduce stain buildup if you want to go beyond squeegee maintenance.
  11. Dry Metal Before It Stains. Chrome, brass, and nickel faucets and fixtures get stained fastest because water pools and evaporates in small areas. After using the sink or shower, wipe these fixtures dry with a cloth. This takes 10 seconds and prevents mineral buildup entirely. If stains do appear, white vinegar and a soft cloth remove them quickly. Regular dry-wiping keeps metal shiny and spot-free without chemical cleaning.