Three ways to put a map on a WordPress site (and when each is right)
You want a map on your site. You know roughly where you want it (the contact page, the about page, a single post). You can already picture it in your head. The remaining question is: how does it actually get there?
There are three serious ways to do it on a WordPress site in 2026. Each is right in some contexts and wrong in others. None of them is “the answer,” and the post that tells you there is one is selling you something. Here are the three approaches, what each is good at, what each costs, and a small decision tree at the bottom.
The Google Maps iframe embed
You open Google Maps, find your location, click Share, click Embed a map, and copy an iframe tag. You paste it into a Custom HTML block on your page. The map appears.
When this is fine. When the map is one location, the styling does not matter to you, and the page that contains it gets modest traffic. A small contact page for a local business is a textbook case. There is nothing to install, nothing to configure, no account to create. Five minutes.
When this is not fine. As soon as you care about how the map looks alongside your site. The default Google embed is the same flat blue-and-beige palette every other site uses. It will not match your theme. It will not respond to your accent color. It is what it is, and what it is is generic.
There is also what it cannot do. The iframe shows one location with Google’s default red pin, and that is the whole interaction model. You cannot drop a second pin. You cannot customize the marker. You cannot attach a popup with your own content (an image, a button, a few sentences about the place). If a visitor clicks the pin, they leave your site for Google Maps. It is a window into Google’s map, not a map on your page.
Performance is the other cost. An iframe embed loads the entire Google Maps Platform stack into your page: scripts, fonts, tile imagery, analytics, a substantial bundle of JavaScript that runs whether the visitor scrolls to the map or not. On a quiet contact page this is mostly tolerable. On a homepage with three other above-the-fold widgets, it is the kind of thing that turns a 95 Lighthouse score into a 72.
The honest one-liner. Free, instant, single-pin, generic-looking, heavy. Use it when none of those are problems.
A Google Maps API plugin
You install one of the many WordPress plugins that wrap the Google Maps JavaScript API. You go to the Google Cloud Console, create a project, enable the Maps JavaScript API, enable the Places API if you want search, generate an API key, restrict it, and paste it into the plugin’s settings page. You set up a billing alert, because if your map gets popular the bill is on you, not Google.
When this is right. When you have legitimately complex map needs that depend on Google’s data: business listings with Google reviews, Street View, real-time traffic, routing. When you already manage other Google Cloud resources and the workflow is familiar. When you want one specific Google Maps feature (a driving directions panel, place autocomplete) and you do not need anything else.
What it costs. The plugin itself is often free or modestly priced. The thing that costs you is the Cloud Console setup, the ongoing operational concern of an API key (rotate it, scope it, never commit it to a public repo), and the Google Maps Platform bill, which is metered per request. There is a free monthly allotment, but most plugins phrase the billing question as “you probably won’t hit it” rather than “here is what happens if you do.”
There is also a usability cost that nobody warns you about: the plugin’s admin UI is usually a thin wrapper around the API’s options, not its own simplified interface. You will see settings called things like “marker clusterer threshold” and “info window pixel offset.” If you wanted to think about info window pixel offsets, you probably would not be a WordPress user.
The honest one-liner. Powerful, configurable, and substantially more work than most sites need.
A self-contained plugin
You install a plugin that ships its own map stack: tiles, styling, search, the editor experience. There is no Cloud Console step. There is no API key. The map renders the moment you add the block.
This is the category Modern Maps lives in. A few other plugins do the same thing in different ways.
When this is right. When the map is part of how the page looks, not just a functional appendage. When you want it to inherit your theme’s colors, your border radius, your sense of restraint. When the time you have for “add a map” is closer to one minute than to one afternoon. When the maps that show up on competitors’ sites already look generic and you want yours not to.
The tradeoff. A self-contained plugin is opinionated. It is not going to do every Google Maps feature, because doing every Google Maps feature requires the Google Maps Platform. If your use case is “store locator with 4,000 pins, distance search, category filters, and lead capture,” a self-contained plugin is the wrong category. You want one of the dedicated store-locator products instead, and you want to budget time and money accordingly.
The honest one-liner. Simple, design-aware, lower ceiling than a Google API plugin. The category most sites should use, and the category most sites overshoot.
A small decision tree
Which approach matches your map?
The question is not which approach is best. It is which one your map actually needs.
-
01One location. Design does not matter. Performance does not matter.Iframe embed
-
02One location. Design matters. Performance matters.Self-contained plugin
-
03Multiple locations. You want them to inherit your theme.Self-contained plugin
-
04Store locator. Hundreds of pins. Distance search. Category filters.Dedicated store-locator
-
05You already use the Google Maps Platform for Places, Street View, routing.Google API plugin
Pick the one that matches the map your site actually needs.
- One location, design does not matter, performance does not matter. Iframe embed. Free, instant, done.
- One location, design matters, performance matters. A self-contained plugin. This is the case for most contact pages, restaurant sites, single-location small businesses, portfolios, and personal sites.
- Multiple locations, design matters, you want them to inherit your theme. Still a self-contained plugin, unless you need a feature it does not ship.
- A store locator with hundreds of pins, distance search, category filters. A dedicated store-locator plugin, which is a different product category. Self-contained plugins (us included) do not currently ship this, you may need to develop a custom google map.
- You already use the Google Maps Platform for other features (Places API, Street View, routing). A Google API plugin. You have already paid the setup cost.
What we’d suggest trying first
If you landed here without strong opinions, here is the order to try in: install Modern Maps, add the block to a page, search a location, publish. The whole thing takes about a minute and it does not commit you to anything. The plugin is free to use. If it works for your site, you have your answer. If it does not, the other two approaches are still there.
The free plugin ships with three style presets (Light, Dark, Standard) and the full block-editor experience. If you outgrow the presets and want the map to actively pull colors from your theme palette, Modern Maps Pro unlocks in-plugin via license key. Pro currently adds theme color sync, advanced LCH color controls, map gradient controls, priority email support, and multi-site licensing for five or twenty-five sites. No reinstall.
If you’d rather install through the WordPress dashboard, search the plugin directory for Modern Maps Lite. Same map, no in-plugin upgrade prompts.
Alternative install path
Three approaches. None is universally right. Pick the one that matches the map your site actually needs.