This plugin hasn’t been tested with the latest 3 major releases of WordPress. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.

WP Engine GeoTarget


WP Engine GeoTarget integrates with the variables on your WP Engine site to display content catered to the visitor’s location. With the ability to access variables from as broad as country to as specific as latitude and longitude, your website can now display geographically relevant content.


  • Create marketing campaigns targeted only at certain locations.


  • Redirect incoming traffic to content in the local language or currency.
  • Businesses with local branches can direct customers to a relevant physical location or local microsite.


  • Filter out merchandise or services that are not available in a certain locale.
  • Display country-specific shipping, tax, or sales information.

Legal Requirements

  • Filter required legal notices from countries for whom those notices may not be relevant.

* Please Note *

Customers on Premium and Enterprise plans can use this plugin at no additional cost. If you are on another plan type and would like to use GeoTarget on one of your sites, you can add it to your plan here. This will not function outside of the WP Engine environment.

Location Variable Shortcodes

You can use any of the following location variable shortcodes to return the various geographic location the user is visiting your site from:

1) Continent: [geoip-continent]

2) Country: [geoip-country]

3) Region: [geoip-region]

  • In the US region will return States
  • In Canada region will return Provinces
  • Outside the US/CA this will return a Region number. Please note region numbers are not unique between countries

4) City: [geoip-city]

5) Postal Code: [geoip-postalcode]

  • This variable is only available in the US due to limitations with the location data GeoTarget uses

6) Latitude: [geoip-latitude]

7) Longitude: [geoip-longitude]

8) Location: [geoip-location]


Hi, and welcome to [geoip-city]! The place to be in [geoip-region],[geoip-country].

A visitor from Austin, Texas would see the following:
Hi, and welcome to Austin! The place to be in TX, US.

Localized Content

[geoip-content country="US"]Your US specific content goes here[/geoip-content]

The content shortcode allows you to hide or show specific content based on visitor geographies:

Below are all the supported geography options, this allows to you SHOW content for only specific locations:

  • continent
  • country
  • areacode
  • region
  • city
  • postalcode

Below are all the supported negative geography options, this allows to you HIDE content for only specific locations:

  • not_continent
  • not_country
  • not_areacode
  • not_region
  • not_city
  • not_postalcode

Examples of the Content Shortcode

This will display “Content just for US visitors” strictly for visitors viewing from the United States.

[geoip-content country="US"] Content just for US visitors [/geoip-content]

This will display “Content just for everyone in Texas and California” strictly for visitors from Texas and California.

[geoip-content region="TX, CA."] Content just for everyone in Texas and California [/geoip-content]

You can mix and match geography and negative geography options to create verbose logic in a single shortcode:

[geoip-content country="US" not_city="Austin"]Content for US visitors but not for visitors in Austin[/geoip-content]


There is a single limitation in the logic that lets you filter content for multiple geographic areas.

You can progressively limit the area that content is shown in. But once your content is hidden from an area, a subset of that area can’t be added back in.

For example,
If I limit my content to Europe, then limit my content from Great Britain, I can’t go back and show it to London.

Creative Work Arounds

Limit content to some regions of a country (or some cities of a state)

You want to show an offer for free shipping to every state in the US but Alaska and Hawaii. You may be inclined to write something like


[geoip-content country="US" not_state="AK, HI"]Lorem ipsum dolor sit amet[/geoip-content]

Instead, show it to all other 48 states


[geoip-content state="AL, AZ, AR, CA, CO, CT, DE, FL, GA, ID, IL, IN, IA, KS, KY, LA, ME, MD, MA, MI, MN, MS, MO, MT, NE, NV, NH, NJ, NM, NY, NC, ND, OH, OK, OR, PA, RI, SC, SD, TN, TX, UT, VT, VA, WA, WV, WI, WY"]Free shipping on all orders over $50![/geoip-content]

Duplicate location names

You want to show discount airfare on a flight to Paris, France. The content should show to all of the US and France, but not Paris itself.


[geoip-content country="US, FR" not_city="Paris"]Fly to Paris for only $199![/geoip-content]

The problem here is that Paris, Texas will be hidden. The solution? Just have two geoip-content shortcodes.


[geoip-content country="FR" not_city="Paris"]Fly to Paris for only $199![/geoip-content][geoip-content country="US"]Fly to Paris for only $199![/geoip-content]

Adding an area into an omitted region

You want to show an ad written in Spanish to all of South America except for Brazil. Brasilia, however, has enough Spanish speakers that you want to include Brasilia.


[geoip-content continent="SA" not_country="BR" city="Brasilia"]Lorem ipsum dolor sit amet[/geoip-content]


[geoip-content continent="SA" not_country="BR"]Venta de la Navidad en los adaptadores USB[/geoip-content]

[geoip-content city="Brasilia"]Venta de la Navidad en los adaptadores USB[/geoip-content]

Calculate distance between points

You have a utility function that will calculate the distance from your provided lat/lng coordinate to the visitor’s location in either miles or kilometers. This can be useful for determining approximate distances, as results may be cached at the state or country level, depending on your configuration.

Example use:

