In short, forever. I often see people asking similar question to this on SEO forums. There is often then a lengthly debate about how long you should maintain a 301. I have no idea why people debate this topic, it is simple, a 301 is a permanent redirect, so should be left in place permanently.
Today I was reminded precisely why. I run Google Alerts for one of my domains and got a notification that it was mentioned on another blog, so I checked it out. What I found was bizarre really. Someone had left a comment referring to one of my articles on Bruce Lee. This in itself is not unusual, as people often link to my health and fitness website. What was strange is that the URL they used is one that was used well over 2 years ago before I moved my blog to a CMS.
This is the comment that was left (note it was left just yesterday, 17th December):
December 17, 2010 at 7:46 am
ah yes i have searched for the answer long and hard & i think i have finally found it; i recently discovered the bruce lee training program. I’m sure you know bruce lee, one of the greatest martial artists ever to live. His diet and training program are below:
Diet + Training: http://www.motleyhealth.com/bruce-lee-diet.html
More training: http://www.bruce-lee.ws/training.html
If you don’t know the meaning of some exercises just search em up online. To tell ya the truth i didn’t know many.
To train speed Bruce lee used paper target hitting and shadow sparring(also good for cardio). Simply get a piece of paper and hang it from a string or something. Then hit the paper as fast but as light as you can. You should get a noise like ‘crack’. This exercise is mostly good for punching but works for kicking too. It has helped me a lot. Shadow sparring is when you pretend there’s an opponent in front of you and then just go all out and spar. This has also helped me a lot.
Now, how did they come across this URL? I can only assume that Ichigo may actually run the second Bruce Lee website and be reusing some old comments to start a new SEO campaign, as that MotleyHealth one is not used anywhere on the website at all. It has to have been copied from somewhere. Or, it could be another case of people using old Yahoo answers content to generate comments for their site (all “black hat seo” stuff).
If my 301 was not still in place in my .htaccess that comment would be worthless to my site, however, as it is, it may hold some value. I have not looked in any detail at the blog on which it was left, so no idea if it really will provide any benefit to me or not, but I always take the attitude that every little helps. Maybe someone else will find that blog and that could result in one new customer for me.
So, if you redirect a page, never delete that Redirect 301 from your .htaccess (or server config if you have access), as you never know when new links will appear.