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 areas that need attention. Currently, Google Analytics 4 (GA4) is set up and successfully tracking, but there are multiple GA4 IDs, which could lead to conflicting data. Additionally, your site is using the older Universal Analytics, which is now deprecated and should be replaced with GA4. There is no Google Tag Manager (GTM) container detected, which is unusual as GTM is typically used for managing tags. Furthermore, Google Consent Mode is not being utilized, which might affect compliance with privacy regulations. Since your store is not on Shopify, there's no need to worry about Trekkie or Web Pixels API. However, you should consider auditing other key pages like product, cart, checkout, and order-confirmation pages to ensure comprehensive tracking. Given the issues identified, I recommend connecting your store to PayHelm AI for a more detailed analysis and guidance on optimizing your analytics setup.
Tag setup present but not confirmed loading.
GA4 is installed and sending data.
Not an ecommerce store — scored on basic analytics coverage.
No data-quality issues found in tracked events.
Consent Mode not detected.
Tags load quickly.
Conflicting or deprecated analytics IDs detected.
No Google Consent Mode was detected. Since March 2024 Google requires Consent Mode v2 for sites with EEA/UK traffic running Google Ads — without it, conversion and remarketing data is lost for users who haven't consented.
Tags loaded quickly — 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 were not detected. They send hashed first-party data (email/phone) to recover conversions lost to cookie restrictions — worth enabling if you run Google Ads.
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.
Multiple GA4 measurement IDs were found (G-1CMT7T7J7R, G-DFGBHG1LXW, G-CQBKPK00VG). Sending the same events to more than one GA4 property is sometimes intentional, but is often an accident that doubles event counts or splits data — confirm each ID is meant to be here.
No GTM-XXXX container; gtag.js present instead.
Tags are loaded directly via gtag.js rather than through Tag Manager. That works, but you lose GTM's centralised management, versioning, and conditional firing controls.
Fix this issueG-1CMT7T7J7R, G-DFGBHG1LXW, G-CQBKPK00VG — collect hit observed.
Google Analytics 4 is actively sending pageview/event data.
Found UA-127814725-1.
Universal Analytics stopped processing data in 2023. These tags do nothing and should be removed.
Fix this issue50 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.
No consent API calls observed
No Google Consent Mode was detected. Since March 2024 Google requires Consent Mode v2 for sites with EEA/UK traffic running Google Ads — without it, conversion and remarketing data is lost for users who haven't consented.
Fix this issueGA4 first hit 8879ms, DOMContentLoaded 12124ms
Tags loaded quickly — 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.
Not detected
Google Ads Enhanced Conversions were not detected. They send hashed first-party data (email/phone) to recover conversions lost to cookie restrictions — worth enabling if you run Google Ads.
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.
G-1CMT7T7J7R, G-DFGBHG1LXW, G-CQBKPK00VG
Multiple GA4 measurement IDs were found (G-1CMT7T7J7R, G-DFGBHG1LXW, G-CQBKPK00VG). Sending the same events to more than one GA4 property is sometimes intentional, but is often an accident that doubles event counts or splits data — confirm each ID is meant to be here.
Fix this issueEcommerce Funnel — Not Applicable
This site doesn't appear to be an online store, so the ecommerce funnel report has been skipped. GTM tag coverage, triggers, variables, and on-page scripts are still audited above.
If this site does sell products, try re-running the audit on a product page URL — that will surface add-to-cart, checkout, and purchase event coverage.
These tracking scripts are hardcoded directly in your page HTML. Moving them into GTM makes them easier to update, pause, version, and conditionally fire — without touching your code.
GA4 gtag.js snippet installed directly in the page HTML (outside GTM).
Fix: Remove the hardcoded GA4 snippet and manage it via a GTM 'Google Analytics: GA4 Configuration' tag.
Risk: Running GA4 both directly and via GTM sends duplicate pageviews and inflates every metric in your reports.
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
mejs is not defined
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
Failed to load resource: the server responded with a status of 429 ()
n(...).not(...).filter(...).mediaelementplayer is not a function
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.