Fermo ligt op een heuvel, de Sabulo, 319 m hoog, op ongeveer 6 km van de Adriatische Zee. Het heeft een oppervlakte van 124,53 km2 en ligt op 319 m hoogte.
De gemeente grenst aan de volgende comuniː Altidona, Lapedona en Monterubbiano in het zuiden; Ponzano di Fermo in het zuidwesten; Grottazzolina, Magliano di Tenna en Rapagnano in het westen; Torre San Patrizio in het noordwesten; Monte Urano, Sant'Elpidio a Mare en Porto Sant'Elpidio in het noorden. In het oosten ligt Porto San Giorgio en de Adriatische Zee.
De gemeente heeft twee kleine exclavesː de grootste (Gabbiano) heeft een oppervlakte van 5 km2 (1,9 sq mi) en wordt omringd door Mogliano (provincie Macerata), Francavilla d'Ete, Massa Fermana en Montegiorgio; en de kleinste (Boara) heeft een oppervlakte van 0,3 km2 (0,12 sq mi) en wordt omringd door Montegiorgio, Magliano di Tenna, Grottazzolina en Belmonte Piceno.
Frazioni
De volgende frazioni (gehuchten) maken deel uit van 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, Sacri Cuori, Salette, Salvano, San Biagio, San Girolamo, San Lorenzo, San Marco, San Michele, Lido San Tommaso, Torre di Palme en Villa San Claudio.