Run the checks in Chrome DevTools to confirm that TermsFeed Free Cookie Consent shows the cookie banner, holds optional tagged scripts until consent by default, and stores the answer. The checks cover the consent banner, the tagged scripts, the answer, the cookies, and the preferences link, in about 5 minutes. A consent banner that shows while trackers run anyway does not meet any consent rule, so run every check before launch and after each change to your scripts.

Use a private window for every check, because a browser that holds an earlier answer hides the consent banner. Private windows share their cookies while any of them is open, so a new private window starts empty only once every other one is closed. The checks assume express consent with page_load_consent_levels left out or at the generator value ["strictly-necessary"], and the "I decline" button shown. A category that option lists runs before the answer, and implied consent shows an "OK" button instead of "I agree" and "I decline".

Add "debug": true to the object you pass to cookieconsent.run(), and publish the change. Cookie Consent then prints each step it takes to the Console tab. Most lines start with a timestamp and a type, such as [2026-10-18T09:15:02.114Z][info].

cookieconsent.run({
  "consent_type": "express",
  "debug": true
});

Debug mode tells you where the language comes from, which category each tagged script waits for, and which categories run before the answer.

Console line What it tells you
[i18n] Language set from the language option as: en The language comes from your language option; from the browser means the option is not set
JavaScript script with valid data-cookie-consent tag found, but not loaded yet: tracking Cookie Consent found a tagged script of that category and holds it
Invalid cookie-consent tag level for JavaScript script: <value> A tag has an empty or misspelled category, and that script never runs
JavaScript script of the category "<category>" never runs: the category is not in notice_banner_purposes_levels The category of a tagged script is missing from the categories you use
consentExpress loadInitialCookiesForNewUser: strictly-necessary (true), functionality (false), tracking (false), targeting (false) The categories that run on page load before the answer
Accepted cookie level: tracking That category is accepted, on page load, a switch change, or an answer
run() was already called on this page, the existing Cookie Consent is kept The page calls run() twice; the second call is ignored

A type="text/plain" script without a data-cookie-consent attribute logs nothing, because Cookie Consent ignores it. Read every console line in Free Cookie Consent API Reference.

The Console tab of Chrome DevTools with debug on, showing the language line, a held tracking script, and the categories that run before the answer

Close every private window, open a new one, and load any page of your site. Confirm that the consent banner shows with the "I agree", "I decline", and "Change my preferences" buttons. The consent banner appears on every page until you answer, so open a second page too and confirm it appears there.

Open DevTools, select the Network tab, and type termsfeed.com in the filter box, then reload. The list shows the loader cookie-consent.js, the script cookie-consent-code.js, and the ping. A missing request points to a wrong script address or a Content Security Policy. Repeat the filter in your normal window too. A request that loads in the private window but is missing in the normal one points to an ad blocker, because a private window does not run extensions by default. Find the cause with Cookie Banner Not Appearing.

The Network tab of Chrome DevTools filtered for termsfeed.com, with cookie-consent.js, cookie-consent-code.js, and the ping named after the page hostname, all at status 200

Check 2: Optional tagged scripts wait for the answer

With the consent banner still open, confirm that no request reaches the host of any script you tagged. Select the Network tab and type a tracker host in the filter box, such as google-analytics.com, facebook.com, or clarity.ms. Reload the page and confirm that the list stays empty. With an untagged Google tag under Google Consent Mode, collect requests with gcs=G100 appear before the answer by design. After the "I agree" button they carry gcs=G111 with the targeting category in use, and gcs=G101 without it. The Application tab does not list a _ga cookie until you accept.

Repeat the filter for each script on your list. Clear the filter and type -domain:example.com -domain:*.termsfeed.com with your own hostname to list every request to another host except Cookie Consent itself. Leave out the requests a recipe expects before the answer, such as the gcs=G100 requests of an untagged Google tag under Consent Mode. Any other tracker request before the answer points to a script that is untagged, tagged wrongly, or added by a plugin. Find it with Scripts Run Before Consent.

Check 3: Accepting runs the tagged scripts without a reload

Keep the Network tab filtered on the host of an optional tagged script, and click the "I agree" button. Confirm that the tracker requests appear at once, with no page reload. The consent banner hides.

Select the Elements tab and search for initial-data-cookie-consent=. Every tagged script that ran sits at the end of <head> with that attribute and its category. A tagged script that does not appear usually has a category that is misspelled or missing from the categories you use, which the Console tab reports with debug on.

The Network tab of Chrome DevTools after a click on the “I agree” button, with a tagged script loaded by cookie-consent-code.js and no page reload

Check 4: The browser stores the answer

Select the Application tab, open Cookies and your site, and confirm the 3 Cookie Consent cookies after your answer. cookie_consent_level holds the choice for each category, cookie_consent_user_accepted reads true, and cookie_consent_user_consent_token holds a 12-character token.

The value of cookie_consent_level is URL-encoded JSON. Select the cookie_consent_level row and tick "Show URL-decoded" below the cookie list to read it, such as {"strictly-necessary":true,"functionality":true,"tracking":true,"targeting":true} after a click on the "I agree" button. Before any answer, the same cookie exists and holds true only for the categories that run on page load, cookie_consent_user_accepted is missing, and in express consent so is the token.

Reload the page and confirm that the consent banner stays hidden and the trackers run at once. Then check what the "I decline" button stores. Read what each cookie holds in The 3 Cookies Cookie Consent Writes.

  1. Close every private window, open a new one, open DevTools with the Network tab filtered on the host of an optional tagged script, and load your site.
  2. Click the "I decline" button, and confirm in the Application tab that cookie_consent_user_accepted reads true and cookie_consent_level reads true only for strictly-necessary.
  3. Load a second page and confirm that the Network tab does not show any request to the host of the tagged script.

The Application tab of Chrome DevTools with the 3 Cookie Consent cookies after a click on the “I agree” button, and the decoded cookie_consent_level value with every category true

Start from an accepted answer, then open the Preferences Center from your preferences link. With no selector set, that link is the "Update cookies preferences" link the generator writes, or another element with the id open_preferences_center. With open_preferences_center_selector set, it is an element the selector matches. A WordPress menu item with the class open-cookie-preferences is one such element once you set the selector from the WordPress guide.

  1. Close every private window and open a new one.
  2. Open DevTools on the Network tab filtered on the host of a script you tagged with tracking, and load your site.
  3. Click the "I agree" button.
  4. Click the preferences link, and confirm that the Preferences Center opens with the switches showing your saved answer.
  5. Turn off the switch in the "Tracking cookies" tab, click the "Save my preferences" button, and load another page.

Keep the Network tab filtered on that host, and confirm that no request appears on the new page. The tracker keeps running on the page where you saved, because Cookie Consent does not stop scripts that already ran. The next page load leaves it out. A link that does nothing points to a wrong id or selector. Fix it with Preferences Center Not Opening.

Remove "debug": true from your options once every check passes, because every visitor with DevTools open sees its lines. Then check the options, the scripts, and the page elements one last time with Cookie Banner Go-Live Checklist.