I know that title is really infomercial sounding, but I really am amazed at what I discovered recently and I wish I had learned this years ago.
This is a secret that the carpet shampoo companies do not want you to know.
Just use water in the carpet cleaner. They'll come out amazingly clean. The carpets in my house are pretty old and need shampooing about every six months to perk them up. Every time I think, "I cannot live with these carpets one more day", I'll just rent a steam cleaner and, VOILA! new carpets. For years I blindly bought the brand name carpet shampoo, high traffic pre-treater, and anti-foaming solution. They cost more than the actual rental itself. About a year ago I discovered that you don't need to purchase that expensive defoamer since adding a 1/4 cup of plain vinegar worked just as well! While I was searching out that info, I stumbled across these frugal carpet cleaning tips and one of the recommendations was to skip on the shampoo since it actually created a film that attracted dirt. So this summer I gave it a try and I was SO AMAZED out how clean my carpets got simply using hot water. For a high traffic area you can simply scrub with a soft brush and a little dish soap or laundry detergent.
If your carpets need deodorizing as well you can add a cup of vinegar to the water. Use the hottest water you possibly can. I heated mine in a big pot on the stove and in the kettle. But be very careful not to burn yourself, and don't attempt this while your little ones are around!
P.S. Is it just me, or is it satisfying in a gross way when you dump out the water from the tank and see how black the water is? You'll know the Hot Water Only method works just as well when you see this!