I think the blame largely lies with the media. It was widely reported to be four years. I think it was only the club's website that said three.Three years.
Somebody said four years a while back and the notion persists even though it's been corrected every time. His contract expires in 2020 (see contracts sticky thread).