Age checks, country pickers and language splash pages are often the first thing on a site, and for AI agents they can be the last. This guide explains how each one stops agents, how to keep the gate you need while letting agents read your products, and which questions to take to your lawyer.
Three gates that stop agents
These gates have different jobs, but they fail AI agents in the same way: they stand between the agent and every page on the site.
- Age gates "Are you over 21?" before any page of a wine, vape or adult store
- Region pickers "Choose your country" before you can see a product
- Language splash pages "English, Français, Deutsch" as the home page
Take Ridgeline Cellars, a fictional wine shop at ridgeline.example. A shopper asks an assistant, "Does Ridgeline have a dry Riesling under $25?" The assistant fetches the product page and gets back a page that says "You must be 21 or older to enter" with two buttons. No wine, no price. The assistant tells the shopper it couldn't find the information, or recommends a shop whose page it could read.
Feeds may not be an option: Some AI shopping programs exclude age-restricted goods altogether. OpenAI's product feed documentation lists age-restricted products, for example alcohol, nicotine and gambling, among the products it doesn't allow. For these stores, your own pages may be the main place an assistant can learn what you sell.
Region pickers do the same thing to stores that sell everywhere. A home page that asks "Where are you shopping from?" before showing anything leaves an agent with a list of flags and no products. Language splash pages are the older cousin: a page whose only content is links to the language versions.
Why agents get stuck
A person answers the question once and moves on. Agents trip over gates for reasons that have little to do with intelligence:
- The gate replaces the page. Many gates redirect every URL to a single gate page, then send you back after you answer. An assistant that fetches a product URL gets the gate's HTML instead of the product.
- The answer lives in a cookie. Your choice is usually remembered in a cookie. Many crawlers and assistant fetchers don't keep cookies from one visit to the next (Google says Googlebot generally doesn't support cookies), so they meet the gate every time.
- The content isn't there until you answer. Some gates leave the product out of the HTML entirely and load it with JavaScript after you confirm. An agent that reads the HTML sees nothing to read, gate or no gate.
- The buttons don't say what they do. A browser agent can press a button, but "Yes" and "No" on an unlabeled dialog, or two flag images with no text, give it little to go on.
- Some agents shouldn't answer. A careful agent may refuse to confirm someone's age, because it can't know it. That's arguably the right behavior, and it means the agent can't get past a gate that offers no other way through.
- Shopper asks "Dry Riesling under $25 at Ridgeline?"
- Assistant fetches ridgeline.example/wines/dry-riesling
- Redirected To /age-check, with no product on it
- No answer Or a recommendation for another shop
Keep the gate, let agents read
Check with counsel: Age verification rules depend on the product, the country and often the state or region, and they change. Nothing here is legal advice. Before changing a gate, ask your legal team what it must do, where it must appear, and whether it applies to reading product information or only to buying. Bring them the questions at the end of this section.
The aim is to separate two things a gate often lumps together: letting someone read about a product, and letting someone buy it. Depending on what your counsel says, these patterns can help.
Overlay the page instead of replacing it
Google's guidance on intrusive interstitials uses an age gate as its example of a mandatory interstitial, and makes two recommendations for them: overlay the content rather than redirecting to another page, and don't send every URL to a single gate page, because that leaves only that one page in search results. With an overlay, the product page's HTML still contains the product. An assistant that reads the HTML can answer the shopper's question, and a person still has to answer the gate before using the page.
Whether showing product details behind an overlay is acceptable for your products is exactly the question for counsel. If they say the details must not be visible at all before the gate, the overlay approach isn't for you.
Make the gate a real dialog with clear buttons
If a browser agent meets your gate, it should at least understand it. Build it as a proper modal dialog, as described in the WAI-ARIA dialog pattern, with a heading that says what it is and buttons whose text says what they do.
<dialog id="age-check" aria-labelledby="age-title">
<h2 id="age-title">Are you 21 or older?</h2>
<p>You must be of legal drinking age to buy from Ridgeline Cellars.</p>
<button>Yes, I'm 21 or older: continue</button>
<button>No, leave the site</button>
</dialog>
A browser agent acting for a person may then hand the question back to that person rather than answering it. That's a better outcome than an agent guessing.
Check age where it counts
Many businesses already verify age at checkout or on delivery, which is where an actual sale happens. If your counsel agrees that the entry gate isn't the control that matters, it may be possible to make it lighter, or move the real check to checkout. An agent can then read products and build a cart, and the person confirms their age at the point of purchase.
Let verified search crawlers through, if appropriate
For content behind a mandatory age gate for adults, Google recommends letting Googlebot crawl without triggering the gate, by verifying that requests really come from Googlebot. If you follow that approach, the same reasoning may extend to verified AI search crawlers and assistant fetchers. Verify by IP address or signature, never by the user agent name alone. See how to tell if an AI crawler is real.
Gate that hides everything
- Every URL redirects to /age-check
- Products load only after confirming
- Buttons say "Yes" and "No"
Gate that keeps the store readable
- Overlay on the real product page
- Product, price and stock in the HTML
- Buttons say what they do
Questions for your legal team: Does our obligation cover viewing product information, or only buying? Is an overlay on the real page acceptable, or must the content be withheld? Do the rules differ by country or state? Can verified search crawlers see content without the gate? Where must the real age check happen: entry, checkout or delivery?
Region pickers and language splash pages
These rarely have a legal reason behind them, which makes them easier to fix. The principle: let the URL decide the country and language, and make every URL show real content.
- Give each country or language its own URL, such as ridgeline.example/en-us/ and ridgeline.example/fr-ca/, and serve that version to anyone who asks for it.
- Make the default page a real store. Pick a sensible default and say which country and currency the prices are in, with links to the others. Don't make the default a picker.
- Suggest, don't force. If you want to point people to their local site, use a small banner with a link, not a page that blocks everything else.
- Link the versions with hreflang, so agents and search engines can find the right one for the shopper.
Google gives one more reason in its page on locale-adaptive pages: Googlebot sends requests without an Accept-Language header, and Google recommends separate locale URLs with hreflang rather than adapting one URL to each visitor. An AI agent's request comes from its operator's servers, not the shopper's device, so a site that guesses location or language from the request can easily guess wrong. Our guides to international sites and geo-blocking go further.
What AgentScore checks
AgentScore doesn't have a check for age gates or region pickers specifically. Two parts of the scan cover the groundwork:
- "Pop-ups and banners can be dismissed by agents" renders your home page in a browser and looks for a fixed or sticky element covering at least 15% of the screen. An age gate or country picker shown as an overlay counts. If it has a button whose name includes words such as "Continue", "Accept", "Close" or "OK", the check warns, since every agent still has to deal with it first. If no button is clearly labeled that way, it fails. A gate whose only buttons say "Yes" and "No", or that uses flag images with no text, may fail for that reason.
- The rest of the scan reads whatever your home page leads to. If your home page redirects to a gate page, AgentScore, like any agent, ends up reading the gate page instead of your store, and the readability and navigability results describe the gate.
The scan runs from our own servers, so a gate that only appears in certain countries may not show up. To see what a browser agent does at your gate, a Ghost Agent journey records each step. For pop-ups more generally, see cookie banners and pop-ups that trap AI agents.
- 38% of stores show a pop-up or banner covering much of the page on arrival
- 24% of stores had one with no clearly labeled button to close it
A short checklist
- Legal has confirmed what the age gate must do, and where
- The gate overlays the real page instead of redirecting, if allowed
- Product name, price and stock are in the page HTML
- The gate is a real dialog with buttons that say what they do
- Every country and language has its own URL, linked with hreflang
- A picker or splash page is the only thing at your home page
- Open a product page in a private window and note what you see before answering any gate. Then view the page source: is the product in it?
- Fetch the same URL from the command line (
curl -sL https://ridgeline.example/wines/dry-riesling, with your own URL) and check whether it returns the product or the gate. - Take the questions above to your legal team before changing anything on an age gate.
- Replace any region or language picker on the home page with a default store and a suggestion banner.
- Run AgentScore and check the pop-up result, then re-run it after each change.