Il club fu fondato il 20 luglio 1920 con il nome di Athleta. Nella stagione 1921-1922 il nome fu cambiato in Spartaan. Quando, un anno più tardi, si unì alla federcalcio olandese, il suo nome mutò in VV Heerenveen, dato che c'erano già altri club di nome Spartaan. Dopo essersi diviso in dipartimenti per il calcio amatoriale e professionistico, il club avrebbe mantenuto la denominazione VV Heerenveen fino al 1º giugno 1977, quando assunse il nome di SC Heerenveen.
Nella stagione 1922-1923 l'Heerenveen fu promosso in terza serie Nord e l'anno dopo in seconda serie Nord. Nella stagione 1928 il club si trasferì in un nuovo stadio, dove fu di scena fino al 1933. Nella stagione 1931-1932 si piazzò secondo in seconda divisione Nord; nel 1935-1936, pur avendo vinto il campionato di seconda serie Nord, vide svanire la promozione a causa della sconfitta nello spareggio contro l'Achilles 1894 di Assen, squadra ultima classificata in massima serie Nord. Nella stagione 1936-1937 l'Heerenveen vinse nuovamente il campionato di seconda divisione Nord e questa volta ottenne la promozione in massima serie Nord prevalendo nello spareggio contro il WVV 1896.
L'Heerenveen, guidato da Abe Lenstra, si aggiudicò sempre il campionato di massima serie Nord dal 1941 al 1951 (ad eccezione dell'annata 1944-1945, quando, a causa della seconda guerra mondiale, il campionato non fu disputato).
L'avvento dell'epoca professionistica
Con l'introduzione del professionismo nel calcio olandese, nel 1954, iniziò una nuova era per il club. Lenstra si accasò allo Sportclub Enschede e l'Heerenveen fu assegnato alla seconda divisione (girone B). Nella stagione 1959-1960 il club finì terzo e fu promosso in prima divisione (girone B), in parte grazie all'attaccante Kevin Mick. Due anni dopo, tuttavia, la squadra retrocesse nuovamente, stavolta nel girone A (perché il numero di squadre di prima divisione fu ridotto da 30 a 20). Quando il club ebbe problemi finanziari nel 1967, la popolazione locale contribuì alla causa del sodalizio. Nel 1970 l'Heerenveen divenne campione della seconda divisione e fu promosso in massima serie.
Ventennio in seconda serie
L'Heerenveen giocò poi 22 stagioni in seconda serie dal 1970 al 1993, con un anno di interruzione. Nel 1988-1989, risultando una delle squadre dal rendimento più alto in un determinato periodo di stagione, l'Heerenveen fu ammesso, malgrado il sesto posto nella stagione regolare, ai play-off per la promozione in massima serie, poi si piazzò secondo nel girone all'italiana di quattro squadre e non fu promosso. La promozione fu, tuttavia, solo rimandata: nel 1989-1990, sotto la guida di Fritz Korbach, il club ottenne un posto in Eredivisie dopo i play-off. Giunto sedicesimo nella stagione regolare, ebbe ancora una volta accesso ai play-off per la promozione in Eredivisie in qualità di migliore squadra in un certo periodo della stagione. Vinto il minigirone finale con NAC Breda e Go Ahead Eagles in modo rocambolesco (tutte e tre le squadre totalizzarono 4 punti e la squadra della Frisia si impose per una migliore differenza reti rispetto alle rivali), l'Heerenveen superò nella doppia finale l'Emmen (vittoria per 2-0 in casa dopo la sconfitta per 1-0 dell'andata in trasferta). Il club frisone fu una comparsa in Eredivisie, avendo chiuso la stagione 1990-1991 al penultimo posto, con conseguente retrocessione, seppur beffarda (a pari punti con l'SVV salvo, i frisoni ebbero la peggio solo per un gol in meno nella differenza reti). Nel 1992-1993 , sotto la guida di Foppe de Haan, il club, piazzatosi secondo nella stagione regolare di Eerste Divisie, fu nuovamente promosso in Eredivisie attraverso i play-off.
Presenza stabile in Eredivisie
Nei due decenni successivi la squadra è riuscita a mantenere un posto in Eredivisie, guadagnandosi la reputazione di squadra ostica, fondata su un'ossatura composta da calciatori scandinavi e olandesi e una buona stabilità finanziaria. Riemer van der Velde , presidente dal 1983 al 2006, ha svolto un ruolo importante in questo senso. Grazie a una sofisticata politica di scouting, i frisoni sono stati in grado di attrarre negli anni giovani talenti come Jon Dahl Tomasson, Igor' Korneev, Ruud van Nistelrooij e Marcus Allbäck, tutti lanciati dall'Heerenveen.
Nel 1997-1998 l'Heerenveen si qualificò per la prima volta per una coppa europea, battendo il Twente per 3-1 in uno spareggio tra le due semifinaliste perdenti di Coppa dei Paesi Bassi, resosi necessario perché sia Ajax che PSV, le due finaliste, si erano già qualificate per la UEFA Champions League tramite il campionato, liberando così un posto in Europa accessibile tramite la coppa nazionale. A Zwolle fu l'Heerenveen ad avere la meglio sul Twente, per 3-1, avendo così accesso alla Coppa delle Coppe. L'anno dopo, all'esordio nelle coppe europee, gli olandesi furono eliminati agli ottavi di finale della Coppa delle Coppe dai croati del Varteks.
Nel 1999-2000 l'Heerenveen chiuse al secondo posto il campionato di Eredivisie, qualificandosi alla UEFA Champions League. Gli olandesi ottennero dunque un posto nel tabellone principale della UEFA Champions League 2000-2001, dove composero un girone con Valencia, Olympique Lione e Olympiakos, girone chiuso all'ultimo posto, dopo una vittoria (1-0 in casa contro i greci), un pari (1-1 in casa degli spagnoli) e 4 sconfitte.
Nel 2003 il club andò vicino alla qualificazione alla Coppa UEFA: perse la finale della Coppa Intertoto contro il Villarreal, vittorioso per 2-1 in terra frisone prima dello 0-0 del ritorno. Il 22 luglio di quell'anno il tecnico Foppe de Haan annunciò che avrebbe lasciato la panchina della squadra al termine dell'annata 2003-2004: essendo in carica dal 1º luglio 1985, è il tecnico rimasto in carico più a lungo su una panchina di una squadra olandese. A de Haan subentrò il suo assistente, Gertjan Verbeek.
Il club è stato guidato dal 1983 al settembre 2006 dal presidente Riemer van der Velde, che è stato il presidente per più tempo alla guida di un club professionistico nei Paesi Bassi.
Un nuovo record per il club fu stabilito nella stagione 2007-2008, con il primato di gol segnati (88) in Eredivisie dall'Heerenveen, capace di battere, tra gli altri, l'Heracles Almelo per 9-0 e il Vitesse per 7-0. Nella partita contro l'Heracles, Afonso Alves segnò ben 7 gol, che resta un record assoluto per una partita di Eredivisie. Alla fine della stagione 2007-2008, dopo quattro stagioni come allenatore, Verbeek lasciò l'incarico.
Sotto la guida del norvegese Trond Sollied, il 17 maggio 2009 l'Heerenveen vinse la sua prima competizione, la Coppa dei Paesi Bassi, sconfiggendo il Twente per 5-4 ai tiri di rigore dopo il 2-2 dei tempi supplementari. Il 31 agosto 2009, un mese dopo la clamorosa sconfitta (1-5) contro l'AZ Alkmaar nella gara che assegnava la Supercoppa dei Paesi Bassi 2009 e dopo cinque giornate di Eredivisie, l'allenatore fu esonerato dopo contrasti con la dirigenza, a seguito di un avvio negativo in campionato. Jan de Jonge, successogli ad interim, rimase in carica sino al 3 febbraio 2010. Il successore, Jan Everse, con Dick van Burik come assistente, si pose come obiettivo la salvezza, centrata grazie all'undicesima piazza. Nel corso dell'annata Gerard Sibon realizzò il millesimo gol dell'Heerenveen in Eredivisie.
Passata nelle mani di Ron Jans, la squadra frisone visse una difficile annata 2010-2011 tra alti, come la vittoria per 6-2 in casa contro il Twente, e bassi, come la sconfitta in casa per 2-3 contro l'Excelsior dopo essersi trovata in vantaggio per 2-0. La squadra chiuse comunque dodicesima. L'anno dopo, trascinata dal capocannoniere dell'Eredivisie Bas Dost, ottenne un posto in Europa League grazie al quinto posto finale; fu raggiunta anche la finale di coppa nazionale, dove a eliminare i frisoni fu il PSV poi vincitore del torneo. Malgrado i buoni risultati, Jans decise a metà stagione che avrebbe lasciato il club dopo questa annata.
Al timone dell'Heerenveen giunse dunque Marco van Basten, annunciato il 13 febbraio 2011 come nuovo allenatore. A causa della cessione di molti giocatori chiave, tra cui Luciano Narsingh, Oussama Assaidi e Bas Dost, Marco van Basten ha iniziato la sua prima stagione con difficoltà. In Europa League l'Heerenveen fu eliminato prima della fase a gironi dal club norvegese del Molde. Dopo un inizio complicato, fu assicurato l'ottavo posto in campionato, con qualificazione ai play-off (eliminazione contro l'Utrecht). La seconda stagione di van Basten fu molto positiva, nonostante la cessione di Filip Đuričić. Grazie al capocannoniere Alfreð Finnbogason e all'emergente Hakim Ziyech, il club ottenne alla fine il quinto posto, anche se negli spareggi per l'Europa League capitolò contro l'AZ. Numerosi furono i giovani lanciati da van Basten: il già citato Hakim Ziyech, Kenny Otigba, Daley Sinkgraven, Bilal Başacıkoğlu e Joost van Aken.
Come noto da tempo, l'ex fuoriclasse del Milan lasciò la panchina frisone alla fine della stagione e fu rimpiazzato da Dwight Lodeweges, ingaggiato il 31 marzo come nuovo allenatore per la stagione 2014-2015, chiusa al settimo posto e con la finale degli spareggi per l'Europa League, persa contro il Vitesse. La seconda stagione di Lodeweges partì male: dopo 9 giornate la squadra stazionava al quindicesimo posto con soli 7 punti. La partita in casa contro il Feyenoord si chiuse con una sconfitta per 2-5 (il parziale all'intervallo era di 0-5), così il tecnico decise di dimettersi. Gli subentrò Foppe de Haan, che guidò i suoi al dodicesimo posto finale nel 2015-2016.
Jurgen Streppel iniziò alla grande la stagione 2016-2017, issandosi al quarto posto prima della pausa invernale. Il crollo totale accusato nella seconda parte di stagione, anche a causa dell'infortunio occorso al capitano Stijn Schaars, impedì al club di andare oltre il nono posto finale. Negli spareggi per l'Europa League che seguirono, l'Utrecht si rivelò un avversario troppo forte per i frisoni. Nella seconda stagione di Streppel l'Heerenveen rimase imbattuto nelle prime sei partite, unico club di Eredivisie a riuscire nell'impresa. Il resto dell'annata fu però deludente: si trattò di una stagione incolore, terminata all'ottavo posto, con eliminazione ai play-off ancora contro l'Utrecht. Nell'aprile 2018 fu annunciato che le strade di Streppel e dell'Heerenveen si sarebbero separate dopo questa stagione.
Per la stagione 2018-2019 si insediò sulla panchina del club Jan Olde Riekerink, esonerato il 10 aprile 2019 a causa di una serie di risultati negativi. Johnny Jansen, nominato allenatore ad interim per le ultime cinque partite di campionato, non fu in grado di portare la squadra ai play-off, terminando con un deludente undicesimo posto, ma confermato per la stagione successiva.
La divisa casalinga richiama fortemente il connotato territoriale, essendo a strisce verticali bianco-azzurre con petali di ninfea rossa (pompeblêden) nelle parti bianche. La tenuta da trasferta è solitamente rossa o nera.
Simboli ufficiali
Stemma
Anche il simbolo societario richiama fortemente la bandiera della Frisia, provincia nella quale il club è situato; ad ogni incontro casalingo viene suonato l'inno della Frisia.
Dall'inizio del 1994 il club disputa le proprie gare interne nello Stadio Abe Lenstra, che si trova a Heerenveen e che può ospitare 26.800 spettatori. Lo stadio è stato intitolato all'ex calciatore Abe Lenstra, prolifico attaccante nato proprio ad Heerenveen e a lungo militante nel club.
In precedenza veniva utilizzato lo Sportpark Noord, che era stato inaugurato nel 1928 ed è stato utilizzato fino all'entrata in funzione del nuovo impianto.