What you are actually choosing between
Every WordPress store locator setup is one of three architectures, and the visitor cannot tell them apart. You can. The classic plugin renders everything server-side in PHP and stores your locations as rows in the WordPress database. The SaaS-backed plugin is a thin connector: locations live in an outside service, and the plugin gives you a block or shortcode that pulls the widget in. The hosted embed skips the plugin entirely, one script tag pasted into a Custom HTML block.
The architecture decides four things the feature lists never mention. Where your data lives, and therefore what your database backups weigh and what a site migration drags along. Who renders the page, and therefore whether a WordPress major version or a PHP upgrade can break the locator. Who pays for the map, covered in its own section below because it is where the real money is. And what happens when you change themes, which for embeds and connectors is nothing.
None of these is automatically right. A site that must keep every byte of data on its own server has one answer; a marketing team that changes themes yearly and wants the locations editable by someone without a WordPress login has another.
| Classic PHP plugin | SaaS-backed plugin | Hosted embed | |
|---|---|---|---|
| Install | WordPress.org, activate, configure in wp-admin | WordPress.org, activate, connect an account | Paste one block of code, no plugin |
| Location data lives | Your WordPress database | The service's dashboard | The service's dashboard |
| Survives theme change | Usually, styling often needs rework | Yes | Yes |
| WordPress update risk | Real: PHP rendering can break | Low: the plugin is a thin shell | None: WordPress never touches it |
| Editable without wp-admin | No | Yes, in the service | Yes, in the service |
| Map billing | Your key, configured in the plugin | Varies: bundled tiers or your key | Varies: bundled tiers or your key |
| Typical cost | Free to $99 one-off or yearly | $0 to $50 per month | $19 to $79 per month |
Route one: install a plugin from WordPress.org
The plugin route keeps everything inside wp-admin, which suits teams that live there. The steps below are for a SaaS-backed plugin; a classic plugin replaces the connect step with importing locations into WordPress itself.
- In wp-admin, go to Plugins, then Add New, and search for the locator by name. Check the last-updated date and the tested-up-to version before installing anything: a locator plugin that has not been updated across two WordPress majors is a risk you are choosing.
- Install and activate, then open the plugin's settings page.
- Connect it to your account, usually by pasting a Site ID or API key from the locator dashboard.
- Add the locator to a page with the block, or with the shortcode where a page builder or classic editor does not show blocks.
- Publish and open the page as a visitor. If the map does not appear, the caching section below is the first place to look.
Route two: the Custom HTML block, no plugin at all
Every plugin you install is code running inside your site, updating on its own schedule, with database access. Some owners reasonably want fewer of those, and the block editor makes the no-plugin route almost as short.
- Open the page where the locator should live, or create one named after what visitors look for: Find a store, Stockists, Where to buy.
- Add a Custom HTML block where the locator should appear.
- Paste the embed code from your locator dashboard into that block. The block editor will show a plain grey placeholder while editing; that is normal, scripts do not run in the editor.
- Publish or update, then open the public URL. Do not judge the result from the editor preview.
- Add the page to your menu, and test search, filters, a directions tap and the layout on a phone before announcing it.
The two WordPress traps that break working locators
Both routes share two failure modes that are specific to WordPress, and both look like the locator's fault when they are the site's.
Caching and optimisation plugins are the first. Tools that minify, combine or defer JavaScript will happily defer the locator's script too, and the symptoms range from a map that appears only after scrolling to a search box that does nothing. If a locator works for logged-in admins and fails for visitors, this is almost always why, because most caching plugins bypass logged-in users. The fix is excluding the locator's script from optimisation, which every major caching plugin supports, and the locator's docs should name the exact file to exclude.
Editors that escape markup are the second. Paste an embed into a paragraph block, a classic editor in visual mode, or some page builder text widgets, and the editor stores the code as text to display rather than markup to run. The page then shows the embed code itself to every visitor. The cure is always the same: the code goes in a Custom HTML block, an HTML widget, or the builder's dedicated code element, never in anything that formats text.
Who pays for the map
Google Maps and Mapbox bill per map load, so the map is the one locator cost that grows with your traffic. Plugins and services handle this two ways. Some bundle map loads into their pricing tiers, which reads as convenient and prices for the heaviest users, so crossing a tier boundary in a good month is how the bill doubles. Others have you create your own free Google or Mapbox key, and usage lands on your own account at provider rates, inside free allowances that most small and mid-size sites never exhaust.
The full arithmetic, including what each provider actually charges past the free tier, is in the Google Maps versus Mapbox cost guide. Read the map billing model before comparing plugins on price, because the sticker is the smaller number.
Judging a plugin listing in two minutes
The WordPress.org directory shows you most of what you need before installing anything.
- Last updated and tested-up-to: a locator untouched across two majors will eventually break on an update, on a weekend.
- Where the data lives: the listing or docs should say plainly whether locations sit in your database or in a service. If you cannot tell, assume the worst answer for whichever property you care about.
- What loads on pages without the locator: a plugin that enqueues its scripts sitewide taxes every page for a feature one page uses. The good ones load only where the block or shortcode appears.
- Export: however you get in, confirm how you get out. A locator you cannot export from owns your stockist list.
- Support threads: read the last month of them. The pattern of what breaks, and whether anyone answers, tells you more than the star rating.
Prepare the locations once, edit them where the team works
Whichever route you choose, the page is only as good as the location list behind it. One row per location with a stable name, full address, phone and opening hours, plus a column for anything visitors filter by. Names must stay identical between imports, because matching is by name and a renamed row becomes a duplicate pin rather than an update.
For teams where the person who knows a shop's new hours has no WordPress login, a locator that syncs from a Google Sheet removes the bottleneck: they edit the sheet, the page updates, and nobody touches wp-admin.
Where Handled Locator fits
Handled Locator gives WordPress both routes. The official WordPress.org plugin is the SaaS-backed kind: a native block and a handled_locator shortcode, with locations, filters, styling and map settings managed in the Handled dashboard. The no-plugin route is the same Custom HTML block embed described above. Either way the locator exposes 85+ settings, imports from CSV or a synced Google Sheet, and uses your own Google Maps or Mapbox key, so map usage is billed at provider cost rather than marked up.
The honest limits: locations do not live in your WordPress database, by design, so if your requirement is that every byte stays on your server, a classic PHP plugin fits that requirement and this does not. Plans start at $19 a month for 200 locations and reach 10,000 on the top plan. The WordPress guide has current install steps for both routes, and the live examples show real locators before you start a trial.
Frequently asked questions
What is the best free WordPress store locator plugin?
Free tiers differ mainly in limits and map billing. Check four things: the location cap, whether the map key is yours or metered by the vendor, whether you can export your data, and when the plugin was last updated. A free plugin that is two years stale or cannot export is expensive later. Our guide to free store locator options compares the trade-offs.
Will a store locator plugin slow my WordPress site?
Only a badly built one. The question to ask is what loads on pages that do not show the locator. A plugin that enqueues its map library sitewide slows every page for one page's feature; one that loads only where the block or shortcode renders costs the rest of the site nothing.
Why does my store locator show code instead of a map?
The embed was pasted into something that formats text, so WordPress escaped it. Move the code into a Custom HTML block, or your page builder's HTML element, and republish. The block editor showing a grey placeholder while editing is normal; judge only the public page.
Why does the locator work for me but not for visitors?
Almost always the caching plugin. Most of them bypass logged-in admins, so you see the real page while visitors get the cached, script-deferred one. Exclude the locator's script from JavaScript optimisation in the caching plugin's settings and purge the cache.
Does the locator work with Elementor and other page builders?
Yes. Use the builder's HTML element instead of the Custom HTML block, or the shortcode where the builder supports shortcodes. Elementor specifics are covered on the Elementor store locator page.
Plugin or embed: which should I pick?
Pick the plugin if your team lives in wp-admin and wants the locator managed like everything else on the site. Pick the embed if you want nothing new installed. With a SaaS-backed locator the two produce the same page from the same data, so the choice is about workflow, not features, and you can switch later without losing anything.
How do I move from another locator plugin without losing locations?
Export from the old plugin first, as CSV if it offers one, or from the database table its docs name. Reshape the columns to one row per location, import into the new locator, and fix geocoding failures in the import report before deleting anything. Keep the old plugin installed but deactivated until the new page has been live for a week.

