The geolocation service is powered by an IP-to-location API. When a user visits a page with a geolocation condition or DKI shortcode for the first time during their session, a request is sent to the geolocation database to compare the user’s IP with the location information stored in the database.
A geolocation session starts when a visitor first accesses a page with a geolocation trigger or a Geolocation DKI shortcode and lasts until the visitor closes their browser or has been inactive for 25 minutes (note that this time frame may vary slightly depending on the browser and server hosting the website).
Not every page view should count as a session!
If you are experiencing issues with your session count, it is most likely due to bots visiting your site and consuming your session quota.
To identify and block bots, If-So offers two options:
The “Block Bots” mode allows you to automatically prevent Search Engine Crawlers, CURL Requests, and other bots from accessing the geolocation service.
When the “Block Bots” mode is enabled, bots will be able to access your site as usual, but they will be blocked from accessing the geolocation service. Instead, they will be served with the default content version (or “fallback” in case you are using the Geolocation DKI shortcodes)
To enable the “Block Bots” mode, follow these steps:
The “Bot Blocking” mode enables you to automatically prevent Search Engine Crawlers, CURL Requests, and other bots from accessing the geolocation service.
The “Bots Block” mode identifies bots by searching for commonly used terms in the User-Agent header. The following terms, if present in the User-Agent, will trigger a block:
Please note that while the “Bot Blocking” mode is designed to capture the majority of bot traffic, it may not completely block all bots. Keep in mind that the User-Agent can be easily manipulated, which can potentially bypass the block.
If necessary, you can utilize the “Log geolocation requests” option to manually identify IP addresses that consume your session quota excessively. By logging these requests, you can keep track of suspicious activity and take measures to manually block those IPs as needed.
To exclude a specific IP from being blocked by the “Bots Block” mode, you can whitelist the IP address by adding the following shortcode at the end of your functions.php file:
add_filter('ifso_geo_whitelist',function($allow){
$allow['ip'] = ['X.XX.XX.XXX','Y.YY.YY.YYY'];
return $allow;
});
Please ensure to replace ‘X.X.X.X‘ and ‘Y.Y.Y.Y‘ with the respective IP addresses you wish to whitelist.
If you have enabled the log file and are consistently discovering new IPs that exhaust your sessions quota by generating numerous bot sessions, please ensure that you load dynamic content using Ajax. Based on our experience, loading content with Ajax helps prevent many bots from utilizing the geo sessions.
If you don’t want to automatically block search engines and other bots, If-So offers a log feature that records each geolocation request, including the IP and date and time of the request.
By analyzing this log, you can pinpoint the IPs of bots that are causing the issue and block them from the geolocation service (They will still be able to visit the site, but the geolocation service will not be available for them).
The example below shows an IP belongs to a data center:
*Please note that enabling the geolocation log file may slow down the loading speed of pages with a geolocation condition. It is recommended to disable the log file after collecting the necessary information.
If you decide to block certain IP addresses, add the following code to your function.php file, and replace the XX.XX… and YY.YYY… placeholders with the IPs you want to block.
add_filter('ifso_exclude_from_geo',function($exclude){ $exclude['ip'] = ['XX.XX.XXX.XXX','YY.YYY.YYY.YYY']; return $exclude; });