If you’ve ever wiped down a glass shower door, watched it dry, and seen the same cloudy white film still there, you’re not cleaning it wrong. You’re cleaning it with the wrong thing.
Hard water stains are mineral deposits, mostly calcium and magnesium, that get left behind every time water dries on glass. A regular bathroom cleaner can’t dissolve a mineral. You need an acid. That’s the whole secret.
We’ve cleaned thousands of bathrooms across Ontario, BC, and Alberta. Most homes outside of soft-water cities have some level of buildup on the shower glass, and after a year or two without proper treatment, it stops being something you can wipe off. It bonds to the glass and looks like permanent etching. Here’s how to actually get it off, what to use depending on how bad it is, and how to keep it from coming back.
Before and after on a shower door we deep-cleaned. The buildup on the left is light-to-moderate, which is pretty typical for a door that’s gone six to twelve months without proper treatment.
What you’ll need
For light to moderate buildup:
- White vinegar (regular grocery store kind, 5% acidity is fine)
- Baking soda
- A spray bottle
- A microfiber cloth
- A non-scratch scrub sponge
- Dish soap
For heavy buildup that’s been there for months or years:
- A bottle of CLR or Lime-A-Way (or any commercial calcium/lime/rust remover)
- Rubber gloves
- Good ventilation (open a window or run the bathroom fan)
That’s it. You don’t need a fancy shower spray or a $40 specialty product.
Method 1: Vinegar and baking soda (for normal buildup)
This is what we use on most homes. It handles the everyday haze and light spotting that builds up between deep cleans.
- Heat the vinegar. Microwave a cup of white vinegar for about 30 seconds. It doesn’t need to be hot, just warm. Warm vinegar dissolves minerals noticeably faster than cold.
- Spray the glass. Pour the warm vinegar into a spray bottle and coat the entire door. Don’t be shy. Get it wet, not damp.
- Let it sit for 15 minutes. This is the step most people skip. Vinegar needs time to break the mineral bond. If you spray and immediately wipe, you’ll get maybe 30% of the stain off and you’ll be frustrated.
- Make a paste. While you wait, mix about half a cup of baking soda with enough water to form a thick paste, roughly the consistency of toothpaste.
- Scrub with the paste. Apply the paste to the glass with a non-scratch sponge and scrub in small circles. You’ll hear a little fizz when the baking soda hits the vinegar still on the glass. That’s fine, that’s the reaction doing the work.
- Rinse and dry. Rinse thoroughly with warm water and dry with a clean microfiber cloth. Drying is important, because if you let water air-dry, you’re starting the next layer of stains immediately.
For most shower doors this gets you back to clear glass.
Method 2: Commercial CLR-type cleaner (for bad buildup)
If your shower door has been neglected for a year or more, or if you moved into a place with existing buildup, vinegar isn’t going to cut it. The minerals have basically welded themselves to the glass and you need something stronger.
Caption: This is what years of neglect looks like. The glass on the left is so coated you can barely see through it. Took our team about 45 minutes to bring it back. This is firmly in Method 2 territory.
A quick warning before we go further. CLR, Lime-A-Way, and similar products are strong acids. Ventilate the bathroom. Wear gloves. Don’t mix them with anything else, especially not bleach. And don’t use them on natural stone, brass, or anodized aluminum, because they’ll damage all three.
- Test a small spot. Bottom corner of the glass, near the track. Wait two minutes. If the glass looks fine, you’re good.
- Apply to the glass. Spray or pour onto a clean cloth and wipe across the entire door. You want a thin, even coat, not pooling.
- Let it sit for 5 to 10 minutes. Not longer. With commercial acids, more time isn’t always more cleaning. It can start to leave its own film if it dries on the glass.
- Scrub with a non-scratch pad. Use light pressure in circles. The buildup should start to come away in a milky film. That’s the dissolved mineral.
- Rinse thoroughly. Twice. Acid residue left on metal frames or seals will corrode them over time, so make sure you really wash it off, including the frame, hinges, and bottom track.
- Dry with a microfiber cloth.
If there’s still some buildup after one pass, repeat. Don’t try to do it all in one extra-long sit. Do two ten-minute applications instead.
When stains won’t come off no matter what
If you’ve done both methods and the door still looks foggy, or has visible “spots” you can see when you look across the glass at an angle, those are probably not stains anymore. They’re etching.
Etching happens when minerals (or soap scum that turned acidic over time) actually pit the surface of the glass. At that point you’re not cleaning, you’re polishing, and you’d need a cerium oxide glass polish and a buffer to get it out. For most homeowners that’s not worth it, because it takes hours and you can damage the glass if you do it wrong.
Honestly, if the door is etched, replacing the glass insert is often cheaper than the labor of polishing it. Or you can accept it as the texture of an older shower and just keep the surface clean from here on.
The good news is that most of the time, even doors that look this bad aren’t etched yet. They’re just heavily coated. The photo above is a good example. From three feet away it looked like the glass was permanently damaged. It wasn’t.
How to keep it from coming back
This is the part nobody wants to hear, but a 30-second habit prevents 90% of the buildup we deal with on shower doors.
Squeegee the door after every shower. A $10 squeegee from any hardware store, hung inside the shower on a suction hook. Three or four passes when you’re done, takes 20 seconds. Almost no water sits on the glass to dry, so almost no minerals get deposited. This single habit will keep a freshly cleaned shower door looking new for months.
Other things that help:
- Spray a daily shower cleaner once a week. Not every day, despite what the bottle says. Once a week is enough.
- Wipe with a microfiber cloth after squeegeeing. Catches the last bit of water in corners and along the edges.
- Keep a small bottle of vinegar in the shower. Once a month, spray the door, leave for 10 minutes while you do other things, rinse. That’s it. You’ll never let buildup get out of hand.
What we use professionally
For the curious: in homes we clean regularly, we usually start with the vinegar method because it’s safe around kids, pets, and most bathroom finishes. For first-time deep cleans on a really neglected shower, we’ll use a commercial calcium-lime remover but in a quick application: apply, light scrub, immediate rinse. We don’t leave acid sitting on glass for 20 minutes. The shorter, more focused application gets better results than a long soak, and it’s gentler on the door’s hardware.
Higher-end glass enclosures need the gentler approach. Bigger glass area, more chrome and stone surfaces nearby, and usually marble or honed tile that won’t tolerate acidic runoff. The before/after on the left side, plus the close-ups on the right, show the kind of detail work that takes most of an hour on a deep clean.
We also avoid Magic Erasers as a default tool. They work, but they’re mildly abrasive. Fine for occasional use, but if someone scrubs their shower door with a Magic Eraser every week for a year, the glass starts to micro-scratch and ends up looking permanently hazy.
One other operator note: the bottom inch of the door, right where it meets the track, is almost always the worst spot and the one homeowners miss. That’s where standing water sits longest after every shower. When we deep clean, that strip gets its own pass.
Quick recap
For everyday buildup: warm vinegar, 15 minutes, baking soda paste, scrub, rinse, dry.
For heavy buildup: commercial CLR-type cleaner, 5 to 10 minutes, light scrub, double rinse, dry.
For prevention: squeegee after every shower. That’s the whole game.
Want us to handle it?
If your shower door is past the point of cleaning, this is the kind of work our team does every day as part of a one-time deep clean. The first hour of a new bathroom is usually spent on exactly this: getting the glass back to clear so the rest of the room actually looks finished.
Hard water stains are also one of the things landlords check during move-out inspections, so if you’re getting ready to move, you might want our full move-out cleaning checklist too.
We currently serve homes across Toronto, Calgary, Edmonton, Vancouver, Ottawa, and more. Visit our Areas We Serve page to see all locations!
Before and after on a shower door we deep-cleaned. The buildup on the left is light-to-moderate, which is pretty typical for a door that’s gone six to twelve months without proper treatment.


