Restrict site access by country (geoblock)

Sometimes it may be useful or required to restrict or redirect a visitor's access to a site based on what country the visitor is located in. Seravo has a feature integrated to do these restrictions, and here's how to configure it.

Restrict access with PHP or NGINX

Using the Seravo-specific HTTP header X-Seravo-Geo-Country-Code you can achieve more specific restrictions.

Forward visitors to another site based on country code with PHP

Useful e.g. if you have a multilingual site and you want to forward visitors directly to the correct language version.

    switch (strtolower($_SERVER['HTTP_X_SERAVO_GEO_COUNTRY_CODE'])) {
        // Forward Finnish visitors to
        case 'fi':
        // Forward Swedish visitors to
        case 'se':
            // Do nothing, continue processing in WordPress
} else {
    error_log("Error: X-Seravo-Geo-Country-Code header not found!");

Country code based redirect with NGINX

The same can be implemented with the NGINX web server.

# Redirect Finnish visitors to
if ($http_x_seravo_geo_country_code = "FI") {
  return 301;

# Redirect Swedish visitors to
if ($http_x_seravo_geo_country_code = "SE") {
  return 301;

Login page restrictions with WP-CLI

It is also possible to set a location-based restriction for the WordPress login page. This feature is currently being implemented. Meanwhile, we recommend installing a reCaptcha plugin for login pages and making use of two-factor authentication (2FA) when logging in.

Further reading

Read more on restricting access on your WordPress website from Seravo's Developer Docs.

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.