Fin da bambino vive in un piccolo centro a sud diModena,Castelvetro, ma nel 1987, durante la prima elementare, passa la maggior parte del suo tempo aSpilamberto, dove si iscrive alla scuola calcio.[4] Nel 1991, durante il torneo internazionale "Enzo Ferrari" aMaranello, gli osservatori delBologna lo mettono sotto contratto per farlo giocare negli Esordienti rossoblu.[4] Nel 1998 entra a far parte dellaPrimavera del Bologna, partecipando al ritiro della prima squadra allenata daCarlo Mazzone.[5]
L'11 novembre 1998, durante l'incontro diCoppa Italia Primavera contro laLucchese, si rompe loscafoide del piede destro e l'8 marzo successivo viene operato allarotula bipartita del ginocchio sinistro per rimuovere una lieve malformazione ossea; questi infortuni lo costringono a saltare un'intera stagione.[5] Successivamente riprende a giocare con la Primavera del Bologna, mettendo a segno 6 reti. Nel 2000 si trasferisce in prestito alloSpezia inSerie C1, dove inizia la carriera professionistica e dove sfiora la promozione inSerie B.[5] Nella stagione successiva torna al Bologna, mettendosi definitivamente in evidenza.[6] Subito aggregato alla prima squadra, guidata daFrancesco Guidolin, esordisce inSerie A il 18 novembre 2001 inLecce-Bologna (1-0).[7] Poco dopo di un mese, il 22 dicembre 2001, il giorno dopo il suo 20º compleanno, segna il suo primo gol inSerie A in Lazio-Bologna fissando il risultato sul 2-2 finale al 76'. In tre stagioni a Bologna disputa 91 partite e segna 3 reti,[8] esordendo nelle coppe europee giocando 6 partite nellaCoppa Intertoto 2002.
Dalle file del Bologna passa, il 2 luglio 2004, alPalermo in cambio di 680 000 euro[9] più il cartellino diValentin Năstase.[10]
Proprio con la maglia rosanero conquista la convocazione inNazionale maggiore. Per quattro stagioni è titolare della squadra rosanero non giocando mai meno di 37 partite per annata. Al termine dellastagione 2004-2005 la sua squadra ottiene il sesto posto in campionato e conseguentemente la prima qualificazione inCoppa UEFA della storia del Palermo, esordendo nella seconda competizione internazionale per club nella stagione successiva.
Nellastagione 2007-2008 viene eletto vicecapitano della squadra.[11] In totale ha giocato 161 volte con la maglia rosanero.
Nell'estate 2008 viene acquistato, per 7 milioni di euro,[12] dal club tedesco delWolfsburg insieme al compagno di reparto al PalermoAndrea Barzagli. A fine stagione vince laBundesliga giocando 14 incontri del torneo e segnando un gol.
Dopo aver iniziato la stagione in Germania, il 29 agosto 2009 passa a titolo definitivo alParma, con cui firma un contratto quinquennale[13] e in cui diventa subito un titolare. Realizza il suo primo gol nella stagione 2009-2010 contro ilPalermo, sua ex squadra. Conclude la prima stagione in maglia gialloblu con 5 reti all'attivo.
Nella partita esterna contro ilCesena, alla settima giornata delcampionato 2010-2011, dopo aver segnato il gol del definitivo pareggio (1-1), alla moglie e al figlio, presenti in tribuna, vengono lanciati degli oggetti da parte dei tifosi della squadra di casa;[14] successivamente sono arrivate le scuse della società bianconera tramite un comunicato sul sito ufficiale.[15][16] Chiude la seconda stagione al Parma con 34 presenze e 3 gol in campionato più una partita di Coppa Italia.
Nellastagione 2011-2012 gioca 35 partite in campionato e 2 in Coppa Italia, segnando un gol contro ilNapoli nella 26ª giornata. Nellaquarta stagione con i ducali gioca 15 partite in campionato e 1 in Coppa Italia, segnando un gol contro laRoma alla 10ª giornata.
Il 25 gennaio 2013 si trasferisce a titolo definitivo alMilan nello scambio che coinvolge ancheDjamel Mesbah eRodney Strasser che compiono il percorso inverso,[17] scegliendo la maglia numero 81.[18] Escluso dalla lista UEFA per scelta tecnica,[19] esordisce in rossonero il 2 marzo seguente, in occasione della partita vinta per 3-0 contro laLazio aSan Siro, entrando all'inizio del secondo tempo al posto diCristián Zapata.[20] In rossonero non trova spazio e questa rimarrà l'unica presenza stagionale.
Nella seconda stagione gioca 13 partite di cui 11 in campionato, una in Coppa Italia e una in Champions League in occasione di Milan-Celtic (2-0).
Nella stagione 2014-15 fa il suo esordio il 1º febbraio 2015 nella partita contro il Parma (la sua ex squadra), segnando il gol del 3-1. Ottiene solamente 3 presenze totali in questa sua ultima stagione con il Milan.
Il 31 agosto 2015, nell'ultimo giorno della sessione estiva di calciomercato, passa a titolo definitivo alCarpi, società neopromossa inSerie A, firmando un contratto biennale fino al 30 giugno 2017.[21][22][23] Esordisce con i biancorossi da capitano, il 13 settembre seguente nella partita pareggiata contro ilPalermo (2-2). Il 29 novembre 2015 segna il gol del 2-1 per la vittoria in rimonta al Ferraris contro ilGenoa, il secondo successo in campionato dopo quello al Braglia per 2-1 contro ilTorino del 3 ottobre.[24][25]
Nella stagione 2016-2017 passa in prestito alVicenza[26] e sceglie di indossare la maglia numero 9.[27] Si svincola a fine stagione.[28][29]
Dopo aver pubblicato un annuncio suLinkedIn, nell'ottobre 2017 viene ingaggiato dal clubmaltese dell'Ħamrun Spartans.[30][31] Il 25 novembre 2017, nella vittoria degli Hamrun Spartans per 5-1 contro i Lija Athletic, sigla su rigore il suo primo gol con la nuova maglia. Il 19 maggio 2018, dopo 16 partite e 3 gol, lascia il club maltese.[32]
Ancora svincolato, il 3 dicembre dello stesso anno supera l'esame finale da direttore sportivo aCoverciano.[33]
Il 31 gennaio 2019 annuncia l'accordo con il clubTre Fiori diSan Marino,[34] con cui disputa solo tre incontri di coppa segnando un gol.
Il 9 luglio 2019, a tredici anni dalla vittoria italiana nel mondiale diGermania 2006, annuncia con un post sul proprio profiloInstagram la fine della sua carriera professionista e, di conseguenza, il ritiro dal calcio giocato.[35]
A 15 anni veste la sua prima maglia azzurra, quella dell'Under-16,[4] con cui nell'aprile del 1998 parte per laScozia per disputare l'Europeo di categoria. Nel corso della manifestazione segna il gol decisivo per accedere alla semifinale e l'Italia alla fine conquista il secondo posto[4], alle spalle dell'Irlanda.
Esordisce innazionale con ilCTMarcello Lippi, il 17 novembre 2004, durante l'amichevole Italia-Finlandia (1-0) disputata aMessina.[3] Nella stagione successivaLippi lo utilizza con continuità, e l'8 ottobre 2005 aPalermo realizza il suo primo ed unico gol in nazionale nella partita Italia-Slovenia (1-0), che sancisce la qualificazione della nazionale alcampionato del mondo 2006.[36]
Viene inserito nella lista dei 23 giocatori convocati per ilMondiale 2006, nel quale viene impiegato in 3 partite, giocando titolare come terzino destro nelle prime 2 sfide del torneo controGhana eStati Uniti. In occasione della sfida contro gli statunitensi (pareggiata 1-1), la seconda partita del girone, realizza l'autogol che regala il pareggio alla formazione statunitense.[37] Sarà la prima delle due reti (nessuna delle quali su azione manovrata) che la difesa italiana subirà durante il torneo. Zaccardo torna poi in campo nei quarti di finale contro l'Ucraina. Con la nazionale diventa campione del mondo, nellafinale vinta ai rigori contro laFrancia, il 9 luglio 2006, all'Olympiastadion diBerlino.
Dopo la conquista del Mondiale disputa altre 2 partite con la nazionale nella gestione del CTRoberto Donadoni. Ottiene l'ultima delle sue 17 presenze in azzurro il 17 ottobre 2007 nella gara amichevole contro ilSudafrica disputata aSiena.
Una volta ritiratosi prende il patentino inglese da intermediario per poi diventare ufficialmente un procuratore sportivo all’inizio del mese di febbraio del 2021.[38]