Website tracking audit

How it works

Basic browser scan

The basic scan fetches the public HTML source where the browser allows it. It checks for window.dataLayer, dataLayer assignments, dataLayer.push calls, Google Tag Manager scripts, Google Analytics scripts, GTM container IDs, and GA measurement IDs.

Manual scanner

The manual scanner runs on the target page from your browser console. It can inspect the live window.dataLayer object and is the most accurate way to check dataLayer size on dynamic pages.

Why JavaScript frameworks need live checking

React dataLayer and Next.js dataLayer implementations often change after the first HTML response. A source scan may miss data that appears after hydration, routing, consent updates, or ecommerce events.

How size is calculated

The manual scanner safely serialises the dataLayer and uses TextEncoder to calculate UTF-8 byte size. It reports bytes, KB, approximate size per item, and the largest item.

What errors are detected

The scanner looks for missing dataLayer, empty arrays, dataLayer values that are not arrays, safe stringify warnings, dataLayer-related recent errors where available, and large payload thresholds.

Limitations

A static website cannot directly inspect JavaScript objects on another domain. Some websites also block browser-based fetching through CORS or security headers. Use the manual scanner when accuracy matters.