The move is unpopular in Ukraine, where tensions remain high following Russia's annexation of the Crimean peninsula in 2014 and its support for separatists in the eastern part of the country. Zenit is owned by Russian state gas company Gazprom.
Some Ukrainian media questioned whether Rakitskiy should now be dropped from the national team, and his Instagram page was flooded with critical and sometimes abusive comments. Rakitskiy hasn't directly addressed the criticism, but he thanked Shakhtar's fans and owner in an Instagram post and said he was "very happy" in a statement on Zenit's website.
"I've gone from one top team in Shakhtar to another top team in Zenit," Rakitskiy said in the statement. "I'll do everything I can and put in 100 percent on the field for the team, so that the team always wins."
The Ukrainian national team has previously appeared reluctant to call up players from Russian clubs, and some government politicians called on other countries to boycott last year's World Cup. A sports ministry order from last year bars government financing for athletes while they take part in competitions in Russia.
More AP soccer: https://apnews.com/apf-Soccer and https://twitter.com/AP_Sports