1 Compétitions officielles nationales et internationales senior, incluant le parcours amateur et en équipe réserve. 2 Matchs officiels. Dernière mise à jour :
John arrive au centre de formation de l'Ajax Amsterdam à 12 ans à la suite de son anniversaire, où il a demandé à ses parents de faire un stage à l'Ajax en guise de cadeau.
Véritable leader de l'équipe, il quitte l'Ajax Amsterdam pour l'Atlético Madrid. Il rejoint le club espagnol à la fin de la saison 2007-2008, pour un montant avoisinant les 10 millions d'euros [1].
Au mercato d'été 2009, il signe pour cinq ans et un transfert évalué à 6,8 millions d'euros à Everton FC. Le , il rejoint Fulham FC pour six mois. Le , Heitinga s'engage pour deux ans avec le Hertha Berlin[2].
Lors de la saison 2015-2016, John revient à l'Ajax Amsterdam comme il l'avait promis après son départ en 2008. Mais Frank de Boer ne peux pas compter sur lui car ce dernier a une blessure persistante au genou qui l'empêche d'évoluer au plus haut niveau. Néanmoins, il jouera quelques minutes en coupe, dans une rencontre où il inscrira un but et sera élu homme du match. Le , il décide de mettre un terme à sa carrière à seulement 32 ans. Il fait ses adieux le avant le Classique contre Feyenoord.
Reconverti entraîneur, il est nommé à la tête de l'équipe des moins de 19 ans de l'Ajax Amsterdam en . Puis les U23 en été 2021 et par la suite l'entraîneur de l'équipe première en janvier 2023[3].
Heitinga honore sa première sélection le contre les États-Unis et marque pour la première fois lors de la victoire 4-0 des Pays-Bas contre la Grèce le . Il participe à trois matchs de la Coupe du monde 2006 en Allemagne. Il participe également à l'intégralité des matchs de son équipe en Coupe du monde 2010, mais reçoit un carton rouge lors de la finale perdue face à l'Espagne (1-0 après prolongation). John dispute l'Euro 2012, mais les Pays-Bas sont éliminés dès le premier tour à la surprise générale. Pour la Coupe du monde au Brésil en 2014, Louis van Gaal a décidé de se passer des services d'Heitinga. Il aura honoré le maillot orange à 87 reprises et marqué 7 buts.