Fermo est situé sur une colline, le Sabulo, à 319 m d'altitude, à environ 6 km de la mer Adriatique. Il a une superficie de 124,53 km2 et son altitude est de 319 m.
La commune est limitrophe avec les communes suivantes : comuniː Altidona, Lapedona et Monterubbiano au sud ; Ponzano di Fermo au sud-ouest ; Grottazzolina, Magliano di Tenna et Rapagnano à l'ouest ; Torre San Patrizio au nord-ouest ; Monte Urano, Sant'Elpidio a Mare et Porto Sant'Elpidio au nord. À l'est, on trouve Porto San Giorgio et la mer Adriatique.
La commune a deux petits exclavesː : le plus grand (Gabbiano) a une superficie de 5 km2 et est entouré par Mogliano (province de Macerata), Francavilla d'Ete, Massa Fermana et Montegiorgio ; et le plus petit (Boara) a une superficie de 0,3 km2 et est entouré par Montegiorgio, Magliano di Tenna, Grottazzolina et Belmonte Piceno.
Frazioni
Les hameaux suivants font partie de Fermoː Camera, Campiglione, Cantagallo, Casabianca, Capodarco, Cartiera di Tenna, Concerie, Contrada Boara, Ete Palazzina, Faleriense, Gabbiano, Girola, Lido di Fermo, Madonnetta d'Ete, Marina Palmense, Moie, Molini Tenna, Montesecco, Montone, Parete, Pompeiana, Ponte Ete Vivo, Sacred Hearts, Salette, Salvano, San Biagio, San Girolamo, San Lorenzo, San Marco, San Michele, Lido San Tommaso, Torre di Palme et Villa San Claudio.