Supports adding geo coordinates, a location taxonomy, and a textual location description to a post, comment, user, or attachment. Supports adding weather data to a post or to a widget based on location. Offers choice of map displays. It supports retrieving location using the HTML5 geolocation API by
PricingFree downloadThe WordPress.org download is free. Pro versions, add-ons or external services may cost extra.
CompatibilityRequires WordPress 6.2 and PHP 7.4.
SourceWordPress plugins · Nov 13, 2026
01 / Source details
Aboutthistool.
Supports adding geo coordinates, a location taxonomy, and a textual location description to a post, comment, user, or attachment. Supports adding weather data to a post or to a widget based on location. Offers choice of map displays. It supports retrieving location using the HTML5 geolocation API by default. Clicking the location icon or ‘Lookup Location’ will retrieve the location.
As it stores the GeoData in the classic WordPress format, Geodata can also be added from other plugins.
Automatically saves location data from image metadata when uploaded as well.
Offers the opportunity to change the displayed timezone on a per-post basis for those posts from far off locations and set this based on the coordinates of the location. While Gutenberg compatible, this is not built for Gutenberg.
Privacy and Data Notice
Simple Location stores location and weather data inside posts, attachments, comments, and term meta…optionally other post types. This data respects a public, private or protected setting. Attachment data is automatically extracted from images if location is present, which could be extracted by any third-party downloading the picture unless removed. For all other data, it is provided by the user, who decides its ultimate use. Location data is made available through a geolocation provider…the default is currently HTML5 browser geolocation, for which the user must give consent to share). Other information is secured through use of third-party APIs to identify a location, calculate elevation, display maps, and weather conditions.
If you choose readings under Fill In Missing Readings, the location of each post whose weather is missing them, including posts at a private location, is sent to Open-Meteo, rounded to about a kilometer, to fill them in.
Locations and Venues
Locations uses WordPress taxonomies to allow you to generate an archive page of all posts from that location and giving it a permalink on your site. Locations are meant to reflect a more general location…for example, “Here are posts I made in California.”
Locations are divided by administrative areas. The hierarchy for locations is: * Country * Region – state, county, or province level. * Locality – city, town, or village level
You can choose to display the location over the textual address field. There is an option in settings to change this behavior.
The reverse geocoding system attempts to consistently retrieve the country code, region code, and locality for the location and add them to the location taxonomy. This can be potentially problematic, as if the returns from the locations added aren’t consistent, it will duplicate and explode the list of terms. This is the same issue that has held back venues.
FinderPress Media Auditor helps site administrators scan for broken images, missing Media Library files, unreachable media URLs, and other media issues across WordPress content. Use it to audit images, video, audio, PDFs, featured images, and attachment files without sending scan data to an external
The Accepted Payment Methods plugin is a straightforward, lightweight solution that enhances your website by displaying visually appealing icons of the payment methods you accept. This plugin is ideal for a variety of websites, including e-commerce platforms, service-oriented websites, and informati
Locations are matched using the country code, region code, and locality field, and therefore, you can edit the displayed name or the region code without issue. Due to matching issues, you may have to make some manual changes and there may be some occasional duplication.
When duplicates are created, such as two localities for the same city, select them in the Locations list and choose Merge. On the next screen, pick the location to keep; the oldest is picked by default. You can merge only locations of the same kind: countries, regions or localities. Their posts and child locations move to the one kept, the others’ names and codes are added to it so future lookups find it instead of creating the duplicate again, and the others are deleted, with their archive addresses redirecting to it.
There is no top level Location page, /location included in the plugin. You can create a page at this location and use a custom template to allow it to show a list of your locations.
Venues
Venues are meant to reflect a specific location, such as a business or point of interest. Venues were originally set up as a taxonomy, and were in the plugin unimplemented for several versions. However, due to various changes since that was set up, they were switched to a custom post type. Under this setup, each venue is represented by a URL on the site that posts can be linked to. The URL contains information about the venue. At this time, venues are shared between users and it is not assumed that each user has unique venues, though this may be a consideration in future.
Venues can be set to hide the actual location for privacy purposes, for example ‘Home’. A venue can also set the visibility of posts made there with “Visibility of Posts Here”, for example Private at home. It applies when a post’s location is looked up in the editor, found in the background, sent by Micropub, or a check-in. A visibility chosen on the post, or sent by a Micropub client, still wins.
A venue is created when you check in, such as from a Micropub client, or with a bulk location lookup of check-ins. Before creating one, Simple Location looks for the venue you already have: the same place at a venue provider, the same website or page, or the same name close by. Checking in again from another provider adds to the venue you have instead of making a second one.
In the post editor, Find Venues lists the venues near the post’s latitude and longitude: those on your site, marked Site venue, and those from your venue providers, marked New venue, each in its own group. Choosing one of your venues sets it as the post’s venue; choosing a provider’s place creates the venue first, or uses the one you already have for it.
A Micropub post whose check-in or location is a place from q=places is linked to that venue: by its page on your site, or by the provider’s identifier it was found with. A location links a venue you already have but never creates one. A private venue is only linked for users who can edit it.
If a venue keeps being matched or listed when it shouldn’t be, check “Leave out of venue lists and check-in matching” on the venue. Find Venues and Micropub clients then won’t list it, and check-ins aren’t matched to it by name, link or identifier. You can still choose it from the Venue list or link to its page, and posts at its location still find it.
Micropub clients can ask for the places near a location with the experimental query q=places , giving lat and lon or a geo URI as uri . It returns places , a list of h-cards in mf2 JSON: your own venues first, nearest first, then those of your venue provider in its own order, without the ones you already have. Each place says where it is from in provider , local for your own. Your own venues also say how many times you have been there, in visits , and when last, in last-visit , counting the posts the user asking may see. limit sets the most places, offset skips that many at the start of the list, for the next page, radius sets the search radius in meters (providers that don’t take one ignore it), filter finds places whose name matches, and local=1 lists only your own venues. Foursquare, Google, HERE, TomTom, Geoapify, Pelias, Stadia Maps and Overpass search for the filter themselves, so they can find places beyond the nearest ones; for the others, the places they return are matched by name. A private venue is only listed for users who can edit it, and a venue whose location is protected is listed without it.
The experimental query q=geo gives the details of a location: lat and lon , a geo URI as uri , url for a post or venue on your site whose location the user may see, airport for an airport’s three-letter IATA code, or plus_code for a Plus Code. It returns geo , with latitude , longitude , plus-code , elevation , timezone , localtime , address as an h-card, and map , a link to a static map on your site that never holds your map provider’s API key. width , height , zoom and style set the map. The address, an elevation that isn’t known, the map and the place after a short Plus Code ask your providers, so they need a user who can edit posts.
For a venue’s page, the Micropub source query q=source&url= returns an h-card with the venue’s details: its location as q=places gives it, visits and last-visit , parent for the venue it is inside, photo for its featured image and the photos of posts there that anyone could see, and the venues inside it under children .
A venue’s website is shown on its page. Its pages on other sites, such as OpenStreetMap, Google Maps, Foursquare or Wikipedia, are shown too when the venue’s location is public, since a map link gives away where it is. You can edit both on the venue, under Website and Other Pages.
A new venue gets one of your venue types when one fits, such as Food for a restaurant, but Simple Location doesn’t create types. When a venue has no type, the venue editor offers one, which you can add.
To combine duplicate venues, select them in the Venues list and choose Merge. On the next screen, pick the venue to keep; the oldest is picked by default. Its posts, photos, child venues, links and types then include those of the others, check-ins by the others’ names or links find it, and the others are deleted, with their addresses redirecting to it.
What is kept from venue providers
Venue providers have different terms on what a site may keep. The plugin follows the maintainers’ reading of them, below. It is your site and your decision: if you read a provider’s terms differently, or aren’t comfortable with them, choose another provider.
OpenStreetMap Overpass, Nominatim, LocationIQ, Geoapify and your own Pelias server – the place’s details are kept: address, phone, categories and links. OpenStreetMap data is under the Open Database License, which allows this with credit to OpenStreetMap contributors; a Pelias server’s other sources, such as Who’s On First and Foursquare’s open places, are open data too.
Google, Foursquare, HERE, TomTom and Stadia Maps – only the place’s identifier and links are kept, such as its Google Maps or Foursquare link and its own website. The name is the one you checked in with, the coordinates are your own, and the address is looked up with your geocoding providers. Their phone numbers, categories and addresses are not stored.
A check-
02 / Source details
Frequently asked questions.
What are the requirements to use this plugin?
Nothing else is needed to save locations. Looking up addresses, drawing maps, and adding weather and elevation use outside services, chosen under Settings > Simple Location > Providers (IndieWeb > Location when the IndieWeb plugin is installed). Some need no key: Nominatim for addresses, Open-Meteo, MET Norway and the US National Weather Service for weather, Open Topo Data for elevation, and your own weather stations. The others need an account, and an API key entered on the API Keys tab, where each service has its own section. See “How do I set up each service?”
Without a map provider, no maps are shown. Without a geocoding provider, addresses aren’t looked up. Without a weather provider, weather isn’t added.
Most services have a free allowance and charge, or stop, beyond it. The plugin only asks a service when you look up a location or publish a post, which usually stays well within it. You must follow each provider’s terms. If a key stops working, or a quota runs out, administrators are told; see “How do I know when a provider stops working?”
How do I set up each service?
Sign up with the service, create an API key, and enter it in the service’s section of the API Keys tab. Notes for each:
Google Maps Platform – needs a billing account, and gives each API a monthly free allowance. In the Google Cloud console, enable the APIs for what you use Google for: the Maps Static API for maps, the Geocoding API for addresses, the Elevation API for elevation, and the Places API (New) for venues. Restrict the key to those APIs. For maps, see also “How do I protect my map API keys?”
Mapbox – a public token (starting pk.) draws the maps. To list your own styles in the settings, enter a secret token with the styles:list scope as the Mapbox API Key, your username, and the public token as the Mapbox Map API Key; the secret token is never shown on your site.
HERE – one API key for maps, addresses and weather.
LocationIQ – one API key for maps, addresses and venues.
Foursquare – venues, with a service API key from the Foursquare developer console. Place search is a Pro endpoint, billed per request after a small free allowance.
MapQuest – one API key for maps and addresses.
Geoapify – one API key for maps and addresses.
TomTom – maps.
Stadia Maps – static maps need a paid plan. The same key finds venues.
OpenRouteService – one API key for addresses and elevation.
GeoNames – addresses and elevation, with your username instead of a key. After signing up, enable the free web services on your GeoNames account page, or every lookup is refused.
Pelias – addresses and venues from a Pelias server: enter its URL, and its API key if it needs one.
OpenWeatherMap – the plugin uses One Call API 3.0, which needs its own “One Call by Call” subscription, with a payment card, even for the free daily calls. A key without it is refused.
Weatherbit , Weatherstack , Visual Crossing and Pirate Weather – an API key each.
Xweather – a client ID and client secret. People who share their personal weather station with PWSWeather.com get a free contributor account. You can choose whether personal weather stations are used.
Meteostat – historic weather, with an API key from RapidAPI.
Nominatim, Open-Meteo, MET Norway, Open Topo Data and the National Weather Service need no key. Nominatim’s public server is for light use only; you can set your own, with the public one as a fallback. Open-Meteo is free for non-commercial use; commercial use needs a key. Open-Meteo and Open Topo Data can also use your own server.
The custom map provider, custom station provider and WeeWX use your own servers; see their questions below. Compass, Dawarich and GeoPulse find where you are; see “How do I use Dawarich or GeoPulse?”
How do I add support for location to a custom post type?
The software uses two custom features to declare that the post type supports these features, otherwise the location and weather features do not show in the editor.
How do I choose the look of my maps?
The Map Style setting, under Map Settings, chooses a family: Standard, Light, Dark, Satellite or Terrain. Each map provider draws its closest style, so maps keep their look when you change providers. A provider without that kind of style, such as Geoapify for satellite, draws its standard style. Each provider also has its own style setting, with all its styles. It is empty by default, which uses the Map Style setting; choosing a style there uses that style instead. Sites that chose a provider style before version 6.1.0 keep it. A post can have its own style family too, chosen under Map Style in its location box, such as Satellite for a hike while the site’s maps stay Standard. If the map provider has no style of that kind, the post’s map uses the site’s style, and the post keeps its choice for a provider that has one. A post with its own style other than Standard keeps it in dark mode. Theme functions take it as an argument too, for example get_post_map( $post, array( 'style_family' => 'satellite' ) ) . Google’s light and dark styles are its road map recolored with Google’s silver and night styling.
With Dark Mode Maps on, maps also have the provider’s dark style for visitors whose system is set to dark mode. Browsers only load the one they show. For providers served from your site, the dark style is stored as its own image.
Why are my maps served from the provider instead of saved as images to my site?
The terms of service of most map providers expressly forbid this. While the likelihood of one of these providers coming after an individual is slim, this would be a violation of WordPress plugin guidelines. This is why the plugin does not save maps to the media library.
Geoapify’s terms allow storing its static maps, so Geoapify maps are served from your site. The first time a map is shown, your site fetches it from Geoapify, stores it in wp-content/uploads/sloc-maps , and serves it from there. Your API key stays on your server, and visitors’ browsers never contact Geoapify. The image links are signed with a secret only your site knows, so nobody else can use your site to request other maps with your key.
Stadia Maps maps are stored the same way when you enter a Stadia Maps API key. Your site then fetches them from Stadia’s cacheable endpoint, whose images you may keep for as long as you have a paid Stadia subscription. Each map from the cacheable endpoint costs many more credits than a standard one (see Stadia’s pricing), and each high-density copy and each refresh is a new map, so consider setting Refresh Stored Maps After to 0. Without a key, or with Serve Maps From This Site turned off, maps load from Stadia’s standard endpoint, which may not be stored.
Maps from your own custom map server (see the custom map provider below) are stored the same way, when it signs its URLs or needs no key. Maps the server marks as private, such as Stadia Maps, whose terms forbid caching, are never stored: visitors are sent to the server’s signed image link instead. So are maps where the server had to draw its default map, which are asked for again after 5 minutes. With only a plain client key, the server marks every map private, so those maps are loaded from the server. Maps from your own TileServer GL server are stored the same way. It needs the full tileserver-gl build, version 4.6 or later; the light build can’t draw static maps. Choose its style from the ones the server lists. Each location is a dot in the marker color, or set a marker icon from the server’s icon folder to draw that instead. The credit under the map, when you choose it there, is the one the server gives for the style; the credit on the image is the server’s own static attribution text, set in its configuration. Images are fetched by your site’s server, so a TileServer GL on a private address, such as localhost, needs WordPress’s http_request_host_is_external filter to allow it.
These settings appear under Map Settings when your map provider allows storing its maps: * Serve Maps From This Site: on by default. Turn it off to load maps from the provider, with the API key in the image link. * Refresh Stored Maps After (Days): 30 by default. After this many days, the next page that shows a map fetches it again and replaces the stored image in place. Pages cached with the old image keep working. If the provider can’t be reached, the stored image is still shown. 0 never fetches stored maps again. A provider whose terms limit how long maps may be stored is refreshed at least that often. * Clear Stored Maps: deletes every stored map image. Stored maps are otherwise never deleted, including maps of locations you later changed or made private. Pages kept by a page cache may show broken images until their cache expires.
How are weather providers credited?
Most weather providers’ terms ask for a credit where their weather is shown, so weather looked up from a provider records which one it came from, and its credit is shown with it, linked to the provider. The Weather Credits setting, under General Settings, puts the credits next to the weather (the default) or once in the page footer. Open-Meteo requires its credit next to its data, so it stays there either way. Providers without a credit requirement have no credit: the US National Weather Service, whose data is public domain, and HERE, Visual Crossing, weatherstack and Pirate Weather, where no requirement was found. Weather saved before version 6.1.0, or entered by hand, doesn’t record a provider, so it has no credit. Environment Canada’s data is under the Open Government Licence – Canada, which asks for the source to be credited. OpenWeather and Weath