Keogh, who has played 30 times for Ireland, has had stints with Wolverhampton Wanderers, Leeds United and Millwall and played on loan at Blackpool last season.
He has made over 250 appearances in the English Premier League and Championship over the past seven years.
"I am looking forward to returning to Perth and to make my mark on the A-League," the 28-year-old said.
"It's a fantastic opportunity for me at Perth Glory and I believe my experience in the Championship will help me adapt quickly to the A-League."
Keogh played for Wolves against Glory in Perth in 2009 and forced a spectacular save by the goalkeeper from 40 yards out.
He will replace New Zealand international striker Shane Smeltz, who has left for Sydney FC.