Flexible Map
by webaware 4.8 (66 reviews)

Flexible Map

Embed Google Maps shortcodes in pages and posts, either by center coordinates or street address, or by URL to a Google Earth KML file.

Compatible with WP 6.9
v1.19.0 Current Version v1.19.0
Updated 1 month ago Last Update on 14 Dec, 2025
Synced 6 hours ago Last Synced on
Rank
#2,653
— No change
Active Installs
8K+
— No change
KW Avg Position
18
— No change
Downloads
355.6K
+16 today
Support Resolved
0%
— No change
Rating
96%
Review 4.8 out of 5
4.8 (66 reviews)

Next Milestone 9K

Total Progress 1.1%
8K+ 9K+
172
Ranks to Climb
-
Growth Needed
8,000,000
Active Installs
Pro

Unlock Exact Install Count

See the precise estimated active installs for this plugin, calculated from real-time ranking data.

  • Exact install estimates within tiers
  • Track install growth over time
  • Milestone progress predictions
Upgrade to Pro
Need 989 more installs to reach 9K+

Rank Changes

2,511 2,579 2,647 2,715 2,783 14-01-2026 15-01-2026 16-01-2026 17-01-2026 18-01-2026 19-01-2026 20-01-2026 21-01-2026
2,511 2,579 2,647 2,715 2,783 06-01-2026 07-01-2026 08-01-2026 09-01-2026 10-01-2026 11-01-2026 12-01-2026 13-01-2026 14-01-2026 15-01-2026 16-01-2026 17-01-2026 18-01-2026 19-01-2026 20-01-2026 21-01-2026
2,632 2,638 2,645 2,651 2,657 22-12-2025 23-12-2025 24-12-2025 25-12-2025 26-12-2025 27-12-2025 28-12-2025 29-12-2025 30-12-2025 31-12-2025 01-01-2026 02-01-2026 03-01-2026 04-01-2026 05-01-2026 06-01-2026 07-01-2026 08-01-2026 09-01-2026 10-01-2026 11-01-2026 12-01-2026 13-01-2026 14-01-2026 15-01-2026 16-01-2026 17-01-2026 18-01-2026 19-01-2026 20-01-2026 21-01-2026
2,632 2,638 2,645 2,651 2,657 23-10-2025 24-10-2025 25-10-2025 26-10-2025 27-10-2025 28-10-2025 29-10-2025 30-10-2025 31-10-2025 01-11-2025 02-11-2025 03-11-2025 04-11-2025 05-11-2025 06-11-2025 07-11-2025 08-11-2025 09-11-2025 10-11-2025 11-11-2025 12-11-2025 13-11-2025 14-11-2025 15-11-2025 16-11-2025 17-11-2025 18-11-2025 19-11-2025 20-11-2025 21-11-2025 22-11-2025 23-11-2025 24-11-2025 25-11-2025 26-11-2025 27-11-2025 28-11-2025 29-11-2025 30-11-2025 01-12-2025 02-12-2025 03-12-2025 04-12-2025 05-12-2025 06-12-2025 07-12-2025 08-12-2025 09-12-2025 10-12-2025 11-12-2025 12-12-2025 13-12-2025 14-12-2025 15-12-2025 16-12-2025 17-12-2025 18-12-2025 19-12-2025 20-12-2025 21-12-2025 22-12-2025 23-12-2025 24-12-2025 25-12-2025 26-12-2025 27-12-2025 28-12-2025 29-12-2025 30-12-2025 31-12-2025 01-01-2026 02-01-2026 03-01-2026 04-01-2026 05-01-2026 06-01-2026 07-01-2026 08-01-2026 09-01-2026 10-01-2026 11-01-2026 12-01-2026 13-01-2026 14-01-2026 15-01-2026 16-01-2026 17-01-2026 18-01-2026 19-01-2026 20-01-2026 21-01-2026
Current #2,653
Change
Best #

Upgrade to Pro

Unlock 30-day and 90-day rank history charts with a Pro subscription.

Upgrade Now

Active Installs Growth

Active Installs 0,000,000+
Growth +0.0%
Peak 0,000,000

Downloads Growth

