Skip to content

heddle check --only analytics

analytics Check

Analytics. json says it measures, and the privacy page says the same. Origin (the reference site, 18 August 2026). Putting Google Analytics back broke two promises the legal pages made, and the justification for having no consent banner ("first-party only, one processor") had been false since an earlier tag. md).

With Heddle on your site it runs on every build, so a page that fails it is fixed before a buyer or a search engine sees it.

one of 30 checksruns offlineruns every build

Why it exists

Analytics. What the build measures matches what site.json says it measures, and the privacy page says the same.

  • analytics on (site.json analytics.provider): every built page loads Cloudflare's beacon with the site token launch recorded; analytics off. No page loads it.
  • CTA clicks on (analytics.ctaClicks): at least one element carries a data-cta id, and every id is a slug. A counter with nothing to count reads zero, and zero is a claim.
  • The privacy page (analytics.privacyPage, default /privacy) exists while anything is on, does not deny the analytics the site runs, names Cloudflare Web Analytics and says whether it sets cookies, and says that CTA clicks are counted when they are. With analytics off, it does not name an analytics service the site does not run.
  • With the beacon on, no other page denies the analytics either (an FAQ answer is as much a promise as the privacy page); a quotation, or a rule about tool pages in general, is not such a claim.
  • analytics.exclude routes (the free tool pages) carry no beacon.
  • A Content-Security-Policy in the build's _headers allows the beacon.

Origin (the reference site, 18 August 2026). Putting Google Analytics back broke two promises the legal pages made, and the justification for having no consent banner ("first-party only, one processor") had been false since an earlier tag. The disclosure is the whole of the defence, so the build holds it to the config (playbook/lessons.md).

From lib/checks/analytics.mjs in the Heddle repository at 4fc5fd4.

Questions

What does the analytics check look for?

The beacon and the CTA counter are on exactly where site.json analytics says, and the privacy page says what is collected.

How do I run it?

Build the site, then run node bin/heddle.mjs check <site> --only analytics from the Heddle repository.

Work with us

Let the agents bring you the leads.

Tell us about your business and who buys from you. On a short call we'll show you the searches your buyers make where you don't show up yet, and what the agents would do about them in their first month.

On the call, for your site

  1. The searches your buyers makeMeasured, with how many people make each one
  2. Where you show up, and where you don'tOn Google and in ChatGPT's answers
  3. The agents' first monthThe pages, fixes and links they would start with