Skip to content

Geo Targeting Guide

Geo targeting lets a single listing show different operators to visitors based on their country. Instead of maintaining separate listings per region, you configure country restrictions per operator directly in the listing - one listing, no duplication.

Geo targeting is a Growth plan feature (and above).

Table of Contents

  1. How It Works
  2. Setting Up in tablrr
  3. WordPress Plugin
  4. Troubleshooting

How It Works

Country restrictions live on each operator's slot in the listing, not on the operator itself. This means the same operator can be unrestricted in one listing and UK-only in another.

The rules are simple:

  • No countries assigned → operator shows to everyone (the default)
  • Countries assigned → operator shows only to visitors from those countries

For example, given this setup:

OperatorCountries
Operator A(none)
Operator BGB, DE
Operator CGB
Operator D(none)

A UK visitor sees: Operators A, B, C, D A German visitor sees: Operators A, B, D Anyone else sees: Operators A, D

Position order is preserved.


Setting Up in tablrr

Enabling Geo Targeting

  1. Open a listing in the editor (create new or edit existing)
  2. In the operator selection section, find the Geo Targeting toggle
  3. Turn it on

When disabled, all country restrictions are ignored and the listing behaves normally. The restrictions are preserved - you can toggle the feature off and back on without losing your configuration.

Note: The geo targeting toggle is not available if your plan doesn't include the feature. Upgrade to Growth or higher to access it.

Assigning Countries to Operators

Once geo targeting is enabled, each selected operator row shows a country control between the operator name and the remove button.

  • Everywhere (default) - the operator is shown to all visitors. Click to assign countries.
  • N countries - the operator is restricted to those countries. Click to change the selection.

Clicking either state opens a searchable country picker. Select one or more countries and close the picker. The change is applied immediately in the preview.

To make a restricted operator visible to everyone again, open the picker and deselect all countries - it returns to Everywhere.

When you remove an operator from the listing, its country configuration is discarded automatically.

Previewing by Country

When geo targeting is enabled, a country selector appears above the listing preview. The options are:

  • All operators (default) - shows every operator regardless of restrictions, same as the unfiltered editor view
  • Rest of the world - shows only operators set to Everywhere, representing any visitor from a country not in your geo map
  • GB / DE / ... - one option per country you've configured; shows exactly what a visitor from that country would see

The preview updates instantly.

Tip: Always check Rest of the world before saving. It's the easiest audience to accidentally leave with an empty or incomplete listing if all your operators have country restrictions.

The country selector is hidden when geo targeting is turned off.


WordPress Plugin

Requirements

The plugin detects a visitor's country from the CF-IPCountry header that Cloudflare automatically adds to every request. Your site must be proxied through Cloudflare (orange cloud enabled on the DNS record for your domain) for geo targeting to work.

If Cloudflare is not in use, you can supply the country code yourself via the tablrr_visitor_country WordPress filter - useful if your hosting environment or CDN sets a different country header.

If the header is absent - because Cloudflare is not in front of your site, or because the visitor's country can't be determined - the listing falls back to showing all operators with no geo filtering applied.

Async Mode (Default)

By default, geo-targeted listings load asynchronously:

  1. The page renders immediately with a skeleton placeholder where the listing will appear
  2. A JavaScript request fetches the listing for the visitor's detected country in the background
  3. The listing replaces the skeleton once loaded

This mode is compatible with full-page caching plugins because the country-specific content is fetched client-side after the cached page is served.

Server-Side Mode

An alternative server-side rendering mode is available in the tablrr plugin settings. In this mode:

  • The geo-filtered listing is rendered inline when the server processes the page request
  • No JavaScript is required for the listing to appear
  • Structured data (JSON-LD schema markup) is included with the listing

Trade-off: Server-side mode is not compatible with full-page caching plugins. Because the output depends on the visitor's country, caching the full page would serve the wrong listing variant to subsequent visitors. Only use this mode if you are not using a page caching plugin.

Caching

tablrr caches a separate copy of the listing HTML for each country variant. The cache key includes the listing ID and the country code, so GB, DE, and unknown-country visitors each get their own cached response.

When you publish or update a WordPress post containing a [tablrr] shortcode, the plugin automatically schedules a background job to pre-warm the cache for all country variants. This means all your visitors to any page gets a cached response rather than triggering a live API call.

Cache entries are invalidated automatically whenever you save the listing or update any of its operators - you don't need to manually clear anything after making geo targeting changes.


Troubleshooting

Geo targeting toggle isn't visible

The toggle only appears on Growth plans and above. Check your current plan under Billing and upgrade if needed.

All visitors see the same operators regardless of country

  • Confirm geo targeting is enabled on the listing (the toggle is on)
  • If using the WordPress plugin, verify your site is proxied through Cloudflare (orange cloud on your DNS record)
  • Check that you've actually assigned countries to at least one operator - if all operators are set to Everywhere, geo targeting has no effect

Visitors from a configured country see too few (or no) operators

  • Ensure you have at least one operator set to Everywhere (no country restriction) so visitors always see something
  • Remember: restrictions are additive - there is no "hide in country X" option. Operators without a country assignment always show to everyone.

The preview country selector isn't showing

The selector only appears when geo targeting is enabled and at least one operator has countries assigned. Enable the toggle and assign countries to at least one operator.

Content isn't updating after changing geo settings

Clear the plugin cache from the tablrr > Cache Management section in your WordPress admin. tablrr-side cache is invalidated automatically, but the WordPress plugin maintains its own cache that may still hold the previous variant.