BBC

bbc.com

Compare

https://bbc.com

Scanned Apr 15, 2026 · 31.6s

Your website score is

0/100
Critical

Grade

F0

Banner

Yes

Regulatory Compliance

Multi-regulation overview — click any regulation for details

Technical scan only. A passing score does not equal legal compliance. Consult qualified legal counsel for your jurisdiction.

Tag Leak detected 30 user data leaks before consent on bbc.com, including Optimizely, Didomi (Tracker Tracker), DotMetrics (Advertising Tracker) and 3 more.

Security Headers

4/6 present

Strict-Transport-Security

max-age=31536000; preload

Content-Security-Policy

Add a Content-Security-Policy header to prevent XSS and code injection attacks

X-Frame-Options

SAMEORIGIN

X-Content-Type-Options

nosniff

Referrer-Policy

no-referrer-when-downgrade

Permissions-Policy

Add a Permissions-Policy header to restrict browser features like camera, microphone, and geolocation

Google Consent Mode

Not Detected

Google Consent Mode v2 was not found on this page. GCM v2 allows Google's tags to adjust their behavior based on user consent, and is required for compliant advertising measurement in the EU. Without it, your Google Ads and GA4 conversions may be impacted after consent is declined.

Post-Rejection Audit

Reject Button

Missing

Post-Rejection Fires

0 vendors

Consent Mode

Not Detected

GTM Load

Not detected

Consent Mode V2: Not Detected

Google Consent Mode was not detected on this site.

Consent Record Audit

Issues detected

Consent record stored after interaction

GDPR Art. 7(1)

No consent record written — cannot prove consent was given

No CMP consent cookie or localStorage entry was found after the consent interaction. GDPR requires controllers to demonstrate consent was given.

Consent withdrawal mechanism accessible

GDPR Art. 7(3)

Cookie settings link / floating button found

Why this matters

Under GDPR Article 7, controllers must be able to demonstrate that consent was given (Art. 7(1)) and ensure users can withdraw consent at any time, as easily as giving it (Art. 7(3)). Sites with no consent record or no withdrawal mechanism cannot legally rely on consent as a lawful basis.

Tracker categories detected

Advertising2 vendors
Analytics3 vendors
Security2
Functional1 vendor
Critical12
Optimizely
Optimizely4 findings

cdn.optimizely.com, a4621041136.cdn.optimizely.com, logx.optimizely.com, optimizelyEndUserId

Optimizely
criticalNetworkAnalyticsOptimizely

Optimizely (Optimizely) loaded before consent: Optimizely experimentation and A/B testing

Host: cdn.optimizely.comFired: 112ms after load
Optimizely
criticalNetworkAnalyticsOptimizely

Optimizely (Optimizely) loaded before consent: Optimizely experimentation and A/B testing

Host: a4621041136.cdn.optimizely.comFired: 1691ms after load
Optimizely
criticalNetworkAnalyticsOptimizely

Optimizely (Optimizely) loaded before consent: Optimizely event logging endpoint

Host: logx.optimizely.comFired: 2683ms after load
Optimizely
criticalCookieAnalyticsOptimizely

Optimizely cookie "optimizelyEndUserId" set before consent

Cookie: optimizelyEndUserIdDomain: .bbc.com
Didomi (Tracker Tracker)
criticalNetworkDidomi (Tracker Tracker)

Didomi (tracker) loaded before consent

Host: cdn.privacy-mgmt.comFired: 1550ms after load
DotMetrics (Advertising Tracker)
DotMetrics (Advertising Tracker)2 findings

uk-script.dotmetrics.net, rm-script.dotmetrics.net

DotMetrics (Advertising Tracker)
criticalNetworkAdvertisingDotMetrics (Advertising Tracker)

DotMetrics (advertising) loaded before consent

Host: uk-script.dotmetrics.netFired: 1554ms after load
DotMetrics (Advertising Tracker)
criticalNetworkAdvertisingDotMetrics (Advertising Tracker)

