Google Maps DIY vs. a store locator
For a single location, an embedded Google map is often all you need. Once you have several locations with search, filters and opening hours, it gets more involved. An overview to help you decide.
Note: As of 13 Oct 2026. Prices and free quotas according to Google (Google Maps Platform pricing (external link), pricing overview (external link)), in USD, no guarantee. This page is not legal advice.
Three ways to build it with Google Maps
1. Embed a Google My Maps map. You create a map in Google My Maps, add your locations as pins and embed it with an iframe. No coding needed. What you do not get is the kind of search by postcode, filters, opening hours or result list that visitors expect from a store finder.
2. Maps Embed API. This embeds a map for one address or place via iframe. According to Google, usage is free and unlimited, but you need an API key from Google Cloud. For a single location, this is often the simplest clean solution.
3. Your own locator with the Maps JavaScript API. Here you build everything yourself: map, markers, search with autocomplete (Places API), turning addresses into coordinates (Geocoding API), result list, filters and a detail view. Flexible, but a real software project.
What Google charges since 1 March 2025
Until February 2025 there was a $200 monthly credit. Since 1 March 2025 it has been replaced by free monthly usage per SKU (per billed service): according to Google, 10,000 calls for "Essentials" SKUs, 5,000 for "Pro" and 1,000 for "Enterprise". Beyond that you pay per 1,000 calls.
Typical services for a store locator (according to Google, as of 13 Oct 2026, first price tier):
| Service | Free per month | Price per 1,000 calls after that |
|---|---|---|
| Dynamic Maps (map loads) | 10,000 | $7.00 |
| Geocoding | 10,000 | $5.00 |
| Places Autocomplete Requests | 10,000 | $2.83 |
| Place Details Essentials | 10,000 | $5.00 |
| Text Search Pro | 5,000 | $32.00 |
| Maps Embed API | unlimited | free |
A small website often stays within the free quotas. As traffic grows, you pay per map load and per search. You also need a billing account with a payment method at Google, should restrict your API key to your domain and set up budget alerts.
The real effort: everything around the map
The map itself is the smaller part. With a self-built store finder you also have to take care of:
- Development time: search, list, detail view, distance calculation, "use my location".
- Maintenance: Google changes APIs and prices; browsers and your CMS change too.
- Data upkeep: who adds new locations, who updates phone numbers? Without an admin interface, it lands on your developers.
- Opening hours: including lunch breaks, public holidays and special closures – plus an "open now" indicator.
- Filters: categories, services, countries.
- Mobile: phones need a different layout than desktops.
- Statistics: what do visitors search for, and where do they search in vain?
- Roles: can a store manager maintain their own data without seeing everything else?
A store locator such as My Store Locator covers this: 6 templates, search and filters, opening hours with two time slots and special days, CSV import, cookie-free statistics and roles down to store manager level. The map currently runs on OpenStreetMap; Google Maps as a map provider is coming soon.
Data protection: consent before loading
When a Google map loads, the visitor's browser sends data to Google, including the IP address, which may be processed in the US. Information may also be stored on or read from the device. In Germany, the common practice is therefore to ask for consent before the map loads – based on § 25 TDDDG (German Telecommunications Digital Services Data Protection Act) for access to the device and Art. 6(1)(a) GDPR for the processing. A typical setup is a placeholder with a notice that loads the map only after a click, plus an entry in your privacy policy.
This applies to the simple options via My Maps or the Embed API as well. If in doubt, have your data protection adviser check your setup – this page is not legal advice.
My Store Locator has a built-in two-click consent mode, is hosted in Germany and provides a DPA. More in our guide Store locators and GDPR.
When DIY is the right choice
To be honest: if you have one or just a few locations, you do not need a store locator. A Google map embedded via the Maps Embed API, with the address and opening hours as text on your contact page, is perfectly fine – with a consent placeholder.
Building it yourself also makes sense if you have your own development team, need to integrate the map deeply into an existing application, or have very specific requirements no ready-made product covers.
A store locator tends to pay off when you have many locations, they change often, several people maintain them, or you want to know what visitors are searching for.
Checklist for your decision
- How many locations do you show today, and how many in two years?
- Do visitors need to search by town or postcode?
- Who maintains the data – and how often does it change?
- Do you need opening hours with special days, and filters?
- How many map views do you expect per month?
- Do you have a consent solution for the map?
- Who handles maintenance when APIs or prices change?
FAQ
Is the Google Maps Embed API really free?
According to Google, yes, with unlimited usage (as of 13 Oct 2026). You still need an API key from Google Cloud.
Does the $200 credit still exist?
No. Since 1 March 2025 it has been replaced by free monthly quotas per SKU, for example 10,000 map loads for Dynamic Maps.
Do I need consent for an embedded Google map?
In Germany, asking for consent before loading is the common recommendation, because data is sent to Google. Check this for your website with your data protection adviser.
Does My Store Locator use Google Maps?
Not today – the map is based on OpenStreetMap via Leaflet. Google Maps is coming soon and will then require your own API key.
Try it with your own locations.
Create an account, import your locations, embed the map. The Free plan stays free – and you can test Pro for 14 days.