I used a program called QGIS which is used for mapping. It can also display the traces over a map, though the background map gets redrawn every time you move the map which can get annoying. I have all my rides in a Spatialite database which QGIS can load quickly / filter based on date. I started using it last year when I didn't want to pay for Strava premium, but still wanted something like Strava's heatmap to keep track of the roads I'd visited.
The program can be a pain in the ass to use. I had to watch a video on youtube just to figure out how to save an image of an area of the map. Even the map itself can look goofy if you don't have the right map projection selected.
Getting the database setup is a bit of work. It is populated using a Python script I found on github. It only works with Python 2 not 3. https://github.com/ptrv/gpx2spatialite
QGIS has a plugin called Batch GPS Importer that might let you skip screwing around with that script. When importing you'd just need the tracks, not the points. Importing a lot of files is slow, but once imported the layer can be saved so there would be no need to re-import. One of the supported formats is spatialite which is probably the way to go since its just a single file.