Moroccan in-form striker El Hamdaoui opened the scoring after 11 minutes with a delightful chip from outside the area.
Heerenveen striker Bas Dost leveled the score in the 25th minute with a near-post header after Ajax keeper misjudged a cross.
However, El Hamdaoui restored Ajax's advantage three minutes after the break after his unstoppable volley from inside the area left the keeper with no chance.
Left-back Vurnon Anita wrapped up the victory six minutes from time after a fine individual effort.
Mido missed out on the chance of making his third league appearance for Ajax, the club he joined on a season-long loan from English second-division side Middlesbrough.
The former Tottenham Hotspur and AS Roma man was introduced as a second-half substitute in Ajax's league games against NAC Breda and Excelsior.
Ajax are third in the league table with 24 points, three behind leaders PSV Eindhoven.
The goals