Fermo liegt auf einem Hügel, dem Sabulo, 319 m (1.047 ft) hoch, etwa 6 km (3,7 mi) von der Adria entfernt. Er hat eine Fläche von 124,53 km2 (48,08 Quadratmeilen) und seine Höhe beträgt 319 m (1.047 ft).
Die Gemeinde grenzt im Süden an folgende Gemeinden: comuniː Altidona, Lapedona und Monterubbiano im Süden; Ponzano di Fermo im Südwesten; Grottazzolina, Magliano di Tenna und Rapagnano im Westen; Torre San Patrizio im Nordwesten; Monte Urano, Sant'Elpidio a Mare und Porto Sant'Elpidio im Norden. Im Osten liegt Porto San Giorgio und die Adria.
Die Gemeinde hat zwei kleine exclavesː. Die größte (Gabbiano) hat eine Fläche von 5 km2 (1,9 Quadratmeilen) und ist umgeben von Mogliano (Provinz Macerata), Francavilla d'Ete, Massa Fermana und Montegiorgio; und die kleinste (Boara) hat eine Fläche von 0,3 km2 (0,12 Quadratmeilen) und ist umgeben von Montegiorgio, Magliano di Tenna, Grottazzolina und Belmonte Piceno.
Frazioni
Die folgenden Ortschaften sind Teil von 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 und Villa San Claudio.