Il comune di Bonassola si trova in un golfo della costa ligure di levante, racchiuso da una cerchia collinare di pini marittimi e tipici terrazzamenti di uliveti e vigneti per la coltivazione agricola. Fondato su una piana alluvionale e disteso per circa cinque chilometri, il territorio comunale è costituito da sette borghi storici, frazioni bonassolesi: nella zona occidentale, alle pendici del monte Brino si trovano i centri di Montaretto e Reggimonti; sovrastante il golfo bonassolese si trovano le comunità di San Giorgio, Costella e Serra; nella parte orientale, verso Levanto e in prossimità del monte Rossola, i nuclei di Poggio e Scerno per un totale di 9,31 chilometri quadrati. Dista circa 56 chilometri ad ovest della Spezia e 78 chilometri ad est di Genova.
Confina a nord con il comune di Framura, a sud è bagnato dal mar Ligure, ad ovest con Levanto e ad est con Framura e il mar Ligure.
L'economia di Bonassola è basata ovviamente sul turismo, trovandosi in prossimità della meta turistica delle Cinque Terre. Nelle colline del Bonassolese vi sono inoltre numerosi vigneti e uliveti.
Nei secoli passati attiva era l'estrazione mineraria della pirite la cui presenza nel territorio era concentrata maggiormente nella frazione di Scernio. Già alcuni documenti del 1285 attestano infatti tale estrazione da parte della popolazione della vicina Levanto; l'estrazione, ripresa nel XIX secolo, si interruppe definitivamente nel 1930.
Il centro di Bonassola è attraversata principalmente dalla strada provinciale 39 che gli permette il collegamento con la provinciale 64 al bivio di Scernio. Il comune non è raggiungibile direttamente tramite autostrada, pertanto i caselli autostradali di Deiva Marina, a nord, e Carrodano-Levanto, a sud, sull'autostrada A12 sono le uscite consigliate per raggiungere la destinazione.
Bonassola è dotata di una propria stazione ferroviaria sulla linea Pisa-La Spezia-Genova nel tratto locale compreso tra Genova e La Spezia.