Website Tracking & Analytics Audit
Free SEO + tracking audit — see exactly what's broken in under 60 seconds
Your website's analytics setup has a few areas that need attention. Currently, Google Analytics 4 is successfully tracking visits to your homepage, but there is no Google Tag Manager (GTM) container detected, which is typically used for managing various tracking tags more efficiently. This is not a critical issue but could be improved for better tag management. Additionally, there are no Shopify-specific analytics tools in place, which makes sense since your site is running on WooCommerce, not Shopify. The main gap identified is the absence of the 'view_item_list' event, which should be firing on your homepage to track product list views. This is an important metric for understanding user engagement with your product listings. For your next steps, it would be beneficial to audit your product pages, cart, and checkout processes to ensure all relevant events are firing correctly. Given the current gaps, I recommend connecting your store to PayHelm AI to optimize your analytics setup and ensure comprehensive data collection.
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 not detected.
Tags load quickly.
No conflicting analytics IDs.
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.
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 fundamentals look solid across all checks.
Title is 69 characters — within the ideal 30–70 character range.
Mike's Handyman & Cleaning | Charlotte 5-Star House Cleaning (69 chars)Meta description is 160 characters — within the ideal 70–160 character range.
Book trusted handyman services, residential cleaning & reliable maid services in Charlotte, NC. … (160 chars)One H1 heading found — the recommended structure for every page.
House Cleaning Services in Charlotte, NCNo noindex directive — the page is eligible to be indexed.
robots: index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1Canonical tag points to the page itself — no duplicate-content signals sent to search engines.
https://mikeshandymanandclean.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 presentBlocked: AI crawlers are actually refused at the server level (HTTP 429) when they try to fetch this site.
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.We fetched your homepage using GPTBot's real User-Agent and it was refused (HTTP 429). This is a server/firewall-level block — AI crawlers cannot read this site at all, regardless of what robots.txt says.
GPTBot's User-Agent received HTTP 429.Structured data (JSON-LD) is present with types AI answer engines commonly extract facts from (e.g. FAQPage, Product, Organization).
Schema.org types found: BreadcrumbList, WebSite, Organization, FAQPage.Meaningful text content is present in the raw HTML response — AI crawlers that don't execute JavaScript can still read and cite this page.
~2839 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.
- AI crawlers get blocked at the server level (HTTP 429) when fetching your homepage, even though this may not show up in robots.txt. Check your WAF/CDN's bot-management rules for a User-Agent block on AI crawlers.
- 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.
WooCommerce markup (woocommerce / wc-* classes) in HTML
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-JV651TC9YT — collect hit observed.
Google Analytics 4 is actively sending pageview/event data.
WooCommerce markup (woocommerce / wc-* classes) in HTML
This site runs on WooCommerce. Tracking setup and common pitfalls differ by platform, which is factored into this audit.
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 2143ms, DOMContentLoaded 1921ms
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.
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. Set up 'view_item_list' on your collection/category/search pages for funnel visibility.
Fix this gapNot 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.
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.
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.