My tank has sand and this is how I do it.
Weekly water change = about 50% and during this I siphon out as much dirt as possible.
Every 5 weeks or so, I change about 80% of the water and it follows this pattern:
1) remove 20% of the water and keep the fish stock in this
2) remove some water for cleaning tubes, filter parts, tank rocks, driftwood, etc
3) remove as much of the remaining water and discard
4) some water will be left in the tank and I stir up the sand and drain the dirty water
5) add some of the water from step 2 and repeat Step 4
6) once the sand is washed, I add new water
7) add the water & fish from Step 1 and hope everything settles down nicely!
If there is an easier way to do this, I'm keen to learn and also avoid any missteps I might be making.
I look forward to comments from other members.
Thanks,
Mike