DotMetrics (advertising) loaded before consent

Host: rm-script.dotmetrics.netFired: 2528ms after load
Chartbeat (Analytics Tracker)
criticalNetworkAnalyticsChartbeat (Analytics Tracker)

Chartbeat (analytics) loaded before consent

Host: ping.chartbeat.netFired: 2214ms after load
Google Ads
criticalNetworkAdvertisingGoogle Ads

Google Ads (Google) loaded before consent: Google ad syndication and remarketing

Host: pagead2.googlesyndication.comFired: 2426ms after load
Chartbeat
criticalCookieAnalyticsChartbeat

Chartbeat cookie "_chartbeat2" set before consent — Cookie is used to register if a person has visited the domain before (to calculate new vs returning users).

Cookie: _chartbeat2Domain: .bbc.comRetention: 30 days
criticalConsent

No "reject all" option found — users cannot refuse non-essential cookies (ICO guidance requires this)

criticalConsent Record

No recognizable consent cookie or storage entry detected after interaction — GDPR Article 7(1) requires controllers to demonstrate consent was given (server-side storage cannot be verified)

Warnings20
warningConsentUnknown CMP

Unknown CMP was clicked but no consent storage was written — tags may continue firing as if consent was never given

vendor logo
warningNetwork

Unknown third-party request to static.files.bbci.co.uk before consent

Host: static.files.bbci.co.ukFired: 112ms after load
vendor logo
warningNetwork

Unknown third-party request to static.bbci.co.uk before consent

Host: static.bbci.co.ukFired: 112ms after load
vendor logo
warningNetwork

Unknown third-party request to emp.bbci.co.uk before consent

Host: emp.bbci.co.ukFired: 112ms after load
vendor logo
warningNetwork

Unknown third-party request to ichef.bbci.co.uk before consent

Host: ichef.bbci.co.ukFired: 113ms after load
vendor logo
warningNetwork

Unknown third-party request to www.bbc.co.uk before consent

Host: www.bbc.co.ukFired: 1234ms after load
vendor logo
warningNetwork

Unknown third-party request to mybbc-analytics.files.bbci.co.uk before consent

Host: mybbc-analytics.files.bbci.co.ukFired: 1814ms after load
warningStorage

localStorage key "optimizely_data$$oeu1776281529764r0.4380229773734642$$27302320011$$event_queue" written before consent

Key: optimizely_data$$oeu1776281529764r0.4380229773734642$$27302320011$$event_queueType: localStorageFired: 1679ms after load
warningStorage

localStorage key "optimizely_data$$oeu1776281529764r0.4380229773734642$$27302320011$$tracker_optimizely" written before consent

Key: optimizely_data$$oeu1776281529764r0.4380229773734642$$27302320011$$tracker_optimizelyType: localStorageFired: 1682ms after load
warningStorage

localStorage key "optimizely_data$$oeu1776281529764r0.4380229773734642$$27302320011$$layer_states" written before consent

Key: optimizely_data$$oeu1776281529764r0.4380229773734642$$27302320011$$layer_statesType: localStorageFired: 1682ms after load
warningStorage

localStorage key "optimizely_data$$oeu1776281529764r0.4380229773734642$$27302320011$$session_state" written before consent

Key: optimizely_data$$oeu1776281529764r0.4380229773734642$$27302320011$$session_stateType: localStorageFired: 1683ms after load
warningStorage

localStorage key "optimizely_data$$oeu1776281529764r0.4380229773734642$$27302320011$$visitor_profile" written before consent

Key: optimizely_data$$oeu1776281529764r0.4380229773734642$$27302320011$$visitor_profileType: localStorageFired: 1683ms after load
warningStorage

localStorage key "optimizely_data$$oeu1776281529764r0.4380229773734642$$27302320011$$variation_map" written before consent

