Why it happens
Bread rises because yeast produces gas during fermentation, and a stretchy network of gluten traps that gas. If the dough isn't kneaded enough, the gluten is too weak to hold the gas. If it isn't left to prove long enough, or the yeast is old or the dough too cold, there isn't enough gas. If it's left to prove too long, the gluten overstretches and the loaf collapses. Too much flour, or killing the yeast with water that's too hot, also gives a heavy loaf.