The fee for the 26-year-old Morocco international, who will see out the campaign in Amsterdam, could rise to £36.7m depending on add-ons.
Ziyech was one of Frank Lampard’s top targets during the January transfer window but Ajax refused to sell one of their key players mid-season.
A Chelsea statement read:
“Chelsea Football Club has reached an agreement with Ajax to sign Hakim Ziyech this summer.
“The move is subject to the player agreeing personal terms and he will remain at the Dutch club for the rest of this season.”
Ziyech has eight goals and 21 assists in 30 games for Ajax this campaign, which has helped them to the top of the table.
He joined the club from FC Twente in 2016 and only signed a new three-year deal last summer.