Skip to content
  • There are no suggestions because the search field is empty.

Understanding Google Maps billing with Flexmls IDX

The Flexmls IDX WordPress plugin can display interactive maps on search results and listing detail pages. Those maps use your Google Maps API key. Google bills your Google Cloud project — Flexmls does not supply or pay for a managed Maps key. This article explains what drives usage, what the plugin does to limit unnecessary loads, and how you can keep costs under control.

 

Understanding Google Maps billing with Flexmls IDX

The Flexmls IDX WordPress plugin can display interactive maps on search results and listing detail pages. Those maps use your Google Maps API key. Google bills your Google Cloud project — Flexmls does not supply or pay for a managed Maps key.

This article explains what drives usage, what the plugin does to limit unnecessary loads, and how you can keep costs under control.

 

Who pays for Google Maps?

You create and own a Google Maps API key in Google Cloud Console. You enter it in Flexmls IDX → Settings → Google Maps.

  • Maps are optional — the plugin works without a key, but map features will not display.
  • Restrict your key to your website domain and the Maps JavaScript API (as Google recommends).
  • Monitor usage in Google Cloud Console under Billing → Reports.

 

What Google bills: Dynamic Maps

For interactive maps in the plugin, Google typically reports usage under Maps JavaScript API / Dynamic Maps (e.g. method google.maps.BaseMap.Javascript).

You are generally billed when a new interactive map is initialized — when the plugin creates a google.maps.Map instance on a page.

You are generally not billed for:

  • Panning or zooming an already-loaded map
  • Clicking markers or info windows
  • Closing and reopening the map on the same page (the existing map is reused)

Think of it as: one billable load per page view where a map is actually created, not per visitor click on the map itself.

 

When does the Flexmls plugin load and initialize maps?

Behavior depends on page type and settings.

Search results (Version 2 template, Default view = List)

  • Google Maps does not load when the results page first loads.
  • Maps load when a visitor clicks Open Map.
  • Homepage and search form pages do not load maps by themselves.

Search results (Default view = Map, or URL with ?view=map)

  • The map loads and initializes when the results page loads — no “Open Map” click required.

Listing detail pages

  • When an API key is set and the listing has coordinates, the map is currently initialized when the listing page loads — even if the visitor never scrolls to the map.

Pagination

  • Search results use full page loads. If the map is open (or default view is Map), each new results page can initialize a new map.

Multiple widgets

  • Multiple Listing Summary widgets on one page can each initialize a map when map functionality is used.

Why usage can vary month to month

Higher Dynamic Maps usage usually means more page loads where a map was initialized, not a bug that charges repeatedly for one click.

Common drivers:

  • More listing detail page views
  • Search widgets set to Default view = Map
  • Links or menus pointing to map view (?view=map)
  • Visitors paginating search results with the map open
  • General traffic growth (marketing, seasonality, syndication)
  • Automated traffic hitting IDX URLs (see WAF section below)

Verified search crawlers (Googlebot, Bingbot) typically do not execute JavaScript and are unlikely to cause Dynamic Maps charges. Aggressive scrapers or bots that hit IDX pages at volume can still increase server traffic; use your firewall to manage that.

 

How to reduce Google Maps usage

In Flexmls IDX settings and widgets

  1. Set Default view = List on Listing Summary widgets, IDX Links, and location links — not Map.
  2. Avoid menu links that force map view (?view=map) unless you need them.
  3. Remove the API key if maps are not essential — the plugin will function without maps.

In Google Cloud

  1. Restrict the API key to your domain(s).
  2. Restrict to Maps JavaScript API only (unless you use other Google map products elsewhere).
  3. Set budget alerts in Google Cloud Billing.

On your website / firewall
Since plugin 3.16, IDX pages send the response header X-Flexmls-IDX: idx. You can write WAF rules scoped to IDX traffic — allow verified search crawlers for SEO and challenge or block unverified bot traffic on IDX paths.

See: WAF and SEO: Allowlisting Crawlers on IDX Pages