Title: Webkoding AgeWall – Age Verification and Age Gate
Author: Webkoding
Published: <strong>August 26, 2026</strong>
Last modified: August 26, 2026

---

Search plugins

![](https://ps.w.org/webkoding-agewall/assets/banner-772x250.png?rev=3667441)

![](https://ps.w.org/webkoding-agewall/assets/icon-256x256.png?rev=3667441)

# Webkoding AgeWall – Age Verification and Age Gate

 By [Webkoding](https://profiles.wordpress.org/webkoding/)

[Download](https://downloads.wordpress.org/plugin/webkoding-agewall.1.0.1.zip)

 * [Details](https://wordpress.org/plugins/webkoding-agewall/#description)
 * [Reviews](https://wordpress.org/plugins/webkoding-agewall/#reviews)
 *  [Installation](https://wordpress.org/plugins/webkoding-agewall/#installation)
 * [Development](https://wordpress.org/plugins/webkoding-agewall/#developers)

 [Support](https://wordpress.org/support/plugin/webkoding-agewall/)

## Description

Webkoding AgeWall adds real, server-side age verification to WordPress. Unlike simple“
click to confirm” overlays that only hide content with CSS or JavaScript, AgeWall
withholds protected content on the server: an unverified visitor never receives 
the restricted markup in the HTTP response, so it cannot be revealed by disabling
scripts or reading the page source.

Gate your whole site, or just the pages, posts and blocks that need it. Set the 
minimum age, choose how visitors prove it, and decide what happens when they have
not — all from one settings screen.

#### Key features

 * **True server-side enforcement.** Protected content, shortcodes and blocks are
   withheld before the response is sent. The gate requirement (minimum age and method)
   is signed and re-derived on the server, so it cannot be weakened by tampering
   with the request.
 * **Whole-site gate or per-content gates.** Gate the entire site with an overlay
   or a dedicated page, or gate individual pieces of content with the `[agewall]`
   shortcode and the AgeWall block.
 * **Per-post and per-category restrictions.** Mark any post, page, custom post 
   type or term as age-restricted, with its own minimum age and method.
 * **Two verification methods.**
    - Confirmation (“I am over N”) — a lightweight self-declared check.
    - Date of birth (DOB) — a self-declared date, validated on the server.
 * **Choose your enforcement.** Withhold the content entirely (the default and the
   strictest), redirect to a gate page, or cover the page with an overlay when you
   need search engines to keep seeing it.
 * **Search-engine friendly.** Optionally allow known search-engine bots to bypass
   the gate for SEO.
 * **Customizable gate appearance.** Set the gate title, message and logo, and choose
   an overlay, modal or inline template.
 * **No accounts, no tracking, no third-party calls.** AgeWall stores no personal
   data and contacts no external service.
 * **Translation ready.** All strings use the `webkoding-agewall` text domain and
   a `languages/webkoding-agewall.pot` template is included.

#### Developers

AgeWall is built to be extended. Documented hooks let you add your own verification
provider (`agewall/register_providers`), supply your own rule set (`agewall/rules`),
resolve the visitor’s country (`agewall/visitor_country`), observe every verification
attempt (`agewall/verification_attempt`), and add your own settings tabs and admin
screens (`agewall/settings_tabs`, `agewall/admin_menu`).

## Screenshots

[⌊Server-side enforcement: an unverified visitor's page source contains no restricted
markup at all. The protected text is absent from the HTTP response, not hidden with
CSS.⌉⌊Server-side enforcement: an unverified visitor's page source contains no restricted
markup at all. The protected text is absent from the HTTP response, not hidden with
CSS.⌉[

Server-side enforcement: an unverified visitor’s page source contains no restricted
markup at all. The protected text is absent from the HTTP response, not hidden with
CSS.

[⌊A page gated with the whole-page age gate, asking the visitor for a date of birth.⌉⌊
A page gated with the whole-page age gate, asking the visitor for a date of birth
.⌉[

A page gated with the whole-page age gate, asking the visitor for a date of birth.

[⌊A public article with one age-restricted section locked by the [agewall] shortcode.
The surrounding paragraphs stay public.⌉⌊A public article with one age-restricted
section locked by the [agewall] shortcode. The surrounding paragraphs stay public
.⌉[

A public article with one age-restricted section locked by the `[agewall]` shortcode.
The surrounding paragraphs stay public.

[⌊The AgeWall Gate block. The blocks nested inside it are rendered on the server
only after the visitor verifies.⌉⌊The AgeWall Gate block. The blocks nested inside
it are rendered on the server only after the visitor verifies.⌉[

The AgeWall Gate block. The blocks nested inside it are rendered on the server only
after the visitor verifies.

[⌊Settings: minimum age, verification method, and what happens when a visitor is
unverified — withhold, redirect or overlay.⌉⌊Settings: minimum age, verification
method, and what happens when a visitor is unverified — withhold, redirect or overlay
.⌉[

Settings: minimum age, verification method, and what happens when a visitor is unverified—
withhold, redirect or overlay.

[⌊The "Age restriction (AgeWall)" box on the edit screen, setting a minimum age 
and method for a single page.⌉⌊The "Age restriction (AgeWall)" box on the edit screen,
setting a minimum age and method for a single page.⌉[

The “Age restriction (AgeWall)” box on the edit screen, setting a minimum age and
method for a single page.

## Blocks

This plugin provides 1 block.

 *   AgeWall Gate Withhold the inner content until the visitor verifies their age(
   server-side).

## Installation

 1. Upload the `webkoding-agewall` folder to the `/wp-content/plugins/` directory, 
    or install the plugin through the WordPress Plugins screen.
 2. Activate the plugin through the “Plugins” screen in WordPress.
 3. Go to **AgeWall** in the admin menu, set your minimum age, verification method 
    and appearance.
 4. (Optional) Mark individual posts, pages or terms as age-restricted from the AgeWall
    box on their edit screen.

## FAQ

### Does AgeWall really hide content from unverified visitors, or is it just a visual overlay?

It genuinely withholds the content on the server. Restricted content is never placed
in the HTTP response for an unverified visitor, so it cannot be exposed by disabling
JavaScript, editing CSS, or viewing the page source.

This depends on the rule’s action, and the difference is important: **withhold**
and **redirect** are content-withholding — the protected page is never rendered 
or sent to an unverified visitor — and withhold is the default. **Overlay** is a
soft/SEO mode: the page still renders and is sent in the response with the gate 
painted over it, so use it only when you want search engines and existing rankings
to keep seeing the page, not when the content must actually be withheld.

### Which verification methods are included?

Confirmation (“I am over N”) and self-declared date of birth. Both are checked on
the server, and a visitor verified by the stronger method also satisfies the weaker
one.

### What personal data does AgeWall store?

None. AgeWall stores no personal data about your visitors, creates no database tables,
and makes no third-party requests. A visitor’s proof of age is held in a signed 
cookie that records only the scope, the minimum age and the method it was granted
for — never a date of birth.

### Can I enforce a different age for different countries?

No. Every visitor is held to the same rule, which you set once in Settings. The 
plugin does not geolocate visitors and does not vary the minimum age by country.
Developers can hook `agewall/rules` and `agewall/visitor_country` to match on their
own criteria.

### Can I add my own verification method?

Yes. Implement `Agewall\Providers\ProviderInterface` and register it on the `agewall/
register_providers` action. It will appear automatically everywhere a method can
be chosen.

### Is AgeWall translation ready?

Yes. Every user-facing string uses the `webkoding-agewall` text domain, and a `languages/
webkoding-agewall.pot` template is bundled for translators.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Webkoding AgeWall – Age Verification and Age Gate” is open source software. The
following people have contributed to this plugin.

Contributors

 *   [ Webkoding ](https://profiles.wordpress.org/webkoding/)

[Translate “Webkoding AgeWall – Age Verification and Age Gate” into your language.](https://translate.wordpress.org/projects/wp-plugins/webkoding-agewall)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/webkoding-agewall/),
check out the [SVN repository](https://plugins.svn.wordpress.org/webkoding-agewall/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/webkoding-agewall/)
by [RSS](https://plugins.trac.wordpress.org/log/webkoding-agewall/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.1

 * Renamed: the listing now says what the plugin does, not only what it is called.
   No functional change.

#### 1.0.0

 * Initial release.

## Meta

 *  Version **1.0.1**
 *  Last updated **1 day ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [age gate](https://wordpress.org/plugins/tags/age-gate/)[age restriction](https://wordpress.org/plugins/tags/age-restriction/)
   [age verification](https://wordpress.org/plugins/tags/age-verification/)[compliance](https://wordpress.org/plugins/tags/compliance/)
   [restricted content](https://wordpress.org/plugins/tags/restricted-content/)
 *  [Advanced View](https://wordpress.org/plugins/webkoding-agewall/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/webkoding-agewall/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/webkoding-agewall/reviews/)

## Contributors

 *   [ Webkoding ](https://profiles.wordpress.org/webkoding/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/webkoding-agewall/)