Website Tracking & Analytics Audit
Free SEO + tracking audit — see exactly what's broken in under 60 seconds
The audit of your website's home page reveals a few important points about your tracking setup. One of your Google Tag Manager (GTM) containers (GTM-K9LG27T) did not load, which could affect the reliability of your data collection. However, your Google Analytics 4 (GA4) is set up correctly and successfully fired, along with Google Ads and Microsoft Ads tags. There are some minor issues, such as the absence of a <noscript> fallback, which is a backup for users with JavaScript disabled, and a warning about checkout and purchase tracking, but these are not critical for the home page. Since your store is not on Shopify, there's no need to worry about Trekkie or Web Pixels API. The next step is to audit other key pages like product, cart, checkout, and order-confirmation to ensure comprehensive tracking. Given the GTM loading issue, I recommend connecting your store to PayHelm AI for a more in-depth analysis and resolution.
GTM container installed and loading.
GA4 is installed and sending data.
4 of 4 key funnel stages look healthy.
No data-quality issues found in tracked events.
Consent Mode v2 configured.
Tags load quickly.
No conflicting analytics IDs.
Consent Mode v2 is configured via OneTrust. The default and update calls and the v2 signals (ad_user_data, ad_personalization) are all present.
Tags loaded quickly (GTM in 0.52s) — no performance concern.
No cross-domain (linker) tracking was detected. If your checkout or other steps live on a different domain, set up linker tracking so visits aren't split into separate sessions.
Google Ads Enhanced Conversions appear to be set up — hashed first-party data is being passed to improve conversion accuracy.
GA4 User-ID tracking was not detected. If you have logged-in users, setting a User-ID lets GA4 join their activity across devices and sessions.
We couldn't reach the checkout or order-confirmation page during this audit, so purchase tracking is unverified. Purchase is the single most important event to get right — test it with a real or test order and confirm the 'purchase' event fires once on the thank-you page.
Marketing & analytics tags observed sending data while the page loaded.
Every dataLayer push observed during page load — with full payload and configuration analysis.
›GTM lifecycle events (3)— gtm.js, gtm.dom, gtm.load, etc.
Data points present in the dataLayer that your tags can read (the values pushed alongside each event).
The actual tracking requests your browser sent — the ground-truth proof that a tag fired.
Marketing & analytics tags observed sending data while the page loaded.
Every dataLayer push observed during page load — with full payload and configuration analysis.
›GTM lifecycle events (3)— gtm.js, gtm.dom, gtm.load, etc.
Data points present in the dataLayer that your tags can read (the values pushed alongside each event).
The actual tracking requests your browser sent — the ground-truth proof that a tag fired.
GTM-K9LG27T, GTM-P54TXR9
A Google Tag Manager container is installed on this page.
1/2 container(s) returned a successful gtm.js response.
Some containers loaded but at least one did not — check the container ID is published and not blocked.
Fix this issueNo <noscript> fallback found in the HTML source.
The recommended <noscript> fallback is missing. It's minor, but Google's standard install includes it.
Fix this issueGTM snippet appears inside <head>.
The container is loaded early, as Google recommends, so tags fire as soon as possible.
dataLayer is defined before the container snippet.
Data is available to tags from the very first event.
G-F10BQ5D103 — collect hit observed.
Google Analytics 4 is actively sending pageview/event data.
1 error(s) logged.
JavaScript errors were logged during page load. These don't necessarily affect tracking — only errors that directly interrupt pixel execution matter. See any vendor-specific errors below for actionable issues.
default=true, update=true, signals=[ad_storage, ad_user_data, ad_personalization, analytics_storage, functionality_storage, personalization_storage, security_storage], CMP=OneTrust
Consent Mode v2 is configured via OneTrust. The default and update calls and the v2 signals (ad_user_data, ad_personalization) are all present.
GTM 519ms, GA4 first hit 1366ms, DOMContentLoaded 989ms
Tags loaded quickly (GTM in 0.52s) — no performance concern.
No linker configuration observed
No cross-domain (linker) tracking was detected. If your checkout or other steps live on a different domain, set up linker tracking so visits aren't split into separate sessions.
enhanced_conversion_data in code
Google Ads Enhanced Conversions appear to be set up — hashed first-party data is being passed to improve conversion accuracy.
Not detected
GA4 User-ID tracking was not detected. If you have logged-in users, setting a User-ID lets GA4 join their activity across devices and sessions.
purchase observed=false, checkout page audited=false
We couldn't reach the checkout or order-confirmation page during this audit, so purchase tracking is unverified. Purchase is the single most important event to get right — test it with a real or test order and confirm the 'purchase' event fires once on the thank-you page.
Fix this issueFunnel events are page-specific: purchase only fires on order confirmation, add_to_cart requires a user click. Events shown as are not observable on this page type — audit each page separately for full coverage.
Discovery
Not observed firing, but 'view_item_list' was found configured in the site's JavaScript. It may fire only when users take specific actions or visit the relevant page type. Not observed on this page. Set up 'view_item_list' on your collection/category/search pages for funnel visibility.
Not observed during this load — 'select_item' requires user interaction on collection/category pages. Verify by manually testing the action on that page.
Consideration
Not observable on home pages — 'view_item' only fires on product detail pages. Audit that page type to verify coverage.
Cart Activity
Not observable on home pages — 'add_to_cart' only fires on product pages and cart. Audit that page type to verify coverage.
Not observable on home pages — 'remove_from_cart' only fires on cart page. Audit that page type to verify coverage.
Not observable on home pages — 'view_cart' only fires on cart page. Audit that page type to verify coverage.
Checkout Funnel
Not observable on home pages — 'begin_checkout' only fires on checkout entry page. Audit that page type to verify coverage.
Not observable on home pages — 'add_shipping_info' only fires on checkout shipping step. Audit that page type to verify coverage.
Not observable on home pages — 'add_payment_info' only fires on checkout payment step. Audit that page type to verify coverage.
Not observable on home pages — 'purchase' only fires on order confirmation / thank-you page. Audit that page type to verify coverage.
Post-Purchase
This event fires server-side (server-side or order management system) and cannot be observed by a browser-based audit.
Failed to load resource: the server responded with a status of 401 ()
Your tracking has gaps — PayHelm can fix this.
Broken tags mean lost attribution and bad decisions. PayHelm unifies your ecommerce, ad, and analytics data so every number is trustworthy — no guesswork.