Website Tracking & Analytics Audit
Free SEO + tracking audit — see exactly what's broken in under 60 seconds
Your website's tracking infrastructure is mostly healthy, with Google Tag Manager (GTM) and Google Analytics 4 (GA4) set up correctly and firing as expected on the homepage. All expected tags, including those for Hotjar, TikTok, LinkedIn, and Meta, fired successfully. However, there are a few areas of concern: the GTM snippet is not ideally placed in the HTML, and there's a potential duplication risk with Hotjar, which could affect data accuracy. Additionally, the page load performance for tags is slower than ideal, which might impact user experience. For Shopify, both Trekkie and the Web Pixels API are functioning well, but it's important to monitor for any duplicate pixel issues. The next step is to audit other key pages like product, cart, checkout, and order-confirmation to ensure comprehensive tracking across your site. Given the identified issues, I recommend connecting your store to PayHelm AI for a more detailed analysis and to optimize your tracking setup.
GTM container installed and loading.
GA4 is installed and sending data.
4 of 4 key funnel stages look healthy.
0 error(s) and 2 warning(s) in tracked event data.
Consent Mode v2 configured.
Tag loading is slower than ideal.
No conflicting analytics IDs.
Consent Mode v2 is configured via Cookiebot. The default and update calls and the v2 signals (ad_user_data, ad_personalization) are all present.
Google Tag Manager took 4.4s to load. Slow tag loading delays tracking and can hurt page performance — consider reducing the number of tags or loading them later.
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 appears to be configured — logged-in users can be measured consistently across devices.
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 41 characters — within the ideal 30–70 character range.
Good Ranchers | #1 American Meat Delivery (41 chars)Meta description is 322 characters. Google may truncate descriptions over ~160 chars.
Born, Raised, and Made in the USA: Protein you can trust, delivered to your door. Enjoy beef, chicke… (322 chars)One H1 heading found — the recommended structure for every page.
Good RanchersNo 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.goodranchers.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 present2 AI discoverability gaps found — closing them improves your odds of being cited by ChatGPT, Claude, Perplexity, and Google AI Overviews.
llms.txt is present and well-formed — AI assistants that check this file can quickly find your key pages and docs.
Found at /llms.txt with a title heading and 5 linked resources.No skill.md file found. This is an emerging convention for describing agent-callable capabilities/tools to AI agents — optional today, but worth watching as adoption grows.
No /skill.md or /.well-known/skill.md found.robots.txt doesn't block any major AI crawler — ChatGPT, Claude, Perplexity, and Google's AI features can all fetch and cite your content.
All 15 known AI crawlers are allowed.GPTBot's User-Agent successfully fetched the real page (HTTP 200, ~1197 words) — AI crawlers are not blocked at the server level.
GPTBot's User-Agent received HTTP 200 with ~1197 words of visible text.Structured data (JSON-LD) is present with types AI answer engines commonly extract facts from (e.g. FAQPage, Product, Organization).
Schema.org types found: Organization.Meaningful text content is present in the raw HTML response — AI crawlers that don't execute JavaScript can still read and cite this page.
~955 words of text visible in the raw HTML response.No sitemap.xml found. Without one, crawlers (including AI crawlers) can only discover pages by following links, which may miss deeper content.
No /sitemap.xml found.4 links in llms.txt/skill.md pointed to a domain or endpoint that doesn't actually work — including shop.app. AI agents that trust this file at face value will hit dead ends; verify these weren't hallucinated.
4 of 15 referenced links didn't resolve: https://shop.app/SKILL.md](https://shop.app/SKILL.md (returned HTTP 429); https://shop.app/SKILL.md` (returned HTTP 429); https://www.goodranchers.com/.well-known/ucp` (returned HTTP 404); https://www.goodranchers.com/api/ucp/mcp` (returned HTTP 404).- Publish a sitemap.xml — it's the fastest way for both search engines and AI crawlers to discover every page worth citing, not just the ones linked from your homepage.
- Fix or remove 4 broken links in llms.txt/skill.md (https://shop.app/SKILL.md](https://shop.app/SKILL.md, https://shop.app/SKILL.md`, https://www.goodranchers.com/.well-known/ucp`, …) — AI agents that follow them will hit a dead end instead of your content.
Marketing & analytics tags observed sending data while the page loaded.
Every dataLayer push observed during page load — with full payload and configuration analysis.
Payload
Warnings
Payload
Warnings
›GTM lifecycle events (6)— 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-5JJXF3T
A Google Tag Manager container is installed on this page.
1/1 container(s) returned a successful gtm.js response.
The container's JavaScript downloaded successfully, so GTM can run.
No <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 was not found high in <head>.
The container loads later than recommended. Tags may fire late and miss early page activity.
Fix this issueG-HMGQ05HKRS — collect hit observed.
Google Analytics 4 is actively sending pageview/event data.
18 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.
Shop: 592fbd-2.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 beacon fired (monorail)
Shopify's built-in Trekkie analytics library is active and sending data to Shopify's own reporting.
Web 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.
Possible duplication: Hotjar
On Shopify stores, the same pixel can fire from three places simultaneously: hardcoded theme code, GTM tags, and Shopify Customer Events. Duplicate fires inflate conversion counts, corrupt ROAS, and can cause ad platforms to over-bid. Remove all but one source for each vendor.
Fix this issuecdn.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=Cookiebot
Consent Mode v2 is configured via Cookiebot. The default and update calls and the v2 signals (ad_user_data, ad_personalization) are all present.
GTM 4355ms, GA4 first hit 6580ms, DOMContentLoaded 3083ms
Google Tag Manager took 4.4s to load. Slow tag loading delays tracking and can hurt page performance — consider reducing the number of tags or loading them later.
Fix this issueNo 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.
uid parameter on GA4 hit
GA4 User-ID tracking appears to be configured — logged-in users can be measured consistently across devices.
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 on this page. Confirm 'view_item_list' is configured on your collection/category/search pages. 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.
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.
Hotjar snippet hardcoded in the page HTML.
Fix: Use the GTM Hotjar community tag template to manage it centrally.
Risk: Updates require a code deploy rather than a GTM publish. No conditional firing or easy pausing.
Multiple import maps are not yet supported. https://crbug.com/927119
Multiple import maps are not yet supported. https://crbug.com/927119
Clear-Site-Data header on 'https://www.goodranchers.com/cart/update.js': Unrecognized type: "prefetchCache".
Clear-Site-Data header on 'https://www.goodranchers.com/cart/update.js': Unrecognized type: "prerenderCache".
Clear-Site-Data header on 'https://www.goodranchers.com/cart/update.js': No recognized types specified.
Error: Required ref "liveRegion" not found in component product-form-component
Error: Required ref "liveRegion" not found in component product-form-component
Error: Required ref "liveRegion" not found in component product-form-component
Failed to load resource: the server responded with a status of 404 ()
Failed to load resource: the server responded with a status of 404 ()
Failed to load resource: the server responded with a status of 404 ()
Clear-Site-Data header on 'https://www.goodranchers.com/cart/update.js': Unrecognized type: "prefetchCache".
Clear-Site-Data header on 'https://www.goodranchers.com/cart/update.js': Unrecognized type: "prerenderCache".
Clear-Site-Data header on 'https://www.goodranchers.com/cart/update.js': No recognized types specified.
Access to XMLHttpRequest at 'https://a.klaviyo.com/onsite/track-analytics?company_id=WWd4mK' from origin 'https://www.goodranchers.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Failed to load resource: net::ERR_FAILED
Access to XMLHttpRequest at 'https://a.klaviyo.com/onsite/track-analytics?company_id=WWd4mK' from origin 'https://www.goodranchers.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Failed to load resource: net::ERR_FAILED
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.