Key: optimizely_data$$oeu1776281529764r0.4380229773734642$$27302320011$$variation_mapType: localStorageFired: 1683ms after load
warningStorage

localStorage key "optimizely_data$$oeu1776281529764r0.4380229773734642$$27302320011$$layer_map" written before consent

Key: optimizely_data$$oeu1776281529764r0.4380229773734642$$27302320011$$layer_mapType: localStorageFired: 1683ms after load
warningStorage

localStorage key "optimizely_data$$oeu1776281529764r0.4380229773734642$$27302320011$$contextual_mab" written before consent

Key: optimizely_data$$oeu1776281529764r0.4380229773734642$$27302320011$$contextual_mabType: localStorageFired: 1684ms after load
warningStorage

localStorage key "_cb_ls_test" written before consent

Key: _cb_ls_testType: localStorageFired: 2178ms after load
warningStorage

localStorage key "_cb" written before consent

Key: _cbType: localStorageFired: 2190ms after load
warningStorage

localStorage key "_chartbeat2" written before consent

Key: _chartbeat2Type: localStorageFired: 2191ms after load
warningStorage

localStorage key "_cb_svref" written before consent

Key: _cb_svrefType: localStorageFired: 2192ms after load
warningStorage

localStorage key "optimizely_data$$pending_events" written before consent

Key: optimizely_data$$pending_eventsType: localStorageFired: 2678ms after load
Info9
Piano (Cdn)
infoNetworkPiano (Cdn)

Piano (cdn) loaded before consent

Host: cdn.tinypass.comFired: 112ms after load
Chartbeat (Cdn)
infoNetworkChartbeat (Cdn)

Chartbeat (cdn) loaded before consent

Host: static.chartbeat.comFired: 1391ms after load
Piano
Piano3 findings

_pprv, _pcid, _pctx

Piano
infoCookieFunctionalPiano

Piano cookie "_pprv" set before consent — This cookie contains the property consent (linked to a product) the end-user has consented to. More information about Consent management can be found here.

Cookie: _pprvDomain: .bbc.comRetention: 13 months
Piano
infoCookieFunctionalPiano

Piano cookie "_pcid" set before consent — This cookie contains the browserId (BID) that is used in Piano products for reporting and tracking purposes.

Cookie: _pcidDomain: .bbc.comRetention: 13 months
Piano
infoCookieFunctionalPiano

Piano cookie "_pctx" set before consent — This cookie is required to sync different Piano product scripts containing common data points. It contains data from different products, for example for Composer Insights or Ad Revenue Insights, but only IF you have implemented any of these products.

Cookie: _pctxDomain: .bbc.comRetention: 13 months
Sourcepoint CMP4 findings

_sp_su, _sp_user_consent_26225, _sp_local_state, _sp_non_keyed_local_state

infoCookieConsent MgmtSourcepoint CMP

Sourcepoint CMP cookie "_sp_su" set before consent

Cookie: _sp_suDomain: .bbc.com
infoStorageConsent MgmtSourcepoint CMP

Sourcepoint CMP (Sourcepoint) wrote "_sp_user_consent_26225" to localStorage before consent

Key: _sp_user_consent_26225Type: localStorageFired: 2426ms after load
infoStorageConsent MgmtSourcepoint CMP

Sourcepoint CMP (Sourcepoint) wrote "_sp_local_state" to localStorage before consent

Key: _sp_local_stateType: localStorageFired: 2473ms after load
infoStorageConsent MgmtSourcepoint CMP

Sourcepoint CMP (Sourcepoint) wrote "_sp_non_keyed_local_state" to localStorage before consent

Key: _sp_non_keyed_local_stateType: localStorageFired: 2473ms after load

Is this your site?

Run a full multi-page scan with monitoring and get detailed remediation steps

Scan bbc.com

This audit is based on publicly observable website behavior. To request removal from the index, email support@tagleak.com