0 10 20 14-01-2026 15-01-2026 16-01-2026 17-01-2026 18-01-2026 19-01-2026 20-01-2026 21-01-2026
0 10 20 30 06-01-2026 07-01-2026 08-01-2026 09-01-2026 10-01-2026 11-01-2026 12-01-2026 13-01-2026 14-01-2026 15-01-2026 16-01-2026 17-01-2026 18-01-2026 19-01-2026 20-01-2026 21-01-2026
0 10 20 30 22-12-2025 23-12-2025 24-12-2025 25-12-2025 26-12-2025 27-12-2025 28-12-2025 29-12-2025 30-12-2025 31-12-2025 01-01-2026 02-01-2026 03-01-2026 04-01-2026 05-01-2026 06-01-2026 07-01-2026 08-01-2026 09-01-2026 10-01-2026 11-01-2026 12-01-2026 13-01-2026 14-01-2026 15-01-2026 16-01-2026 17-01-2026 18-01-2026 19-01-2026 20-01-2026 21-01-2026
0 10 20 30 40 50 60 23-10-2025 26-10-2025 29-10-2025 01-11-2025 04-11-2025 07-11-2025 10-11-2025 13-11-2025 16-11-2025 19-11-2025 22-11-2025 25-11-2025 28-11-2025 01-12-2025 04-12-2025 07-12-2025 10-12-2025 13-12-2025 16-12-2025 19-12-2025 22-12-2025 25-12-2025 28-12-2025 31-12-2025 03-01-2026 06-01-2026 09-01-2026 12-01-2026 15-01-2026 18-01-2026 21-01-2026
0 500 1K 1.5K 2K 21-01-2025 02-02-2025 14-02-2025 26-02-2025 10-03-2025 22-03-2025 03-04-2025 15-04-2025 27-04-2025 09-05-2025 21-05-2025 02-06-2025 14-06-2025 26-06-2025 08-07-2025 20-07-2025 01-08-2025 13-08-2025 25-08-2025 06-09-2025 18-09-2025 30-09-2025 12-10-2025 24-10-2025 05-11-2025 17-11-2025 29-11-2025 11-12-2025 23-12-2025 04-01-2026 16-01-2026 21-01-2026
Downloads
Growth
Peak

Upgrade to Pro

Unlock 30-day, 90-day, and yearly download history charts with a Pro subscription.

Upgrade Now

Reviews & Ratings

4.8
66 reviews
Overall 96%
5
62 (94%)
4
2 (3%)
3
0 (0%)
2
0 (0%)
1
2 (3%)

Tracked Keywords

Showing 1 of 1
Keyword Position Change Type Updated
kml 18 — Tag 6 hours ago

Unlock Keyword Analytics

Track keyword rankings, search positions, and discover new ranking opportunities with a Pro subscription.

  • Full keyword position tracking
  • Historical ranking data
  • Competitor keyword analysis
Upgrade to Pro

Track This Plugin

Get detailed analytics, keyword tracking, and position alerts delivered to your inbox.

Start Tracking Free

Plugin Details

Version
1.19.0
Last Updated
Dec 14, 2025
Requires WP
4.6+
Tested Up To
6.9
PHP Version
5.6 or higher
Author
webaware

Support & Rating

Rating
★ ★ ★ ★ ★ 4.8
Reviews
66
Support Threads
0
Resolved
0%

Keywords

Upgrade to Pro

Unlock keyword rankings, search positions, and detailed analytics with a Pro subscription.

Upgrade Now

Frequently Asked Questions

Common questions about Flexible Map

