I clean them when I first get them to clear out any packing grease or gunk that they slap on to prevent corrosion while in storage. That stuff can be nasty.
Beyond that, I generally clean my guns after each range session, usually in the next few days. If I know I will be going back to the range soon, I won't clean them.
When I first got into guns, I was more thorough, particularly with my first AR. Now, it's pretty quick and just enough to clear the crap away. Now that I've started using Fireclean with my AR, the clean up is really easy. I don't really need to clean it that much since I don't have high round counts days anymore, but a quick wipe down and relube is all it really needs. Nowadays, I typically clean more thoroughly at some milestone round counts, like every 1000 rounds or so, depending on the gun.
Cleaning for me is also about checking parts for wear. Unusual wear can be a sign of something out of whack or something gone bad. Most of my guns don't NEED to be cleaned as often as I do, but I just want to make sure to give them preventative maintenance.
That said, I've seen the way some people clean their guns in ways that can harm their guns. Like putting the bore brush and rod on a drill and going to town!
I also noticed that my Rem 700 had rust on the outside of the barrel on a small portion where I usually pick up the gun and also on the rings and bases. I've put DampRid in my safe and I am more careful to make sure I wipe down the metal parts before putting the gun back into my safe. I plan to eventually have the barrel, rings and bases coated when I swap out the stock later next year, but until then, I have to keep an eye on it.