Yes, hydrogen peroxide fixes water heater odor, and it is the treatment most plumbers reach for first. But it is a reset, not a cure, and knowing the difference will save you from doing this job twice a year forever. This article covers the peroxide procedure, why it beats bleach for this purpose, where peroxide-based treatments fit among the odor fixes, and what to pair it with so the smell stays gone.

Why peroxide is the right disinfectant for this job

The rotten egg smell is hydrogen sulfide, produced by sulfate-reducing bacteria living in the tank, a mechanism explained fully in WHY DOES MY HOT WATER SMELL LIKE ROTTEN EGGS? Kill the colony and the smell stops. Any strong oxidizer kills bacteria, which is why you will see both bleach and peroxide recommended online. Peroxide is the better tool for three reasons:

  1. It leaves nothing behind. Hydrogen peroxide decomposes into water and oxygen. No chlorine taste, no residue to purge from the plumbing, no extended flushing to make the water pleasant again.
  2. It is easier on the tank. Chlorine is aggressive toward the steel, the anode, and rubber components like dip tubes and gaskets. Peroxide is comparatively gentle.
  3. It handles the sulfide directly. Peroxide oxidizes hydrogen sulfide on contact, so it neutralizes the existing smell while it kills the source.

Household 3% peroxide is the standard concentration for this job. Stronger grades exist, including peroxide products packaged specifically for water treatment, Chromex’s water heater line among them, but 3% at proper dosage does the residential job.

The treatment procedure

  1. Turn off power to the heater (breaker for electric, gas valve to pilot or off for gas).
  2. Shut the cold water supply valve.
  3. Open a hot tap somewhere in the house to relieve pressure.
  4. Drain a few gallons from the tank drain valve, enough to make room for the treatment.
  5. Add the peroxide: 1 to 2 pints of 3% per 40 gallons of capacity. The practical entry points are the anode rod port, the T&P valve port, or a disconnected hot outlet union, whichever your setup makes easiest.
  6. Refill the tank, and briefly run each hot tap until you smell nothing coming through, which draws treated water into the lines too.
  7. Let it sit 2 to 3 hours.
  8. Flush the tank through the drain valve until it runs clear, restore supply, restore power.

While you are in there with the tank drained, this is the natural moment to inspect the anode rod, since step 5 often means pulling it anyway. What you find on that rod usually explains your problem: a magnesium rod eaten down to the wire is both due for replacement and the reason the bacteria have been so well fed. Rod inspection is covered at SACRIFICIAL ANODE RODS.

The part most advice leaves out: it comes back

Peroxide kills the colony that exists today. It does not change the water chemistry, the sulfate supply, or the anode rod feeding the reaction, so the colony re-establishes, typically within weeks to months. I have met homeowners on a quarterly peroxide schedule who had simply accepted the treadmill.

The way off the treadmill is pairing the shock with an anode change: an aluminum-zinc alloy rod removes most of the reaction’s fuel, and a powered anode rod removes it entirely by eliminating sacrificial metal altogether. Shock plus anode swap is the combination that ends the problem rather than pausing it. The anode material comparison covers which replacement fits your situation.

One more diagnostic caution: if cold taps smell too, the sulfide is arriving in your source water and no amount of tank treatment will fix it. That branch of the problem is covered at SULFUR SMELL: WELL WATER OR WATER HEATER?

The bottom line

Hydrogen peroxide is the right shock treatment for water heater odor: effective, residue-free, and gentle on the tank at 1 to 2 pints of 3% per 40 gallons. Just go in knowing it resets the problem rather than solving it. Pair the treatment with an anode rod change and you fix the smell once instead of managing it forever.