Yes. You will need at minimum an API key for Maps, so that the Maps JavaScript API will work. If you want to add maps by address (not just coordinates or KML file), you will also need to select Places. If you want to use directions features of this plugin, you will also need to select Routes. Get your API keys from the Google Maps Platform Read more about API keys for Google Maps
You can set your API keys in the WordPress admin: Settings > Flexible Map For everything else, just add some attributes to your shortcode telling the map what to do. Of course, in WordPress there is a plugin for everything :) so if you want more settings, please install the Flexible Map Options plugin. That plugin lets you set some defaults so that if you use the same attributes over and over, you can put them all in one place.
Using a KML file, you can have as many markers on a map as you like, with as much detail in the info windows. With KML you can also change marker icons and add other nice features. You can generate your KML file from an application like Google Earth, or you can create it yourself (in a text editor or with your own programming). Learn more about KML.
Google Maps API caches the KML file, so it can take a while for your new changes to appear. To force a change, append a URL query parameter with a number (known as a cache buster) and increment the number each time you change the KML file. A nice simple and commonly used parameter name is v (for version), like this: http://example.com/my-map.kml?v=2 If your map is auto-generated or changes frequently, add the kmlcache attribute to ask Google to fetch a new copy periodically. You can specify the interval in minutes (e.g. "90 minutes"), hours (e.g. "2 hours"), or days (e.g. "1 day"). The minimum interval is 5 minutes. [flexiblemap src="https://webaware.com.au/maps/example-toronto.kml?v=2"] [flexiblemap src="https://webaware.com.au/maps/example-toronto.kml" kmlcache="8 hours"]
The Google Maps API supports many commonly used KML elements, but has some restrictions. Read about Google Maps support for KML in the developers' guide, and also see the list of supported KML elements on that page.
When you use a street address instead of center coordinates, you are effectively searching Google Maps for your location. Try being very specific about your address, including your town / city, state / province, and country to make sure Google can find where you mean. You can also specify your region with the region attribute to help Google Maps refine its search. If the marker is still in the wrong place, you might need to specify the location using center coordinates instead.
When you use just center coordinates for your map, the directions may send people to the location opposite your location! Yes, I know... anyway, if you specify both the center coordinates and the street address, the map will be centered correctly and the directions will be to your address.
The plugin uses localized messages for things like the Directions link and the default message on links in info windows. If you have your WordPress installation set to use your language, the plugin should automatically pick it up. If you need to force it to pick up your language (or want to offer a different language), use the locale attribute, e.g. locale="ru" or locale="zh-TW". Google Maps will use the locale information from your web browser to help display maps and directions in your language (see your browser's language settings). If you want to force the Google Maps language for every map on a page, you can use a filter hook. For example, here's how to force the Google Maps language to match the language of the page / post its on (e.g. when using WPML translated content): add_filter('flexmap_google_maps_api_args', 'force_flexmap_map_language'); function force_flexmap_map_language($args) { $args['language'] = get_locale(); return $args; } You've translated my language badly / it's missing The initial translations were made using Google Translate, so it's likely that some will be truly awful! If you'd like to help out by translating this plugin, please sign up for an account and dig in. The map is broken in tabs / accordions When you hide the map in a tab, and then click on the tab to reveal its contents, sometimes the map doesn't know how big to draw until it is revealed. Since v1.9.0 most such problems are automatically resolved for modern browsers, including Internet Explorer 11 or later. If you need to support earlier versions that don't support MutationObserver, add some script to your website to handle this yourself. For jQuery UI tabs and accordions, download the .php file from this gist, and install / activate it. If you'd prefer to add the jQuery code yourself, add this somewhere on the page (e.g. in your theme's footer): <script> (function($) { function mapRedraw(event, ui) { if (ui.newPanel.length) { $("#" + ui.newPanel[0].id + " div.flxmap-container").each(function() { var flxmap = window[this.getAttribute("data-flxmap")]; flxmap.redrawOnce(); }); } } $("body").on("accordionactivate", mapRedraw).on("tabsactivate", mapRedraw); })(jQuery); </script>
If you want to add your own scripting for the map, you can get the map object by identifying the FlexibleMap global variable for your map, and asking it to getMap(). By default, each FlexibleMap is given a randomly generated ID and the global variable name is derived from that. The map's containing div has a data property with this global variable name. Here's some sample jQuery code that gets the map object for the (first) map: jQuery(window).load(function() { var flxmapName = jQuery("div.flxmap-container").attr("data-flxmap"); var flxmap = window[flxmapName]; var map = flxmap.getMap(); // ... use map ... }); Alternatively, you can specify the ID used for a given map, and it will then derive the global variable name from that. Here's a sample shortcode: [flexiblemap center="-32.891058,151.538042" id="sugarloaf"] And here's some sample jQuery code: jQuery(window).load(function() { var map = flxmap_sugarloaf.getMap(); // ... use map ... });
The plugin only loads the required JavaScript scripts when it knows that they are needed. When your website uses AJAX to load a page, the normal WordPress footer action for that page doesn't happen, and the scripts aren't loaded. You can make the scripts load on every page by adding this snippet to the functions.php file in your theme: function my_preload_map_scripts() { if (function_exists('flexmap_load_scripts')) { flexmap_load_scripts(); } } add_action('wp_enqueue_scripts', 'my_preload_map_scripts', 20); To make it load locale scripts as well, e.g. for French and Chinese language text, add them to the function call like this: flexmap_load_scripts(array('fr', 'zh')); The plugin will detect when AJAX is being used via the WordPress standard method, and adjust accordingly (but you still need to load the scripts as above). If another method is used, add isajax='true' to the shortcode attributes. NB: currently, only AJAX methods that parse script tags will work correctly; this includes some jQuery methods (but not all). A future version of the plugin will be more AJAX friendly. I have Cloudflare protecting my website and KML maps don't work Cloudflare now seems to block the Google Maps agent that fetches the KML file. If you use Cloudflare to proxy requests for your website, you should have a separate domain name for hosting just the map files and set it up without the Cloudflare proxy (the orange cloud). I have Cloudflare Rocketscript turned on and the map doesn't work Either turn off Cloudflare Rocketscript 🙂 or install the Flxmap No Rocketscript plugin by loading that file into your website's wp-content/plugins folder and activating through the plugins admin page. Use the plugin if you still want Rocketscript to manage all of your other scripts but leave the Flexible Map scripts alone.

Sign In / Register

You need to sign in or register to use this feature.