Table of Contents
Cache and Geotargeting
By general rule page cache is NOT COMPATIBLE with geotargeting. By definition page cache is like a snapshot of all your dynamic content that it's saved into an HTML file.
That means that if you place for example a shortcode to display the user country and the first user that visits the page is from Argentina, the next user will see the cached page and will show also Argentina.
To avoid that you need to exclude that page from cache and that's how normally works in WordPress.
Cache with GeotargetingWP
On GeotargetingWP plugins we tackle page cache in different ways. The most important one is that we are compatible with a couple of cache plugins and also some hosting providers. Hosting with cache based on geolocation is the best way for using GeotargetingWP in your site.
WP Rocket: By default it creates a different cache version for each country.
WpRocket mode only works when AJAX mode is turned off.
If you need to create different cache pages for cities or states you will need to add some code in your site. You can extend this with filters for states or cities but be aware that enabling it will decrease performance in cache and more cached version of each page needs to be generated.
First load will be uncached until cookies and created for every user.
Extend cookies or disable them entirely
Wp Super Cache
Wp Super Cache: The plugin is managed by the company behind of WordPress and it's a really solid plugin. In order to use it with our plugins you need to use PHP legacy mode and enable late INIT option. That will have the page cache run after the plugin detects the user. (Not available in all hostings)
If you have any other cache plugin or hosting static cache such as varnish, this is the way to go, otherwise your users will see a cached version without their geolocation version.