I've been mountain biking for 20 years in the UK where we know all about mud, so this is what I do.
If the bike isn't too dirty I don't give it a full wash. I figure that washing it all the time you're exposing it to more water and detergent which is likely to accelerate wear. I just brush off the mud and dirt, spray some GT85 on the front and rear mech and SPDs (using a rag to make sure the overspray doesn't get on the disc rotors) and lube the chain.
If it does need a good clean this is my routine
- Put it in the bike stand (gripping the seatpost)
- Hose it down to get the worst of the mud off, paying particular attention to under the saddle and around the bottom bracket, but being careful to not spray wheel and bottom bracket bearings from the side (I spray those areas from the front and back)
- Remove the wheels and give them a a good scrub with hot soapy water (I use Ecover washing liquid). A scrubbing brush is great for the tyres, and for running around the rims and cleaning quickly betweent the spokes. A cloth is good for the spokes themselves and the hub body, and the scrubbing brush is also good for doing the block. As I use a pretty clean lube (Lifeline Race Oil) this doesn't mess things up too much.
- With the bike itself, I start cleaning under the saddle (toothbrush is good here) and work down towards the back of the bike. I then start at the handlebars and work down the forks, then move across the top tube and down the down tube. Easy bits to miss are the back of the fork brace and around the disc calipers.
- I finish with the drive train, again with hot soapy water because I use a clean lube, I run the scrubbing brush over the chainset (both sides), run the chain through the scrubbing brush, and give the front and rear mechs a good clean with a toothbrush.
- Then I hose down the whole bike and wheels, spin the cranks to drive water out of the chain, and wipe down the bike with a rag so it dries evenly.
- I then lube the chain, rear mech, front mech, front and rear gear cables, jockey wheels and the SPDs with GT85, which also helps drive out water. Once the GT 85 has evaporated, I then lube the chain, turning the cranks and applying race oil to the inside of the chain. I then run the outside of the chain through a rag to remove the excess.
That routine seems to work well for me and means I can do the whole bike in 30 minutes. My biggest advice would be to make sure you use a relatively clean lube. If you use a wax based dry lube, or an extreme conditions winter lube, it makes the whole process a lot more time consuming and messing, as you have to degrease everything or just not touch the drivetrain.