The short version
Add Shopify age verification at the level your requirement asks for: a storefront popup, a block at checkout, or an ID or data check from an app.
A popup in your theme records only the shopper's own answer and does not run at checkout.
A custom validation Function needs Shopify Plus, while a public App Store app built with Shopify Functions works on any plan.
Shop's requirements list "You're not using any password control or age verification apps", so check what that means for your approved products before you install one.
To add age verification to a Shopify store, pick how far the check goes, then follow that route's steps. Each step up asks for different tools, and the checkout routes depend on your plan.
On the Shopify pages we read (listed at the end of the ID section), no built-in age gate is described, so every route this guide covers is an app or code you add. The Shopify Theme Store also lists "Age verifier" as a feature of some paid themes, and of no free theme, as of November 9, 2026; that feature comes from the theme's developer, and this guide does not cover it. Whether Shopify checks age by itself is a separate answer; this page is the procedure.
Which Age Check Does Your Store Need?
Key takeaway
Find what you were told to do, then follow that row's link to the steps. If nobody has told you yet, read what Shopify's pages say first.
Four checks, by what you were told to do
| If you were told to | Check | What it rests on | Where it runs | Plan limit |
|---|---|---|---|---|
| Collect the shopper's own declaration | Storefront popup | The shopper's own answer: Yes/No, a ticked box or a birth date | Your theme, on the pages it covers | None named in the listings we read |
| Stop under-age orders before they're placed | Checkout button block from an app | The shopper's answer, before the checkout button works (app listings' claim) | NA's screenshots show it on the cart and product pages; an EM screenshot lists checkout button guards on the cart and product pages | One NA screenshot shows in-checkout verification for Shopify Plus stores; an EM screenshot marks its checkout payment page option "For Shopify Plus" |
| Stop under-age orders, on a rule of your own | Validation Function | A rule you or a developer define: it blocks checkout and shows your message when the rule fails | Shopify's servers, including express checkouts | Public App Store app: any plan. Custom app: Shopify Plus |
| Check identity data or a document | ID or data check from an app | An ID scan, a selfie or a background data check, and the app's result (app listings' claim) | The app's own service | One BlueCheck screenshot marks before- or after-checkout verification "Plus only" |
Sources: Shopify Help Center, Shopify.dev and the App Store listings on this page, read November 2026.
The first two rows rest on what the shopper says. The third enforces a rule, and it still needs an age signal from somewhere. Only the fourth compares the shopper's details with anything, and that claim comes from the app listings. We tried a popup against other ways in: see our test.
What Shopify's Pages Say
Key takeaway
Shopify's alcohol compliance page says you're required to follow the laws in any jurisdiction where your alcohol products are advertised or sold. For alcohol sold in or into the United States, it lists this among the common requirements to consider:
Have effective age verification practices so that alcohol products can't be purchased or received by people who are under the age of 21.
The same page cites 18 for the UK, Australia and New Zealand, and "the legal age in the relevant jurisdiction" for the EU; for the UK it also points to the PAS 1296: 2018 standard. Which drinking age applies where you sell has its own answer.
That page, read on November 8, 2026, does not say which methods count as effective, so this guide won't tell you that any level is enough. Get the requirement from your licensing authority, delivery carrier or lawyer, then choose the check that meets it.
Selling tobacco or vapes? Read who sets the age and licence rules for tobacco before you choose.
Which Route Fits Your Store?
The table answers by check. This quiz crosses the things that change your route: what you have been told to do, your plan, who does the work and whether Shop matters to you. It does not decide what your licence requires.
Find your age verification routeFive questions, one route with its first steps
Will an Age Verification App Take You Off Shop?
Key takeaway
Two separate rules apply here, and they are easy to merge into one. One is about what you sell; the other is about what you have installed.
Shop's two rules
| Rule | What Shopify says | Check on your store | If you fail it |
|---|---|---|---|
| Product rule | Age-restricted products such as alcohol, tobacco, or gambling are on the prohibited list, which gives examples rather than a full list | Compare your catalog with the prohibited list | Where you sell a mix, only approved products are available on Shop |
| App rule | You're not using any password control or age verification apps | Settings > Apps, before you add one | The store misses a requirement that stands in both the display set and the sell-directly set |
Sources: Prohibited products on Shop and Requirements to display and sell products on Shop, read November 2026.
The app rule is the one that costs you something. If everything you sell is prohibited on Shop, it changes nothing. If you also sell approved products, those stay on Shop only while your store meets the requirements, so an age verification app puts them at stake.
If you change your store to meet these requirements, Shopify says it can take up to 48 hours for the changes to take effect and for your approval status to update.
The rule names apps and does not mention age popups in theme code. Don't read that as a safe route: the same page warns that "Some Shop eligibility checks might not be displayed on this page."
The one exception Shopify names is Locksmith, a password control app, whose locked products stay hidden on your Shop Store. Shopify names it as password control, not as an age check. Gating by password or account is covered in our members-only store guide.
For the rest of what Shop checks, see the eight requirements in plain terms.
What Four Age Verification Listings Claim
Key takeaway
These four are the listings we read in full, not a ranking and not the whole category. We installed none of them.
Four listings, in the developers' words
A storefront popup installed with no code, by the listing, which says nothing about checkout.
- Reviews
- 4 stars from 1 review, as of November 8, 2026
- Launched
- March 21, 2019
A popup with Yes/No, checkbox or birth date on every plan. Its Pro plan lists a popup on checkout and a checkout button disabled until verified; one screenshot ties in-checkout verification to Shopify Plus stores.
- Reviews
- 5.0 from 88 reviews, as of November 8, 2026
- Launched
- February 18, 2020
- Order record
- Pro lists age verification in order notes
The Free plan lists a popup and a checkout button stopped until age is checked. PLUS lists an ID scan, AI fake-ID detection and a live selfie.
- Reviews
- None, as of November 8, 2026
- Launched
- August 8, 2024
Lists checks during checkout by name and address, photo ID or last 4 of SSN, with order tags for each result.
- Reviews
- 5.0 from 10 reviews, as of November 8, 2026
- Launched
- February 27, 2023
- Where it fits
- State and international rules, by its gallery; SSN last 4 is a US check
- Plan limit
- One screenshot marks before- or after-checkout verification "Plus only"
Source: each app's Shopify App Store listing, read November 4 and 8, 2026. Dollar prices are as the listings showed them from the US on November 8, 2026; elsewhere, a listing can show an estimate in another currency and says you'll be billed in your store's billing currency.
To look wider, search the App Store and read each card's plan line first. For the checkout route, Shopify's help page links a second place to look: the App Store's apps for extending your checkout.
Tag the Products the Gate Covers
Key takeaway
- From your Shopify admin, go to Products and open a restricted product.
- In the Tags field, enter
age-restricted. - Click Save, then repeat for each product the check should cover.
- Products
- Product
Shopify says tags can hold only letters, numbers and hyphens, and that they aren't displayed to customers. Type the tag exactly as shown if you plan to use the snippet below, because it looks for that text.
Whether a gate obeys the tag depends on the gate. The snippet reads it directly through product.tags. BlueCheck's listing ties "Verification settings using product tags" to its Large plan, and NA Age Verification's Plus plan lists "Show popup on specific pages". Check inside any app before you rely on a tag.
How to Add an Age Verification Popup
Key takeaway
Most merchants should start with the app route, because that is what Shopify's own guidance points to first. Use code when you have a reason to run without an app and someone to maintain it.
Add the Popup With an App
Key takeaway
- Log in to the Shopify App Store, search for an app and open its listing.
- Click Install. On the Install app screen, review the data the app can access and follow the link to the developer's Privacy Policy.
- Click Install to authorize it. The app then appears on the Apps page in your admin.
- Open the app and choose the question type and the pages it covers. These screens are the developer's, so follow its setup notes.
- If no popup appears, go to Online Store, open your theme in the editor, click the App embeds icon and turn on the app's toggle, then preview your store.
- Run every row of the test table. Our test covers only our snippet, not any app.
- Online Store
- Themes
- Customize
Shopify describes app embeds as elements that "float or display as an overlay in your theme", which is the shape of a popup. The listings don't say which apps use one: NA Age Verification's says only that it installs automatically.
Add the Popup in Your Theme Code
Key takeaway
Shopify's code editor guide says to edit code only "if you can't make the changes that you need by using a Shopify app or by using the theme editor". It also warns that if your code changes are incompatible with a theme update, all your code changes are removed in the updated copy, and that a paid theme must be purchased before you can edit its code.
- Go to Online Store, open the theme's menu and click Duplicate. Duplicating gives you a copy to work on; at 20 themes you must delete one first.
- On the copy, open the menu and click Edit code.
- Select the
snippetsfolder, click the New file icon, name itage-gate.liquidand paste the first block below. - Open
layout/theme.liquid, paste the second block directly above the closing</body>tag, then click Save. - Preview the copy on a tagged and an untagged product, run the test table, then publish the copy.
- Online Store
- Themes
- Online Store
- Themes
- Edit code
The first block goes in snippets/age-gate.liquid:
{% comment %} snippets/age-gate.liquid: self-declared gate for products tagged age-restricted {% endcomment %}
{% if product and product.tags contains 'age-restricted' %}
<dialog id="age-gate" aria-labelledby="age-gate-title">
<h2 id="age-gate-title">Are you of legal age to buy this product?</h2>
<button type="button" data-age-yes>Yes, I am</button>
<a href="{{ routes.root_url }}">No, take me back</a>
</dialog>
<script>
(function () {
var key = 'ageGateConfirmed';
var gate = document.getElementById('age-gate');
if (!gate || localStorage.getItem(key) === 'yes') return;
gate.showModal();
gate.addEventListener('cancel', function (event) { event.preventDefault(); });
gate.querySelector('[data-age-yes]').addEventListener('click', function () {
localStorage.setItem(key, 'yes');
gate.close();
});
})();
</script>
{% endif %}The second goes in layout/theme.liquid:
{% render 'age-gate', product: product %}This code shows the question only on a tagged product's page. We tried other ways into a cart: see our test.
By its design, the snippet keeps the answer in that browser's localStorage, with no expiry, and writes nothing to the order. It also carries no styling, so add your own CSS and change the question to your wording.
The code editor frame above shows Horizon, Shopify's flagship theme since 2025, and other themes can arrange their files differently.
If nobody on your team edits code, read whether Shopify Support will do it before you plan on free help.
How to Stop the Order at Checkout
Key takeaway
A popup in your theme runs on pages your theme renders. Shopify's checkout documentation says checkout.liquid "is now unsupported for the Information, Shipping, and Payment checkout steps", so theme code is not a way in. Paths that skip the product page altogether are in our test.
Which Tool Your Plan Allows
Key takeaway
Checkout tools by plan
| App type | Basic or higher | Shopify Plus |
|---|---|---|
| Public apps built with Shopify Functions | Included | Included |
| Custom apps built with Shopify Functions | Not available | Included |
| Apps with UI extensions for the information, shipping and payment pages | Not available | Included |
| Apps with UI extensions for the thank you and order status pages | Included | Included |
| Checkout Blocks, a free app | Partial or add-on: Some restrictions | Included |
Source: Shopify Help Center, app availability table, read November 8, 2026.
Below Plus, your route is a public App Store app. The two listings in the next section that claim a checkout block don't say whether it is a Shopify Function.
The tool behind a real block is the Cart and Checkout Validation Function. Shopify's API docs list this among its use cases: "Verify the age or ID of a customer when they proceed through checkout." It is an example for developers to build, not a switch in your admin.
What it does is narrow. Validation functions "run on Shopify's servers and can block checkout progress", and they show the message you set; the API docs say this includes express checkouts such as Shop Pay, PayPal, Google Pay and Apple Pay. For the wider picture, see who gets what at the Plus line.
Use an App From the App Store
Key takeaway
- Shortlist from the listings. NA Age Verification's Pro plan lists "Disable checkout button until verified", and its screenshots show that check on the product and cart pages, with one reading "Shopify Plus stores can do in-checkout age verification"; EM's Free plan lists "Stop checkout button until age checked", and one of its screenshots shows a "Cart checkout buttons guard" for the checkout button on the cart and product pages, with a checkout payment page option marked "For Shopify Plus".
- Ask the developer before you pay: is the block a Shopify Function, does it work on my plan, does it stop Shop Pay, Apple Pay, Google Pay and PayPal, and does it stop a direct cart link and Quick add?
- Install the app using the steps above.
- If the app gives you a checkout block, go to Settings > Checkout and click Edit next to your configuration; blocks on the information, shipping and payment pages need Shopify Plus.
- In the editor, select the page, open the Sections panel, click Add block in the section you want and pick the block. Shopify says you need this step after installing such an app.
- Run every row of the test table.
- Settings
- Checkout
- Settings
- Checkout
- Edit
On Plus: Brief a Custom Validation
Key takeaway
Custom apps with Function APIs are for Plus stores only. We don't give build steps here, because the API reference is the source for those. Put these five points in the brief:
- Where the age comes from. The Function blocks and shows a message. A new field on the information, shipping or payment steps takes a checkout UI extension, which is also Plus-only.
- What the message says. You set the text, and which checkout field it targets or whether it applies to the whole cart.
- Which surfaces it covers. The API lists Cart, Checkout and Storefront Accelerated Checkout among the supported surfaces, and POS, Create Order API, Order Edit, Pre-order and Try Before You Buy, and Subscription (Recurring Orders) as not supported. In-person sales need their own answer.
- Room on your store. You can activate a maximum of 25 validation functions per store.
- Where the result is kept. Decide this now, against the record your requirement asks for.
If you have no developer, Shopify points merchants to its Partner Directory.
How to Add an ID or Data Check
Key takeaway
Everything about these two apps below comes from their listings. We did not run either one, so treat each step as what to confirm, not what you will find.
- Read before you install. The Install app screen lists the data the app can access and links the developer's Privacy Policy. For ID data, read that policy, and ask how long documents are kept if it doesn't say.
- Match the app to your market. BlueCheck lists rules by US state, and its gallery adds international rules; its SSN last 4 option is a US check. Its title says it works before and after checkout, and its listing says it verifies without interrupting checkout. One of its screenshots labels before- or after-checkout verification "Plus only", so ask whether that label means Shopify Plus and where the check falls on your plan.
- Size the plan. Count the orders that need a check each month, using the table below for BlueCheck. EM lists 500 credits a month on PLUS, $50, and one of its screenshots puts an ID upload at 25 credits per verification and a live selfie, matched to the ID photo, at 20.
- Use the trial. BlueCheck lists a 14-day free trial on each plan. Run the test table inside it.
- Find the result on an order. BlueCheck lists order tags: "Age verified, failed, required, not required, & shipping blocked". Confirm on a test order that yours shows what you need to keep.
BlueCheck's three plans
| Plan | Monthly fee | Verifications included | Each extra | What the plan adds |
|---|---|---|---|---|
| Small | $25 | 25 | $1.25 | Automatic checks during checkout, modal with your logo |
| Medium | $100 | 125 | $0.99 | Settings based on location |
| Large | $250 | 500 | $0.33 | Settings using product tags, notifications |
Source: BlueCheck's App Store listing, read November 8, 2026. Dollar prices are as the listing showed them from the US on November 8, 2026; elsewhere, a listing can show an estimate in another currency.
At these listing prices, Small and Medium cost the same at 85 verifications a month: $25 plus 60 extra at $1.25 comes to $100. Below 85 a month, Small is cheaper than Medium; above it, Medium is cheaper than Small.
EM's PLUS plan also lists "KYC/AML/Privacy compliant". That is the developer's description, which we did not verify.
We searched these Shopify surfaces on November 4, 2026, and read the alcohol page again on November 8:
- Help Center: the compliance index and alcohol page, password page, web performance overview, customer accounts customization, Shop eligibility pages, Managed Markets prohibited items, checkout settings.
- Developer docs: checkout, cart and checkout validation, Functions, checkout UI extensions.
- Changelogs: the Shopify and developer changelog feeds.
We found no description of a built-in storefront age gate and no ready Shopify tool that checks a buyer's document. The alcohol page doesn't define "effective". We did not read shopify.com/online-store, the Online Store themes section of the Help Center or the other compliance pages, and one of those could change this.
How to Test the Gate Before You Trust It
Key takeaway
Run this on whichever route you chose. A row that fails tells you where your check stops, and only your requirement can say whether that is acceptable.
Every way into checkout
| Way in | How to try it | What counts as a pass |
|---|---|---|
| Direct product URL | Open a tagged product's URL in a private window | The question appears before the product can be added |
| Direct cart link | In a private window, open /cart/<variant-id>:1 on your store's domain | The check appears before the shopper can pay |
| Quick add | If your theme offers it, add the tagged product from a collection or search page, then go on to checkout | The check appears before the shopper can pay |
| Cart button | Add the product, open the cart and click Checkout | Checkout does not start until the check is passed |
| Buy it now and wallets | Click Buy it now and each wallet button your store shows | None of them reaches payment without the check |
| Phone | Repeat the rows above in a phone browser | The same results as on desktop |
| Returning shopper | Answer once, then come back in a new tab and in another browser | The question returns as often as your requirement needs |
| Record on the order | Place a test order and open it in your admin | The order shows what your requirement asks you to keep |
For the direct cart link, Shopify documents the cart permalink form, and you can find a product's variant ID in your admin.
Placing a test order has its own steps. Shopify warns that customers can't place live orders while your payment providers are in test mode, so choose a quiet time and turn test mode off afterwards.
The last row is easy to miss. The snippet in this guide stores its answer in the browser by design, so the order shows nothing. For an app, check it yourself: NA Age Verification's Pro plan lists order notes and BlueCheck's listing lists order tags, and what that record is worth is a question for whoever set your requirement.
Our Test: Where the Snippet Works and Where It Doesn't
Key takeaway
On November 8, 2026, we ran this guide's snippet, unchanged, on a copy of Horizon 4.4.0 in a Basic development store, with one tagged product, in Chrome.
What each way in did
| Way in we tried | What happened | What it means for you |
|---|---|---|
| /cart/<variant-id>:1 in a clean session | It went straight to checkout with no question | No theme page opens on this path, so the snippet never runs |
| Quick add on a collection card | The tagged product went into the cart with no question, and cart and Checkout showed none either | A shopper can reach checkout without seeing the gate |
| Tagged product, direct URL | A modal question opened. Esc did not close it, and Add to cart and Buy it now could not be clicked behind it | On this page the question cannot be skipped by accident |
| Untagged product | No question, and Add to cart worked | The tag keeps the rest of the catalog clear |
| Return visit after Yes | No question in a new tab or on reload; a clean browser asked again | The answer belongs to one browser and has no expiry |
| Cart, then Checkout | No question on the cart page, and Checkout opened | The cart is not a checkpoint |
| JavaScript turned off | No question, and Add to cart stayed active | The gate depends on the shopper's browser running it |
No minimal edit to the snippet closes a direct cart link or Quick add. A direct cart link opens no theme page, and Quick add loads no tagged product page, so a requirement to stop the order before it is placed points to the checkout routes.
We did not test any app, wallet buttons, phones, Safari or products with several variants, and we placed no order.
How to Remove the Gate Cleanly
Key takeaway
- Check the listing or ask the developer for extra uninstall steps. Shopify warns that some apps add code to your theme "that isn't automatically removed".
- Export anything you need to keep, such as verification records the app holds.
- Go to Settings > Apps, open the app's menu and click Uninstall.
- Rerun the first rows of the test table to confirm the popup is gone.
- Settings
- Apps
Uninstalling a paid app cancels future recurring charges, though Shopify says you might still be billed for the current cycle, and uninstalling doesn't cancel charges the app bills outside Shopify.
For the snippet, delete snippets/age-gate.liquid and the render line in layout/theme.liquid, or publish your original theme again. If you left Shop's requirements while the gate was live, allow up to 48 hours for your approval status to update.
Does an Age Popup Hurt SEO?
Key takeaway
Shopify relays this in its web performance overview, where one of the factors it lists is:
The absence of intrusive interstitials, which are page elements that obstruct a complete view of the content, such as promotional pop-ups or age verification
Treat this as a known cost, not a reason to drop a check you are required to have. What you can control is scope: a gate on tagged products leaves the rest of your store clear, while it still covers those product pages. The rest of your page speed work is in our speed optimization guide.
Your Age Verification Rollout Checklist
Key takeaway
Step four is the only one that differs by route, so use the section for your check there. Don't skip step five because step four looked right on the product page: the product page is only one way in.
Age verification rolloutTick each step off as you go, and come back to it if your requirement changes.
Age verification rollout
Tick each step off as you go, and come back to it if your requirement changes.
Find out from your licensing authority, carrier or lawyer what the check must do and what you must keep.
Before you tick this off
- I know who set the requirement
- I know whether a declaration is accepted
- I know what record I must keep
Compare your catalog with Shop's prohibited list and read the app rule before you install anything.
Before you tick this off
- I know which of my products are prohibited on Shop
- I have decided what the app rule costs me
Add one consistent tag to every product the check covers.
Before you tick this off
- Every restricted product carries the tag
- The tag uses only letters, numbers and hyphens
Set up the popup, the checkout block or the ID or data check, using a duplicate theme for any code.
Before you tick this off
- I read the app's data access and privacy policy, or worked on a theme copy
- The check appears where your route puts it: on a tagged product, or at checkout
Run the direct URL, cart link, Quick add, cart button, Buy it now, wallet, phone and returning shopper rows of the test table.
Before you tick this off
- I tried each way in from a private window
- I wrote down every way in that skips the check
- I decided what those gaps mean against the requirement
Open a test order in your admin and confirm it shows what your requirement asks you to keep.
Before you tick this off
- The order shows the record I need, or I know it does not
- Test mode is switched off again
Note the uninstall steps, any code the app leaves in your theme and how to go back to your original theme.
Before you tick this off
- I read the app's uninstall notes
- I know where my untouched theme copy is
The Bottom Line
Key takeaway
What separates these tools is what they prove, not how they install, and a popup can look finished long before every way in is covered.
Frequently Asked Questions
Front-end developer specializing in Shopify since 2017. Experienced in building custom Liquid themes, optimizing storefront performance, and integrating third-party apps. Directs the editorial process behind Ecom Store Pro: sets its topics and the rules every AI-written page must pass before publication.
This page was written by AI. Separate AI agents that did not write it check its figures and claims against official sources and test its links and interactive tools. A human editor sets the site's editorial direction, topics and rules and checks that pages are complete and display correctly, but does not check their facts or edit their text. Details may change — always confirm critical data at shopify.com.
Editorial PolicySome links in this article are affiliate links. If you sign up for a Shopify store through these links, we may earn a commission at no extra cost to you. Read our full advertising policy.
