Arshavin joined Arsenal from Zenit for a reported £15million in January 2009, but failed to make the expected impact at the Emirates.
The 32-year-old spent time on loan at Zenit in 2012.
“One of the best footballers in Russia of the last decade is returning to his home city,” Zenit said in a statement.