The geolocation session count doesn’t seem accurate

To prevent If-So from counting a geolocation session when users browse from page to page and to optimize the website performance, If-So stores a session with the user’s location and uses the data during the user’s journey.

A geolocation session begins when a visitor first visits a page with a geolocation trigger and ends when either the visitor closes the browser or after 25 minutes of inactivity (this might vary slightly between browsers and the server on which the website is hosted).

My sessions count doesn’t seem to behave as described

A problem with the session count is usually caused by one of the following:

  1. Your website (server) doesn’t store sessions
  2. Bots are visiting the site

Troubleshooting – step-by-step

  1. On your WordPress dashboard, go to If-So > Geolocation and check your sessions count.
  2. In a new incognito window, visit a page where you use the geolocation service (a page with a trigger, Geolocation DKI shortcode, conditional Elementor or Gutenberg block, or similar).
  3. Go back to the If-So > Geolocation page, refresh the page, and check the count.
    A single geolocation session should be counted
  4. Go back to the incognito window, refresh the page, and recheck the session count.
    No session should be counted.
  5. If a session was counted, it might indicate that it wasn’t stored on your browser. Go to If-So > Settings, and check the “Disable use of PHP sessions” option.
  6. Repeat steps 1 to 4.

If the problem wasn’t solved, there are good chances that the problem is bots visiting your website.

  1. Go to If-So > Settings and check the “Page caching compatibility” option. It might prevent or at least reduce the sessions overcount.
  2. If the problem persists, go to If-So > Settings and check the “Log geolocation requests.” Checking the option will create a log file containing all geolocation requests, including the IP and the exact time.
  3. Check the geolocation log to see if you see IPs with more than a single record appearing in a short period or ones that repeat a lot. If you find such IPs, you can enter them here and try to gather more information regarding their source. For example, if the IP points to a data center (like Google, Amazon, etc.), it could indicate that it’s a bot.

The example below shows an IP belongs to a data center

*Please note, enabling the geolocation log file might affect the loading speed of pages with a geolocation condition. We highly recommend disabling the log once you receive the relevant information.

Blocking an IP

If you decide to block a certain IP, add the code below to your function.php file, and replace the XX.XX… and YY.YYY… with the IPs you decided to block.

The code will only block the IPs from the geolocation functionality, not from accessing the site.

add_filter('ifso_exclude_from_geo',function($exclude){ $exclude['ip'] = ['XX.XX.XXX.XXX','YY.YYY.YYY.YYY']; return $exclude; });