$latitude  = 30.268246;
$longitude = -97.745992;
$geo = WPEngine\GeoIp::instance();
if ( false !== $geo->distance_to( $latitude, $longitude ) ) {
    $miles_to_wp_engine = $geo->distance_to( $latitude, $longitude );

Testing Parameters

You can use the following URL parameters to test how your localized content will appear to visitors from various geographic locations. You can add any of the parameters below to any URL of a page using the GeoTarget shortcodes or API calls:

Spoof visitor from the state of Texas:

Spoof visitor from the United States:

Spoof visitor from Austin, Texas

Spoof visitor from the U.S. zip code 78701:

Please note: full page redirects and TLD redirects still need to be implemented with the necessary API calls.


  • Authoring a new post with GeoTarget shortcodes
  • An example post using GeoTarget shortcodes


  1. Upload wpengine-geoip to the /wp-content/plugins/ directory
  2. Activate the plugin through the ‘Plugins’ menu in WordPress

Please view the ‘Other Notes’ tab to see all of the available GeoTarget shortcodes


1) Will this work outside of the WP Engine hosting account?

No, this will only work within the WP Engine environment. This will not work for sites hosted on other web hosts.

2) Are there any other restrictions to using this plugin?

Yes. On Startup, Growth, and Scale plans the GeoTarget feature is available as an add-on. For Business and Premium plans or once you have added the GeoTarget add-on you will need to reach out to the Support Team to fully enable GeoTarget for your site.

You can read our full GeoTarget activation guide here.

3) What variables do I have access to?

Continent, country, state, city, zip, latitude, longitude.

4) How do I sign up for a WP Engine Account?:

That’s easy! Signup here.

5) I installed the plugin and used a shortcode or API call and it isn’t working.

Please contact the WP Engine Support Team.


May 16, 2024
Most of the 1-star reviews for this plugin are from people who feel that the plugin is “misleading” in that it’s only for WP Engine customers. Note that it’s not called “WP GeoGarget”. It’s not misleading in that the very first sentence on the Details tab of the plugin says… “WP Engine GeoTarget integrates with the variables on your WP Engine site to display content catered to the visitor’s location.”For WP Engine customers, it works perfectly. I’m a little worried that it hasn’t been tested with the latest 3 major releases of WordPress. That’s my reason for a 4-star rating. I’m worried it will break and I’ll have a communications emergency on my hands.


July 28, 2023
needs money
October 27, 2021
Another plugin does not work unless with monthly $$$
January 24, 2020
In the description the plugin states, “This will not function outside of the WP Engine environment.” If you are NOT a WP Engine customer – hosting your WP website with them – this plugin WILL NOT work. I confirmed with WP Engine sales.
March 6, 2019
After having spent few hours trying to work the plugin’s WPEngine\GeoIp::distance_to() method I found that the code has logical bug which caused the return of wrong values. For a product WP Engine is charging $30 / month this is not acceptable. I contacted the WP Engine support, but they said they do not offer development support, hmmm, okay!
Read all 15 reviews

Contributors & Developers

“WP Engine GeoTarget” is open source software. The following people have contributed to this plugin.


Translate “WP Engine GeoTarget” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • Fix for development sites that call the continent method
  • Bump for WP 5.5 compatibility


  • Optimize plugin name rename loop
  • Bump for WP 5.2 compatibility


  • Bump for WP 5.0 compatibility


  • Fix for anchor tag escaping in admin notice
  • Fix issue with code blocks in readme


  • Updating branding to GeoTarget
  • Readme update


  • Bumps version number for WP 4.9 compatibility
  • Updates shortcode usage examples


  • We’re escaping our output. AND we’re escaping our output in a way where the code will actually work!
  • We’ve also gotten rid of any bleeding-edge JavaScript. Sure, it’s cool. But a plugin that works for everybody is even cooler.


  • When you dismiss the notice on development websites, it stays dismissed. Like it should.
  • The readme’s code blocks actually have code in them now. Because what’s the sense of a code block without code in it?


  • Adds a utility function for calculating distances
  • Bumps version number for WP 4.5 compatibility


  • Bumps version number for WP 4.4.2 compatibility


  • Fixes logic for nested parameter selectors in content shortcode
  • Now supports nested shortcodes. You can use shortcodes inside the [geoip-content] shortcode
  • Updated Documentation
  • Bumps version number for WP 4.3 compatibility


  • Fixes logic for negated parameters in content shortcode
  • Allows the plugin to run on development sites


  • Adds continent shortcode
  • Adds content shortcode for localized geographic content
  • Adds testing parameters to spoof visitor location
  • Bumps version number for WP 4.2.2 compatibility


  • Renames longitude environment variable
  • Bumps version number for WP 4.2 compatibility


  • Changes to readme.txt


  • Initial release


  • Removes plugin dependency management artifacts


  • Add shortcodes for postal code, latitude and longitude.


  • Adds shortcodes for city, region, and country.
  • Displays admin notice when GEOIP environment variables are absent.
  • Formatting updates to readme and file headers.


  • Code cleanup for WordPress coding standards and white space.


  • Change action to react at ‘init’.


  • Add static function and singleton construction.


  • Initial version