Besalú is one of Catalonia's most complete medieval towns, and almost everything worth seeing is packed into a compact old quarter that takes two to three hours to cover on foot. There are no museums to speak of — the town itself is the exhibit.
The three essential sights are the fortified bridge (Pont Fortificat), the mikveh, and the Romanesque church of Sant Pere. The bridge is unmissable; the mikveh requires a short guided visit booked at the tourist office but is well worth the effort; and the church is free to enter when open. Beyond these, the medieval streets reward slow wandering — Romanesque houses, ruined churches, and the old Jewish quarter are all within a few minutes of each other.
For a full day, combine Besalú with Banyoles, a handsome lake town 12km away on the same bus route from Girona.