In 2012 werd Ganna Italiaans kampioen, dit in het tijdrijden bij de nieuwelingen. Een jaar later bij de junioren werd Ganna derde op het nationaal kampioenschap tijdrijden, achter Seid Lizde en Giovanni Carboni. Om nog een jaar later wel de juniorentitel te pakken. In datzelfde jaar werd hij op zowel de Europese- als de wereldkampioenschappen voor junioren vierde in de tijdrit. Beide wedstrijden werden gewonnen door Lennard Kämna.
In 2015 werd Ganna met de Italiaanse selectie onder andere vierde in de ploegentijdrit van de ZLM Roompot Tour. In augustus van dat jaar begon Ganna aan zijn stageperiode bij Lampre-Merida. Tijdens die stageperiode tekende hij een tweejarig contract voor 2017 en 2018.[1] Zijn eerste overwinning van het seizoen behaalde hij in september door de Chrono Champenois, een tijdrit over ruim 33 kilometer, sneller af te leggen dan Vegard Stake Laengen en Davide Martinelli.
Het seizoen 2016 begon voor Ganna in de Grote Prijs van de Etruskische Kust waarin hij op plek 68 eindigde. In zijn tweede koers was hij succesvoller: hij won de GP Laguna Poreč voor de Slovenen David Per en Domen Novak. Eind mei won hij de beloftenversie van Parijs-Roubaix door na een aanval in de finale solo over de eindstreep te komen. Bijna een maand later werd hij nationaal beloftenkampioen tijdrijden, door het 25 kilometer lange parcours vijf seconden sneller af te leggen dan Giovanni Carboni. In de individuele tijdrit van de Ronde van de Toekomst werd hij zevende. Op het Europese kampioenschap werd Ganna, achter Lennard Kämna, tweede in de tijdrit. Drie dagen later eindigde hij op de zesde plaats in de wegwedstrijd. Op het wereldkampioenschap tijdrijden werd hij veertiende, ruim anderhalve minuut langzamer dan winnaar Marco Mathis.
In 2017 werd Ganna prof bij UAE Team Emirates. Zijn debuut maakte hij in de Ronde van San Juan, waar hij in de tijdrit op plek 21 eindigde. Later dat jaar werd hij onder meer vijfde in de tijdrit in de Ronde van Californië en negende in de tijdrit tijdens de Europese kampioenschappen. Zijn tweede seizoen bij de ploeg startte Ganna wederom in de Ronde van San Juan. In de derde etappe, een tijdrit over 14,4 kilometer, eindigde hij achter Ryan Mullen op de tweede plaats. Dankzij die klassering nam hij wel de witte leiderstrui over van Román Villalobos. Twee dagen later verloor hij die trui aan de latere eindwinnaar Gonzalo Najar. Wel behield hij de leiding in het puntenklassement, dat hij na zeven etappes ook op zijn naam zou schrijven.
In 2019 stapte de Italiaan over naar Team INEOS. Namens deze ploeg won hij in het voorjaar de eerste etappe, een individuele tijdrit over 8,9 kilometer, van de Ronde van de Provence. Ganna eindigde negen seconden voor de Nederlander Sebastian Langeveld. Hij werd tevens Italiaans kampioen tijdrijden. Hij was in Parma slechts een fractie van een seconde sneller dan Alberto Bettiol.[2]
Wereldrecords
Individuele achtervolging
Ganna heeft tijdens de Wereldbeker in Minsk het wereldrecord op de individuele achtervolging twee keer aangescherpt. In de halve finale deed hij 4.04,252 minuut over de vier kilometer. Deze tijd verbeterde hij tijdens de finale tot 4.02,647.[3] Tijdens het door hem gewonnen Wereldkampioenschap achtervolging van 2020 in Berlijn verbeterde hij in de kwalificatie zijn eigen wereldrecord tot 4.01,934.[4]
Op 8 oktober 2022 legde Ganna op de wielerbaan van Grenchen in Zwitserland in één uur 56,792 kilometer af op een 3D-geprinte fiets. Hij had er 229 rondes voor nodig. Het vorige UCI werelduurrecord voor mannen stond op naam van de Britse Daniel Bigham met 55,548 km.[5]
De 3D-fiets Pinarello Bolide F HR 3D was gemaakt van Scalmalloy, een legering van scandium, aluminium en magnesium. Het Belgisch bedrijf Materialise uit Leuven printte de zadelklem. Het fietskader, de fietsvork en de zadelpen werden ge-3D-print door het Brits bedrijf Metron Advanced Equipment.[6]