Geo-Redirect Visitors to a Localized Website

Sheharyar Malik
By Sheharyar Malik Senior Software Engineer
Posted on March 6, 2024 | 3 min read
Geo-Redirect Visitors to a Localized Website
Back to All Posts

Is your business present in more than one region in the world? Do you have a customer base in multiple regions of the world? If yes, then you must have the website visitors from all over the world.

When the visitors hit your business website, do they see:

  • a dedicated page for their location (Geo-marketing)
  • the content on your website in their local language (Content Localization)
  • the products' prices in their local currency (Local Pricing)

You're missing tremendous opportunities for geotargeting if you're doing none of these things. Your visitors face a barrier of language, currency or products unrelated to their region. That enhances the friction between your business and the buyers.

IP location services make location-based marketing easier for online sellers. Here are the steps to geo-target a visitor on your business site:

  1. Get the visitor's IP-location
  2. Validate the visitor's region and see if you're geotargeting the visitors from that region
  3. Redirect or display the localized content to the visitor

Here is how to do it using IPGeolocation.io API:

Before moving on to code examples, you need an API key to use IPGeolocation.io API. If you do not have an account at IPGeolocation.io, then:


Geotarget Your Visitors using jQuery SDK

Open a text editor and open the page, where you want to display localized content, of your website, say index.html.

Add the following script in the head tag of the page.

<script src="https://cdn.jsdelivr.net/npm/ip-geolocation-api-jquery-sdk@1.1.2/ipgeolocation.min.js"></script>

Add another script block in the head tag of the page.

<script>
// Enable sessionStorage usage to store API response on client-side. This avoids duplicate API calls for a visitor visiting multiple pages during single visit disabling.
_ipgeolocation.enableSessionStorage(true);

// Disable async calls to ipgeolocation.io API.
_ipgeolocation.makeAsyncCallsToAPI(false);

// Fetch only the `country_code2` field from the response, excluding rest of the response
_ipgeolocation.setFields("country_code2");

// Get ipgeolocation for the visitor's IP address. Replace "YOUR_API_KEY" with the API key from the ipgeolocation.io dashboard.
_ipgeolocation.getGeolocation(redirectToLocalizedWebsites, "YOUR_API_KEY");

function redirectToLocalizedWebsites(ipGeolocationResponse) {
  // This plugin returns country_code2 at the top level of the response.
  const countryCode = ipGeolocationResponse && ipGeolocationResponse.country_code2;

  // If the lookup failed, leave the visitor on the current site.
  if (!countryCode) return;

  // Pick the target site first, then redirect only if the visitor isn't already on it.
  const hosts = { US: "us.site.com", CA: "ca.site.com", AU: "au.site.com" };
  const host = hosts[countryCode] || "global.site.com";

  if (window.location.hostname !== host) {
    window.location.replace(`https://${host}/`);
  }
}
</script>

Geo-redirecting Your Visitors using PHP

Open the home page of your website, say index.php, in a text editor.

Add the following code at the very top of index.php, before any HTML output. PHP can only send a redirect header before the page starts rendering.

<?php
// query ipgeolocation.io API and returns JSON response
function get_geolocation($apiKey, $ip, $lang = "en", $fields = "*") {
  $url = "https://api.ipgeolocation.io/v3/ipgeo?apiKey=".$apiKey."&ip=".$ip."&lang=".$lang."&fields=".$fields;  
  $cURL = curl_init();
  
  curl_setopt($cURL, CURLOPT_URL, $url);
  curl_setopt($cURL, CURLOPT_HTTPGET, true);
  curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($cURL, CURLOPT_HTTPHEADER, array (
    "Accept: application/json"
  ));

  return curl_exec($cURL);
}

// get ipgeolocation for the visitor's IP address. Replace YOUR_API_KEY with your API key.
$json = get_geolocation("YOUR_API_KEY", $_SERVER["REMOTE_ADDR"], "en", "location.country_code2");
$geolocation = $json === false ? null : json_decode($json, true);

// The v3 response nests the country code under "location".
$countryCode = $geolocation["location"]["country_code2"] ?? null;

// If the lookup failed, don't redirect: leave the visitor on the current site.
if ($countryCode !== null) {
  // Pick the target site first, then redirect only if the visitor isn't already on it.
  $hosts = ["US" => "us.site.com", "CA" => "ca.site.com", "AU" => "au.site.com"];
  $targetHost = $hosts[$countryCode] ?? "global.site.com";

  if ($_SERVER["SERVER_NAME"] !== $targetHost) {
    header("Location: https://" . $targetHost . "/", true, 302);
    die();
  }
}
?>

Related Articles

VPN Detection False Positives: Stop Fraud, Not Customers
VPN Detection False Positives: Stop Fraud, Not Customers

A VPN flag can be right about the address and still wrong about the customer. See where VPN detection false positives come from, the context that separates a privacy-minded customer from a fraudster, and how to measure the good users your rules turn away.

Posted on November 4, 2026
Read More: VPN Detection False Positives: Stop Fraud, Not Customers
How Should You Use an IP Threat Score?
How Should You Use an IP Threat Score?

Set IP threat score rules per action, learn which flags should change the answer, and test it all in shadow mode. IPGeolocation.io returns one of the most detailed security responses in one call: 27 fields behind every score.

Posted on October 23, 2026
Read More: How Should You Use an IP Threat Score?
Residential Proxy Detection: How It Works, Why It's Hard
Residential Proxy Detection: How It Works, Why It's Hard

Residential proxies make automated traffic look like real households, which is exactly why IP reputation checks miss them. Here is how detection actually works: provider attribution, network and behavior signals, live connection analysis, and confidence scores instead of binary blocks.

Posted on July 27, 2026
Read More: Residential Proxy Detection: How It Works, Why It's Hard
What Is VPN Detection and How Does It Work?
What Is VPN Detection and How Does It Work?

VPN detection identifies traffic routed through VPN servers before it reaches your app. Here is how the two signal families work, what they miss, and what to do with a positive result.

Posted on July 27, 2026
Read More: What Is VPN Detection and How Does It Work?
iCloud Private Relay vs Cloudflare WARP, Explained
iCloud Private Relay vs Cloudflare WARP, Explained

iCloud Private Relay and Cloudflare WARP both hide a visitor's real IP address, but they are built for different jobs and hide it in different ways. Private Relay protects Safari browsing, DNS queries, and unencrypted HTTP app traffic through a two-hop relay system. WARP is a whole-device tunnel through Cloudflare's network. Both keep the user near their real region, and, as you will see below, our detection API flags both as relays. If you run a website, an app, or a fraud pipeline, you meet b

Posted on July 23, 2026
Read More: iCloud Private Relay vs Cloudflare WARP, Explained
IP Geolocation Data: Built, Not Guessed
IP Geolocation Data: Built, Not Guessed

A lot of weak "IP geolocation data" is just a WHOIS guess dressed up with marketing. Here is how we actually build ours, layer by layer, from registry data and geofeeds to active measurement and verification, and how accurate it really is.

Posted on July 13, 2026
By Mudassar Tariq
Read More: IP Geolocation Data: Built, Not Guessed

Subscribe to Our Newsletter

Get the latest in geolocation tech, straight to your inbox.