Website Tracking & Analytics Audit
Free SEO + tracking audit — see exactly what's broken in under 60 seconds
Your website's analytics setup shows some areas that need attention. Currently, Google Analytics 4 (GA4) is properly firing on your homepage, but there are two different GA4 IDs active, which could lead to data discrepancies. Additionally, there's no Google Tag Manager (GTM) container detected, which means you're using gtag.js directly instead — this isn't necessarily a problem, but GTM can offer more flexibility and control. There are also several JavaScript errors that need to be addressed to ensure smooth data collection. Since your site isn't using Shopify, there's no need to worry about Trekkie or the Web Pixels API. Next, you should audit product pages, the cart, and checkout processes to ensure all necessary events are tracked accurately. Given the issues found, I recommend connecting your store to PayHelm AI for a more comprehensive analysis and assistance.
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. This mainly matters if you run Google Ads with EEA/UK traffic — no Google Ads pixel was seen on this site, so it's lower priority for now.
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-2VZKPB8QD2, G-K25L5Y1JLQ). 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.
3 SEO improvements identified — addressing them could meaningfully boost organic visibility.
Title is only 17 characters. Google shows 50–70 chars — consider expanding.
Home - GolfersTee (17 chars)Meta description is 10 characters. Aim for 70–160 chars to maximise click-through rate.
more posts (10 chars)No H1 heading found. Search engines use H1 to understand the page's primary topic — every page should have exactly one.
No H1 tag found.No noindex directive — the page is eligible to be indexed.
robots: follow, index, max-snippet:-1, max-video-preview:-1, max-image-preview:largeCanonical tag points to the page itself — no duplicate-content signals sent to search engines.
https://golferstee.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 exists but doesn't follow the standard format. Use a top-level heading plus markdown links to your most important pages.
Found at /llms.txt but missing the expected structure (a top-level # heading and markdown links).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, ~282 words) — AI crawlers are not blocked at the server level.
GPTBot's User-Agent received HTTP 200 with ~282 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, WebSite, Article.Meaningful text content is present in the raw HTML response — AI crawlers that don't execute JavaScript can still read and cite this page.
~416 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.- Reformat llms.txt to follow the standard: a top-level `# Site Name` heading, a one-line summary, then markdown links (`[Page](url): description`) to your key pages.
- 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.
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-2VZKPB8QD2, G-K25L5Y1JLQ — collect hit observed.
Google Analytics 4 is actively sending pageview/event data.
13 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. This mainly matters if you run Google Ads with EEA/UK traffic — no Google Ads pixel was seen on this site, so it's lower priority for now.
GA4 first hit 2140ms, DOMContentLoaded 2587ms
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-2VZKPB8QD2, G-K25L5Y1JLQ
Multiple GA4 measurement IDs were found (G-2VZKPB8QD2, G-K25L5Y1JLQ). 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.
Unexpected token '<'
Failed to load resource: the server responded with a status of 400 ()
Object
Failed to load resource: the server responded with a status of 400 ()
Object
Failed to load resource: the server responded with a status of 400 ()
Object
Failed to load resource: the server responded with a status of 400 ()
Object
Failed to load resource: the server responded with a status of 400 ()
Object
Failed to load resource: the server responded with a status of 400 ()
Object
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.