Castelseprio è lambito dal fiume Olona, si trova nella valle omonima sulla riva destra ed è interessato da alcuni corsi d'acqua minori, come il Tenore e il suo affluente Ronchè, il Refreddo e la Roggia Milinara. Il Tenore, scorre nei boschi ad ovest del paese, nei quali scorre anche il Ronchè, un suo affluente. Da Castelseprio scende nell'Olona il Refreddo, che raccoglie le acque di alcune sorgive. In Valle Olona, si trova lo Stagno Buzonel, alimentato da alcune sorgive.
A Castelseprio, l'Olona dà origine ad una Roggia Molinara, che un tempo muoveva le pale dell'antico Mulino Zacchetto, ora in avanzato stato di degrado.
Castelseprio è conosciuto per la zona archeologica, il borgo fortificato che fu capoluogo del Contado del Seprio. Castelseprio sorse intorno al IV secolo, in epoca romano-bizantina,[6] come postazione difensiva nell'epoca delle invasioni barbariche, fenomeno anche indicato con il termine tedesco Völkerwanderung ("migrazioni di popoli"). Da Sibrium, nome latino di Castelseprio, passava la via Novaria-Comum, strada romana che congiungeva Novaria (la moderna Novara) con Comum (Como) passando per Sibrium (Castelseprio).
Fu distrutta dai milanesi nel 1287 con il tradimento di alcuni alpigiani della valle dell'Ossola. Ottone Visconti, arcivescovo di Milano, decretò che la roccaforte non venisse mai più ricostruita.[6][7] Vennero risparmiati solo gli edifici sacri.
La zona archeologica è stata dichiarata il 26 giugno 2011 Patrimonio dell'umanità dall'UNESCO, quale parte del complesso di siti archeologici legati al dominio dei Longobardi in Italia ("Longobardi in Italia: i luoghi del potere (568-774)").