How long should a geolocation popup remember a choice?
By Beacon Wave Studio · · 7 min read
Every geolocation popup has to answer a question its designer rarely thinks about: when a shopper says "no thanks, I want to stay here", how long should that answer hold? Ask again on the next page and you have built the most annoying thing on the internet. Never ask again and the shopper who was on holiday when they clicked will be stuck with the wrong store for life. The setting that controls this is small, usually a number of days, and it quietly decides how the whole feature feels.
This article explains what GeoBeacon stores when a shopper decides, how the remember period behaves in popup mode and in redirect mode, what happens at zero days, and how to test a store without being locked out by your own earlier clicks.
What is stored, and where
When a shopper clicks either button in the GeoBeacon popup, the script writes one small entry to the browser's localStorage under your store's domain. It holds two values: the choice, go or stay, and a timestamp for when the choice expires. Nothing is sent to our servers, because GeoBeacon has no servers in the shopper's path; country detection uses Shopify's own endpoint from the browser, as described in geolocation popups and cookie banners under GDPR. The entry is not a cookie, so it is not sent with every request, and it is readable only by pages on the same domain.
In redirect mode there is no button to click, so the entry is written at the moment the shopper is sent to the destination. That is what makes "redirect automatically" tolerable: a shopper who uses the theme's country selector to come back is not immediately redirected again, because the script sees the remembered redirect and stays quiet for the rest of the period. Shopify's own automatic redirection behaves in a comparable way, which is one reason you should not run both at once; the redirect loop article goes into the pairings that fight.
Where the check sits in the decision
The order in which GeoBeacon decides whether to do anything matters for performance as much as for behaviour. On every page load the script first checks whether the app is enabled, whether it is running inside the theme editor, whether the visitor looks like a bot, and whether the URL carries the opt-out parameter. Then it checks the remembered choice. Only after all of that does it look at excluded paths, the referrer and the rules, and only if nothing has stopped it does it ask Shopify which country the shopper is in.
So a remembered shopper costs nothing: no detection request, no rule evaluation, no popup markup. The storefront script simply logs that it skipped for the reason "remembered" and exits. On a returning visitor's session that is the common path, which is why the remember period is as much a page-speed setting as a courtesy. Detection itself is also cached per browser tab for six hours, so even a shopper who has not yet chosen is not re-detected on every page.
Choosing the number of days
The field in GeoBeacon's Behaviour settings is "Remember the visitor's choice for", in days, from 0 to 365, with 30 as the default. There is no single right value, but there are three questions that point to one.
- How often do your shoppers' circumstances change? A store selling to expatriates, students or frequent travellers should ask again sooner; a shopper who said "stay on the UK store" from a hotel in Spain wants to be asked again when they are home. Seven to fourteen days suits that audience.
- How often do they come back? If a typical repeat purchase is quarterly, a 30-day memory means every returning shopper is asked again, which is fine if the popup is small and wrong if it is a full-screen interstitial. Ninety days keeps most repeat buyers quiet; the copy guidance in popup copy examples matters more the shorter the period is.
- How much does a wrong market cost? If choosing the wrong country means seeing prices in a currency they cannot pay in, or shipping options that do not exist, err shorter so the mistake self-corrects. If markets differ only in language and currency display, longer is harmless.
Thirty days is the default because it is the point where most stores stop getting complaints from either direction. Change it when you have evidence, not before.
What zero days does
Setting the field to 0 means "ask on every visit", and the obvious implementation would ask on every page. GeoBeacon does not do that. At 0 days the choice is still stored, for about 30 minutes, so a shopper who dismisses the popup on the home page is not shown it again on the collection, product and cart pages of the same session. The popup returns for their next visit. This is the right setting for a store that genuinely wants to suggest the local market every time, for instance a brand with wildly different regional catalogues, and it avoids the per-page nagging that gets geolocation apps uninstalled.
Testing without being locked out
The remember period is the commonest reason a merchant believes GeoBeacon is "not working": they tested on Monday, clicked stay, and on Tuesday nothing happens. The choice is in that browser, for your own store, for the period you set. Three ways around it:
- Add
?geobeacon=XXwith any two-letter country code to a storefront URL. A forced country ignores the remembered choice and does not write a new one, so you can walk through every rule in a row from one tab. The full procedure is in testing a geolocation redirect without a VPN. - Use a private window. localStorage in a private window is discarded when it closes, so each new private window is a first-time visitor.
- Clear site data for your store's domain in the browser's developer tools, which removes the entry along with the six-hour detection cache.
Shoppers do not need any of this. For them the memory expires on its own, and the theme's country selector works at any time regardless of what GeoBeacon remembers.
Remembering a redirect vs remembering a popup
The two modes store the same entry but it means slightly different things. In popup mode, go and stay are both remembered, so a shopper who accepted the suggestion will not see the popup again on the new market either, as long as that market is a subfolder on the same domain and so reads the same storage. In redirect mode only the redirect is remembered; there was no choice. If the destination is a different domain, a market on its own domain or a separate store, the entry stays on the origin domain and the destination has none. The shopper is still not asked there, because GeoBeacon on the destination, if it is installed, sees a visitor arriving from one of your own store domains and does nothing, which is the "came from own store" rule.
Markets, market roots and domains are Shopify's side of this; the Shopify Markets documentation covers what counts as a market and how domains and subfolders are assigned. GeoBeacon only adds the memory on top.
A sensible configuration
- Popup mode, 30 days, for a store with mostly repeat local traffic and a few markets.
- Popup mode, 7 to 14 days, for audiences that travel or share devices.
- Redirect mode, 30 days or more, only for stores that ship from strictly separate regional inventories and have confirmed there is no second redirector running.
- 0 days only when every visit should see the suggestion, knowing it still rests for 30 minutes within a session.
The setting takes a few seconds to change and applies on the next page load. If you are weighing GeoBeacon against an app that charges per visitor, the memory is also where the money is: a remembered shopper triggers no detection and no lookup, so a store whose repeat traffic is remembered is a store whose geolocation costs stay flat. GeoBeacon charges per store, not per visitor, and the landing page on beaconwavestudio.com has the plans.
Frequently asked questions
Why does my Shopify country popup appear on every page?
Because nothing is being stored when the shopper answers, or the stored value is being ignored. A popup that remembers nothing asks again on every page load. In GeoBeacon the shopper's choice is saved in the browser the moment they click, so the popup appears once per remember period, not once per page.
How many days should a geolocation popup remember the shopper's answer?
Thirty days is a sensible default for most stores: long enough that a returning shopper is not nagged, short enough that someone who has moved or is travelling is asked again within a month. Stores whose shoppers travel often or share devices can go shorter; stores with mostly local traffic can go longer.
Does the remembered choice stop a shopper from switching country later?
No. It only stops GeoBeacon from asking or redirecting again. The theme's own country and language selector keeps working, and a shopper who uses it is simply browsing the market they picked. The stored choice expires on its own at the end of the remember period.
Does remembering the choice require a cookie banner?
The choice is kept in the browser's localStorage on your own domain and is used only to avoid asking the same shopper twice. Whether that counts as strictly necessary under your consent rules is a question for your privacy policy, and the GDPR article linked in this post explains how GeoBeacon avoids sending any visitor data to a third party.