Why your pH keeps crashing overnight

pH drops overnight because CO2 builds up while plants sleep and KH can't buffer the shift. Three causes, one fix.

You test your water at 8 PM and pH reads 7.2. You test at 7 AM and it reads 6.4. Your fish look stressed, shrimp are hiding, and you're considering whether this hobby is worth it. The pH didn't crash because something went wrong overnight. It crashed because the chemistry was set up to fail.

What happens after lights-out

During the day, aquarium plants photosynthesize. They consume CO2 and release oxygen. This pulls dissolved CO2 out of the water, and because dissolved CO2 forms carbonic acid, removing it raises the pH. Daytime readings in planted tanks are often the highest of the 24-hour cycle.

At night, photosynthesis stops. Plants switch to respiration only, consuming oxygen and releasing CO2, the same as fish and bacteria do around the clock. Now everything in the tank is producing CO2 and nothing is removing it. Dissolved CO2 climbs, carbonic acid increases, and pH drops. In well-buffered water, this overnight swing is small (0.2-0.4 pH units) and harmless. In poorly buffered water, it can be 1.0+ pH units.

The real problem is KH

The size of the swing depends almost entirely on KH (carbonate hardness). KH measures the concentration of bicarbonate and carbonate ions that absorb hydrogen ions and resist pH changes. Think of it as the shock absorber between CO2 production and pH movement.

At 6-8 dKH, the overnight CO2 buildup barely registers on a pH test. The buffer soaks up the extra acid. At 1-2 dKH, the same amount of CO2 produces a noticeable drop. At 0 dKH, there is no buffer at all, and pH moves freely with every molecule of carbonic acid.

Three things commonly eat your KH:

Aquasoil substrates. Active buffering aquasoils absorb carbonates through cation exchange. They pull KH out of the water column and replace it with hydrogen ions, lowering both KH and pH. A new aquasoil can strip KH to 0 within the first few weeks. This is by design (planted tank people want low KH for CO2 management), but if you're keeping fish that need stable pH above 7, aquasoil is the wrong substrate.

The nitrogen cycle. Nitrifying bacteria produce hydrogen ions as a byproduct of converting ammonia to nitrite and nitrite to nitrate. Each step consumes alkalinity. In a well-stocked tank with regular water changes, the tap water replenishes the KH that nitrification consumes. Skip water changes and KH gradually depletes until the buffer collapses.

Driftwood and botanicals. Tannins and humic acids from wood and leaves are weak acids that consume KH over time. A single piece of driftwood won't crash your buffer, but a tank full of botanicals in soft water can push KH low enough to cause instability.

What CO2 injection adds

If you inject CO2 into a planted tank, you're adding carbonic acid on purpose during the day. The CO2 calculator shows the relationship: at a given KH, more dissolved CO2 means lower pH. Typical injected tanks run 20-30 parts per million CO2 during the photoperiod, which drops pH by 0.5-1.0 points below the degassed baseline.

When CO2 shuts off at lights-out, the residual CO2 slowly degasses through surface agitation. But at the same time, biological CO2 from respiration keeps adding more. In tanks with heavy plant mass, poor surface agitation, and low KH, the combined effect can push pH dangerously low before dawn.

Fixes

Raise the KH. If your KH tests below 2 dKH and you're seeing overnight crashes, add a carbonate source. Crushed coral or aragonite in a media bag inside the filter dissolves slowly and maintains KH passively. Potassium bicarbonate (KHCO3) or baking soda (NaHCO3) can be dosed directly, though baking soda adds sodium, which isn't ideal for planted tanks long-term. How much to add depends on your tank volume and current KH. Start with small amounts, test the next day, and adjust.

Increase surface agitation at night. More water surface movement = faster CO2 offgassing. Some people run their filter outlet higher at night or add an airstone on a timer that runs only when lights are off. This prevents CO2 from accumulating to the levels that cause large pH swings.

Do your water changes. Each water change replenishes the KH that biological activity consumes between changes. If your tap water has 5 dKH and you do 25% weekly changes, you're constantly topping up the buffer. Neglect changes and the buffer depletes, even without aquasoil or driftwood in the tank.

Accept a small swing. A 0.3-0.5 pH drop overnight is normal and harmless. Wild fish in soft-water rivers experience similar or larger daily swings from the same CO2 dynamics. The fish to worry about are the ones in a tank with KH near 0 where the swing is 1.0+ units. If your overnight drop is under half a point and the fish behave normally in the morning, you don't have a problem.

Recovery after a pH crash

If you discover a pH crash (testing shows pH 5.0-5.5 when it was 7.0 yesterday), the fish may already be stressed or dying. Don't try to bring the pH back up rapidly. A sudden swing in either direction is worse than the low pH itself.

Immediate actions: Do a 25% water change with dechlorinated tap water. This raises pH slightly and dilutes whatever caused the crash. If the fish are gasping or listing, add an air stone for extra oxygen (low pH reduces hemoglobin's oxygen-carrying efficiency).

Next 24-48 hours: Do additional 10-15% water changes every 6-8 hours, slowly raising pH back toward the 6.5-7.0 range. Add a buffer (crushed coral in a filter bag, or a small amount of sodium bicarbonate dissolved in tank water, around 5 grams per 100 litres) to rebuild KH.

Ongoing prevention: Test KH monthly. If KH drops below 3 dKH, add buffering before the crash happens. In tanks with driftwood, active substrate, or high CO2 injection, KH is consumed faster and needs more frequent monitoring. Weekly water changes replace lost buffering minerals from the tap water.

A pH crash that kills fish is almost always preventable with regular KH testing and water changes. The water change calculator helps you maintain a schedule that prevents KH depletion.