Cookie consent for WordPress

Consent that blocks before it asks.

Kjeks holds trackers back until your visitor decides — then loads only what they agreed to. Prior blocking, a discovery scanner, and add-ons for Google Consent Mode and AI-assisted review, for single sites and whole multisite networks.

Free & open source · “Kjeks” is Norwegian for biscuit — a friendlier kind of cookie.

Why Kjeks

Built to withhold, not just to warn.

Most consent banners appear after the scripts have already run. Kjeks flips that: nothing non-essential loads until consent is given.

Blocks before it asks

Trackers are held back until the visitor makes a choice. Prior blocking, not a banner bolted on after the scripts already fired.

Network-aware

One consent configuration for a whole multisite network, or a single site. Trackers are declared once and resolved per blog.

Discovery scanner

A standalone Playwright scanner crawls your pages under each consent state and reports the tags that actually load.

Accessible banner

A lightweight, keyboard-navigable consent banner and a re-open trigger, with content you control from one place.

Single-site or multisite

The same plugin runs on a solo install or a 50-site network — admin surfaces and capabilities adapt automatically.

Add-ons when you need them

Bolt on Google Consent Mode v2 or AI-assisted tracker classification only if your setup calls for it.

How it works

From install to shipped, in four steps.

Declare what runs on your site, let the scanner confirm reality, review, and go live.

Install & activate

Download the release ZIP and upload it under Plugins → Add New → Upload Plugin. On multisite, network-activate it; on a single site, just activate.

Declare your trackers

Register the scripts and services your site uses and the consent category each belongs to. Kjeks blocks them until consent matches.

Scan & review

Run kjeks-scanner to crawl your pages under each consent state and see the tags that actually fire — then reconcile the list.

Ship

Publish the banner. Visitors choose, Kjeks enforces, and the re-open trigger lets them change their mind any time.

# 1. Register a tracker so Kjeks blocks it until consent (PHP)
add_action( 'kjeks_register_integrations', function () {
    kjeks_register_integration( 'matomo', [
        'category' => 'analytics',
        'label'    => 'Matomo',
        'handles'  => [ 'matomo-tracker' ],
    ] );
} );

# 2. Discover what really loads, per consent state
node src/cli.js --url https://example.com/ --blog-id 1 --out scan

# 3. Import the reviewed inventory into WordPress
wp kjeks import scan/example.com.json --blog_id=1

Real commands from the plugins — see the full documentationfor step-by-step guides at levels 101, 201, and 301.

The Kjeks family

A small core, with add-ons you opt into.

Start with the core plugin. Add Google Consent Mode, AI review, or the scanner only when your setup needs them.

Core

kjeks

The cookie-consent engine: categories, prior blocking, the consent banner, and the tracker inventory for single-site or multisite WordPress.

Add-on

kjeks-google

Wires Google Consent Mode v2 into Kjeks — gtag.js loads gated by category, with consent defaults denied until the visitor opts in.

Add-on

kjeks-ai-reviewer

Suggests a consent category for each discovered tracker using an AI model, so triaging a large inventory is a review instead of research.

Tooling

kjeks-scanner

A standalone Node + Playwright scanner that discovers trackers across your site under each consent state and writes a per-page report.

Questions

Good to know.

Does Kjeks make my site GDPR compliant?

No tool can promise that. Kjeks gives you the technical mechanism — prior blocking, categorised consent, and an audit trail of what loads — but compliance depends on your configuration, disclosures, and legal advice. Kjeks is not legal advice.

Does it work on a single site, or only multisite?

Both. The core plugin detects its environment: on multisite it uses network admin and network capabilities, and on a single site it falls back to the standard admin menu and manage_options.

What does the scanner do that I can't see myself?

It drives a real browser through each consent state and records the network requests and tags that fire — catching trackers injected by themes, embeds, or other plugins that are easy to miss by hand.

Do I need the Google or AI add-ons?

Only if they fit your stack. kjeks-google is for sites using Google Consent Mode v2; kjeks-ai-reviewer speeds up categorising a large tracker inventory. The core plugin works without either.

Why isn't the consent banner showing?

Usually by design. Kjeks skips the banner when a choice is already stored (~6 months — the visitor sees the small Cookie settings trigger instead), or when the browser sends Global Privacy ControlBrave sends GPC by default — which Kjeks honours by auto-rejecting non-essential technologies. Browser or extension features that hide cookie notices (Brave Shields, uBlock cookie lists) can also remove it.

Not a compliance guarantee. Kjeks is engineering, not law. It helps you block, categorise, and audit trackers — pair it with your own privacy review to meet your obligations.