WP GPX Maps turns a GPX, FIT, TCX or KML file into an interactive map and charts: upload the track, add the GPX Map block (or the [sgpx] shortcode) and your readers get the route, the elevation profile and the statistics of your hike, ride or run. See how it works in under three minutes: the block,
PricingFree downloadThe WordPress.org download is free. Pro versions, add-ons or external services may cost extra.
CompatibilityRequires WordPress 6.5 and PHP 7.4.
SourceWordPress plugins · Nov 3, 2026
01 / Source details
Aboutthistool.
WP GPX Maps turns a GPX, FIT, TCX or KML file into an interactive map and charts: upload the track, add the GPX Map block (or the [sgpx] shortcode) and your readers get the route, the elevation profile and the statistics of your hike, ride or run.
See how it works in under three minutes: the block, the shortcode, the charts, 3D maps and activities.
Fast, also with very long tracks
The map code is loaded only on the pages that show a map, and every map starts when it gets near the screen. Even long-distance trails open in a second or two. See them live:
Camino Francés : 769 km, 32,962 points, a 2 MB GPX file
Alta Via 1 of the Dolomites : 120 km, 7,441 points
Alta Via degli Eroi on Monte Grappa : 40 km over the First World War front line
Maps
OpenStreetMap and other free maps (no account needed): OpenStreetMap, OpenTopoMap, CyclOSM, Humanitarian, OpenSeaMap, and the Thunderforest maps (OpenCycleMap, Outdoors, Transport, Landscape) with a free Thunderforest API key.
MapBox with your own API key: Outdoors, Streets, Satellite, Satellite Streets, Light, Dark, Standard and custom styles, 3D terrain , fog and a tilted 3D view ( pitch , bearing ).
Track colored by grade (blue descent, green flat, yellow to red climb), speed , heart rate or elevation , with a legend.
Several GPX files in one map ( gpx="a.gpx,b.gpx" ), one color per file with a legend.
Activities : tag your routes as hiking, stroller-friendly, mountain bike, climbing, snowshoeing and more (or your own activities, each with an emoji icon). Every activity has its own page on the site, and the site search finds routes by activity.
Soft edges : the map can fade into the page instead of ending with a hard border ( fadeedges ).
Start / finish markers, distance markers every N km or miles, waypoints with popups, full screen, photos from NextGEN Gallery or from the images attached to the post.
Filled elevation profile , speed , heart rate , cadence , temperature and grade .
Move the mouse on the chart and the position is shown on the map; move it on the track and the point is shown in the chart.
GPS noise is smoothed out: grade averaged over about 100 m, speed without single spikes.
Meters, kilometers, feet, miles or nautical miles; speed in km/h, mph, min/km, min/mile, knots or min/100 m.
Summary
Total distance, maximum and minimum elevation, total climbing and descent, average and maximum speed, maximum grade, average heart rate, cadence and temperature, total time and moving time (pauses excluded).
Readable by AI assistants, search engines and screen readers
A map drawn by JavaScript is invisible to ChatGPT, Perplexity, Google AI Overviews and other AI assistants, to search engines and to screen readers: they read the text of the page, not the map. WP GPX Maps also describes every track in the page itself:
Text description of the route, e.g. “Map of the route Sentiero 157: 4.38 km, 145 m of climbing and 376 m of descent, elevation between 1,315 m and 1,580 m, time 01:54:36. It starts at … and ends at …”, linked to the map for screen readers. Not shown on the page by default, or shown under the map ( description="visible" ).
Structured data (schema.org TouristTrip in JSON-LD) with distance, climbing and descent, highest and lowest point, time and the line of the route, so AI assistants and search engines can answer questions like “how long is this hike?” with the right numbers. The track file is linked only when you allow its download.
Both can be turned off in Settings > WP GPX Maps or for one map ( description="false" , structureddata="false" ), and changed by developers with the wpgpxmaps_track_description and wpgpxmaps_structured_data filters.
Easy to use
GPX Map block for the block editor with live preview: pick an uploaded GPX file from a list and set every option in the sidebar.
Upload your track files in the Media Library , like images: they are organized by month, searchable and attached to the post. Or keep them in Settings > WP GPX Maps > Tracks (editors and authors can upload their own files).
Every option has a default in the settings, so a simple [sgpx gpx="/wp-content/uploads/gpx/my-track.gpx"] is enough.
GPX 1.0 and 1.1 (Garmin and Strava extensions: heart rate, cadence, temperature), FIT files from Garmin, Wahoo and other devices, TCX and KML / KMZ , multi-track files.
Fast pages: the map style is loaded only on the pages with a map, and every map downloads its code only when it gets near the screen (lazy load). Cache of the processed tracks, works with PHP 7.4 to 8.4.
Support and development
Questions and bug reports: the support forum .
Development, issues and pull requests: GitHub .
Translations: translate.wordpress.org .
Support the development: GitHub Sponsors .
Icons made by Freepik from www.flaticon.com , licensed under CC BY 3.0 .
See it in action
Screenshots & previews.
Track colored by grade on a MapBox Outdoors map with 3D terrain, distance markers, elevation and speed chart, and summary.3D view of a trail on MapBox Satellite Streets.The same trail with the MapBox Dark and Light styles.OpenStreetMap, no API key needed: elevation and speed chart and full summary with moving time.Two GPX files in one map, one color per file, with a continuous elevation profile.Track colored by speed: moving on the chart shows altitude, speed and grade, and the position on the map.The GPX Map block in the block editor: live preview and options in the sidebar.
02 / Source details
Gettingstarted.
01Install the plugin from Plugins > Add New (search for “WP GPX Maps”) and activate it.
02Upload your GPX files in the Media Library (also from the block, with the Media Library button) or in Settings > WP GPX Maps > Tracks , or use any GPX file already on your site or on another site.
03In a post or page add the GPX Map block and choose the GPX file. With the classic editor use the shortcode, for example [sgpx gpx="/wp-content/uploads/gpx/my-track.gpx"] .
04Optional: in Settings > WP GPX Maps set the defaults for all the maps, a Thunderforest API key for the Thunderforest maps or a MapBox API key for the MapBox maps and 3D terrain.
03 / Source details
Frequently asked questions.
Do I need an API key?
No. OpenStreetMap, Humanitarian, Hike & Bike and OpenSeaMap work without a key. The Thunderforest maps need a free Thunderforest API key. MapBox styles and 3D terrain need your own MapBox access token: when it is set in the settings, all the maps use MapBox.
How do I show the 3D view?
Set a MapBox access token, then enable 3D terrain and a view tilt in the block (or mapbox3d=true pitch=60 in the shortcode). bearing rotates the view, mapboxstyle chooses the style of a single map, for example satellite-streets-v12 .
How do I show several tracks in one map?
Use the GPX files separated by commas: [sgpx gpx="/wp-content/uploads/gpx/day1.gpx,/wp-content/uploads/gpx/day2.gpx"] . Each file gets its own color and the totals are for the whole route.
Which shortcode attributes are available?
The main ones (every attribute also has a default in the settings; true / false turn an option on or off):
gpx : path of the GPX file from the site root, or its URL; several files separated by commas.
mtype : map type without MapBox: OSM1 OpenStreetMap, OSM2 Thunderforest OpenCycleMap (CyclOSM without API key), OSM3 Thunderforest Outdoors, OSM4 Transport, OSM5 Landscape (Thunderforest maps need an API key, otherwise OpenStreetMap is used), OSM7 Humanitarian, OSM9 OpenTopoMap, OSM10 OpenSeaMap sea marks over OpenStreetMap, OSM11 GSI Japan, OSM12 CyclOSM.
mapboxstyle , mapbox3d , pitch , bearing : MapBox style, 3D terrain, view tilt (0-85) and rotation.
nggalleries , ngimages , attachments , dtoffset : photos on the map.
pointsoffset , donotreducegpx , skipcache : processing of large files.
description : text description of the track for screen readers, search engines and AI, hidden (default), visible or false ; structureddata : false leaves out the schema.org data.
The complete list with the current defaults is in Settings > WP GPX Maps > Help .
What happens with very large GPX files?
The plugin skips points closer than 10 meters ( pointsoffset ) and can keep about 200 points for the map and the chart, then caches the result, so even long tracks load fast.
How do I keep many GPX files organized?
Upload them in the Media Library: WordPress puts them in a folder for each month, and you can search them, give them a title and see the post they belong to. Media folder plugins work with them too. In the GPX Map block choose a file with the Media Library button. Every uploaded track file is checked first: files that are not valid tracks, or that contain scripts or HTML, are refused.
Can visitors find all the stroller-friendly walks, or all the mountain bike routes?
Yes. Tick the activities of a route in the editor (Activities panel, like categories), in Quick Edit, or for many posts at once with Bulk Edit. Each activity has a page, e.g. /activity/mountain-bike/ , you can add to the menu, and the site search finds the routes by activity. Edit the list and the icons in Posts > Activities . Media Library files can have activities too.
Which file formats can I use?
GPX, FIT (the activity files of Garmin, Wahoo, Coros and most bike computers and watches), TCX and KML / KMZ (Google Earth). Use them like a GPX file: [sgpx gpx="/wp-content/uploads/gpx/ride.fit"] . The format is recognized from the content of the file.
The map is not styled, or is missing, in a widget or a page builder
The plugin loads the map style only on the pages whose posts contain the block or the shortcode; maps added in other ways load it in the footer. To load it in the head of every page add add_filter( 'wpgpxmaps_load_assets', '__return_true' ); to your theme. Maps start when they get near the screen: to start them as soon as the page has loaded use add_filter( 'wpgpxmaps_lazy_load', '__return_false' ); .
Can AI assistants like ChatGPT read my routes?
Yes. Besides the map, every map prints a short text description of the route and schema.org structured data (JSON-LD) with distance, elevation, time and the route line. AI assistants, search engines and screen readers read them even though they can’t run the map. The description is not shown on the page unless you choose so; you can turn both off in the settings.
Is it free?
Yes, WP GPX Maps is free and open source (GPLv2 or later).
Website LLMs.txt and LLMs-Full.txt Generator is an LLMs.txt generator and llms-full.txt generator for WordPress. It helps site owners generate, manage, preview, validate, and serve AI discovery files from published public content. Use it to create structured /llms.txt and optional /llms-full.txt end
EngageDock AI is a customizable floating contact widget for WordPress websites that want more leads and faster visitor communication. It helps small businesses turn website traffic into calls, texts, emails, and callback requests from one clean contact panel. Key Features: Click-to-Call – One tap ca
Altify AI is an auto ALT text and AI ALT text plugin for WordPress images. It helps generate descriptive image ALT text for accessibility and image SEO. Use bulk image ALT text tools for your Media Library, generate featured image ALT text automatically, and scale WooCommerce image ALT updates with
The Accepted Payment Methods plugin is a straightforward, lightweight solution that enhances your website by displaying visually appealing icons of the payment methods you accept. This plugin is ideal for a variety of websites, including e-commerce platforms, service-oriented websites, and informati