Having smelly shoes is a result of having smelly feet. The problem does not have to be permanent, as there are many easy and free remedies that will help freshen up your shoes and remove the odor nearly completely.
First of all, preventing sweaty feet is a great way to stop your shoes from getting stinky. It is the moisture from your sweat that helps bacteria to multiply and that is the actual cause of the odor. So, using foot powder after washing and drying your feet will reduce sweat and thus smelly shoes.
A second easy way to solve the problem is by wearing socks made of an absorbent material such as cotton. The sweat is absorbed and kept away from your feet, which in the end keeps your feet dry. As long as you change your socks often enough you should not have to worry about foot odor.
Lastly, just washing your feet with soap and water and drying them really well will aid in keeping you from having really smelly shoes.