The 28-year-old was a free agent after leaving the Shrews at the end of last season.
Richards has said that he is happy to link up with Cheltenham.
"This is really good news for myself," he told the club's official website.
"I've spoken to a few clubs but it was nice to be able to choose Cheltenham because I've heard great things about the club and the area so I am pleased to be here.
"As soon as I heard about Cheltenham I was really looking forward to coming here and playing."
Richards made 93 appearances in two seasons with Shrewsbury.