Website Tracking & Analytics Audit
Free SEO + tracking audit — see exactly what's broken in under 60 seconds
The audit of your home page shows that your Google Analytics 4 (GA4) setup is functioning well, with the correct tracking ID firing as expected. However, there is a warning regarding Shopify's native analytics, specifically the Trekkie system, which loaded but did not send any data. This could mean that some native Shopify analytics features are not fully operational. Additionally, while the Web Pixels API is present and functioning, there's a potential risk of duplicate data if not managed carefully. For a comprehensive understanding of your tracking setup, the next audit should focus on product pages, the cart, checkout, and order-confirmation pages to ensure all key events are captured correctly. Given the current issues, I recommend connecting your store to PayHelm AI for a more detailed analysis and resolution.
Tag setup present but not confirmed 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 Shopify Customer Privacy. The default and update calls and the v2 signals (ad_user_data, ad_personalization) are all present.
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 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.
SEO basics are mostly in place with a few opportunities to improve.
Title is 77 characters. Google may truncate titles over ~70 chars in search results.
Renewed & Refurbished Desktops, Gaming PCs & Laptops | Speedy Staples (77 chars)Meta description is 151 characters — within the ideal 70–160 character range.
Shop renewed and refurbished desktop computers, budget gaming PCs, office desktops, mini PCs, and la… (151 chars)One H1 heading found — the recommended structure for every page.
Renewed Desktops, Gaming PCs & LaptopsNo noindex directive — the page is eligible to be indexed.
No robots meta tag (defaults to index, follow).Canonical tag points to the page itself — no duplicate-content signals sent to search engines.
https://www.speedystaples.com/All core Open Graph tags found — links display richly when shared on social media.
og:title ✓ og:description ✓ og:image ✓Structured data found — search engines can use it to generate rich results (star ratings, FAQs, products, breadcrumbs, etc.).
JSON-LD script foundViewport meta tag found — the page is set up for mobile-friendly rendering.
viewport meta tag presentNo GTM-XXXX container; gtag.js present instead.
No GTM container detected. This store relies on Shopify Web Pixels and direct gtag.js — a perfectly valid architecture for Shopify. GTM may improve centralised management but is not required.
G-ZJBDBYJ9V6 — collect hit observed.
Google Analytics 4 is actively sending pageview/event data.
Shop: mtgeeks.myshopify.com
This is a Shopify store. Pixels can fire from three sources: GTM tags, hardcoded theme code, and Shopify Customer Events (Web Pixels API sandbox). All three are audited here.
Trekkie loaded but no monorail beacon observed
Trekkie is present but no network beacon was observed — it may be blocked, gated behind consent, or misconfigured.
Fix this issueWeb Pixels API / Shopify.analytics detected — pixels run in a sandboxed iframe
Shopify's Web Pixels API is active. Pixels installed via Shopify Admin → Settings → Customer Events run in a sandboxed iframe, independently of GTM — they cannot interfere with each other, but duplicates are still possible if the same vendor is also in GTM or theme code.
cdn.shopify.com / window.Shopify
This site runs on Shopify. Tracking setup and common pitfalls differ by platform, which is factored into this audit.
default=true, update=true, signals=[ad_storage, ad_user_data, ad_personalization, analytics_storage], CMP=Shopify Customer Privacy
Consent Mode v2 is configured via Shopify Customer Privacy. The default and update calls and the v2 signals (ad_user_data, ad_personalization) are all present.
GA4 first hit 3352ms, DOMContentLoaded 2489ms
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.
user_data parameter
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. On Shopify, events may fire via Customer Events (Shopify Web Pixels sandbox) and may not be visible in the dataLayer — verify in Shopify Admin → Settings → Customer Events.
Not observed during this load — 'select_item' requires user interaction on collection/category pages. Verify by manually testing the action on that page. On Shopify, events may fire via Customer Events (Shopify Web Pixels sandbox) and may not be visible in the dataLayer — verify in Shopify Admin → Settings → Customer Events.
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.
The audit automatically visited additional page types discovered on the site to verify tags fire across the full funnel, not just on the entry page.
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.