Website Tracking & Analytics Audit
PayHelm

Website Tracking & Analytics Audit

Free SEO + tracking audit — see exactly what's broken in under 60 seconds

Full GTM config is private — this reports the observed runtime container (what actually loads & fires). We'll email your report to the address above.

Works, with issueshttps://www.displetech.com/

Your website's tracking setup has a few areas that need attention. Currently, only one of your two Google Tag Manager (GTM) containers is loading correctly, which could affect data collection. On the homepage, Google Analytics 4 (GA4) and Google Ads tags fired successfully, indicating that basic tracking is operational. However, there is a warning regarding Shopify's Trekkie analytics not firing as expected, which could mean some Shopify-native analytics are not being captured. Additionally, there is a JavaScript error that should be addressed to prevent potential tracking issues. For Shopify stores, it's important to ensure that Trekkie and the Web Pixels API are functioning properly to avoid duplicate data collection and ensure comprehensive analytics. Next, you should audit the product page, cart, checkout, and order-confirmation pages to ensure all critical events are tracked. Given these findings, I recommend connecting your store to PayHelm AI for a more in-depth analysis and to address these issues effectively.

Tracking Health: 100/100 · ASEO Score: 93/100 · AAI SEO Score: 45/100 · D
Overall Tracking Health
100out of 100Grade AExcellent
Tag manager installed20/20

GTM container installed and loading.

GA4 tracking20/20

GA4 is installed and sending data.

Ecommerce funnel coverage20/20

4 of 4 key funnel stages look healthy.

Data quality15/15

No data-quality issues found in tracked events.

Consent Mode10/10

Consent Mode v2 configured.

Performance10/10

Tags load quickly.

No conflicts5/5

No conflicting analytics IDs.

Advanced Tracking Features
Consent Mode v2Pass

Consent Mode v2 is configured via Cookiebot. The default and update calls and the v2 signals (ad_user_data, ad_personalization) are all present.

default: yesupdate: yes✓ ad_storage✓ analytics_storage✓ ad_user_data✓ ad_personalization✓ functionality_storage✓ personalization_storage✓ security_storageCMP: Cookiebot
Tag PerformancePass

Tags loaded quickly (GTM in 1.20s) — no performance concern.

GTM 1.20sGA4 first hit 3.23sDOM ready 1.98sPage load 3.33s
Cross-domain TrackingInfo

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.

Enhanced ConversionsInfo

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.

User-ID TrackingInfo

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.

Checkout & Purchase CoverageWarning

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 Review
93out of 100Grade AExcellent

SEO basics are mostly in place with a few opportunities to improve.

Title tagPass

Title is 60 characters — within the ideal 30–70 character range.

Supply Store for Retail Displays in Canada | Adco DispleTech (60 chars)
Meta descriptionPass

Meta description is 159 characters — within the ideal 70–160 character range.

Adco DispleTech provides professional display and retail fixtures in Canada, offering expert design,… (159 chars)
H1 headingPass

One H1 heading found — the recommended structure for every page.

Robots / indexabilityPass

No noindex directive — the page is eligible to be indexed.

No robots meta tag (defaults to index, follow).
Canonical URLPass

Canonical tag points to the page itself — no duplicate-content signals sent to search engines.

https://www.displetech.com/
Open Graph tagsWarning

1 Open Graph tag(s) missing. Complete the set for consistent social link previews.

og:title ✓ og:description ✓ og:image ✗
Structured data (Schema.org)Pass

Structured data found — search engines can use it to generate rich results (star ratings, FAQs, products, breadcrumbs, etc.).

JSON-LD script found
Mobile viewportPass

Viewport meta tag found — the page is set up for mobile-friendly rendering.

viewport meta tag present
AI Discovery & AI SEOBlocked for AI
45out of 100Grade DNeeds work

Blocked: AI crawlers are actually refused at the server level (HTTP 403) when they try to fetch this site.

llms.txt filePass

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.
AI crawler access (robots.txt)Fail

robots.txt blocks every major AI crawler. Your content cannot be cited by ChatGPT, Claude, Perplexity, or Google AI Overviews — verify this is intentional.

15 of 15 AI crawlers blocked: GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-Web, anthropic-ai, PerplexityBot, Perplexity-User, Google-Extended, Applebot-Extended, Bytespider, CCBot, Amazonbot, cohere-ai, Meta-ExternalAgent.
Live AI crawler testFail

We fetched your homepage using GPTBot's real User-Agent and it was refused (HTTP 403). 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 403.
Structured data for AI answersPass

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, BreadcrumbList, WebSite.
Server-rendered contentPass

Meaningful text content is present in the raw HTML response — AI crawlers that don't execute JavaScript can still read and cite this page.

~942 words of text visible in the raw HTML response.
XML sitemapWarning

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.
AI crawlers
GPTBot blockedOAI-SearchBot blockedChatGPT-User blockedClaudeBot blockedClaude-Web blockedanthropic-ai blockedPerplexityBot blockedPerplexity-User blockedGoogle-Extended blockedApplebot-Extended blockedBytespider blockedCCBot blockedAmazonbot blockedcohere-ai blockedMeta-ExternalAgent blocked
Opportunities
  • Unblock GPTBot, OAI-SearchBot, ChatGPT-User, … in robots.txt if you want your content surfaced in AI answers — each blocked bot means that assistant can't read or cite your pages.
  • AI crawlers get blocked at the server level (HTTP 403) 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.
Shopify Store Detecteddispletech.myshopify.com
Trekkie / Native Analytics
Present — no beacon observed
Web Pixels API
Active (Customer Events sandbox)
Shopify Analytics
Present
On Shopify, pixels can fire from three independent sources: GTM tags, hardcoded theme code, and Shopify Customer Events. Duplicate fires inflate conversion counts and corrupt ROAS — see the checks below for details.
GTM-N75XC3GVhead
Loaded
Tags(2)

Marketing & analytics tags observed sending data while the page loaded.

Google AdsConversion / Remarketing
3 hits
Google Analytics 4GA4 Event · G-3VMCMKE513
1 hit
Triggers(4)

Every dataLayer push observed during page load — with full payload and configuration analysis.

GTM lifecycle events (4)— gtm.js, gtm.dom, gtm.load, etc.
Variables(9)

Data points present in the dataLayer that your tags can read (the values pushed alongside each event).

gtm.starteventgtm.uniqueEventIdgtm.elementgtm.elementClassesgtm.elementIdgtm.elementTargetgtm.triggersgtm.elementUrl
Network hits(7)

The actual tracking requests your browser sent — the ground-truth proof that a tag fired.

200gtm.jshttps://www.googletagmanager.com/gtm.js?id=GTM-N75XC3GV
beaconadshttps://ad.doubleclick.net/ccm/s/collect?auid=725731728.1788705652&gtm=45He6921v9248316594za200zd9248316594xea&fmt=8
200gtag.jshttps://www.googletagmanager.com/gtag/js?id=AW-971623772&cx=c&gtm=4e6921
200gtag.jshttps://www.googletagmanager.com/gtag/js?id=G-3VMCMKE513&cx=c&gtm=4e6921
204adshttps://stats.g.doubleclick.net/g/collect?v=2&tid=G-3VMCMKE513&cid=217134247.1788705653&gtm=45je6921v890780589z89248316594za20gzb9248316594zd9248316594&rcb=3&ai
200adshttps://googleads.g.doubleclick.net/pagead/viewthroughconversion/971623772/?random=1788705652464&cv=11&fst=1788705652464&bg=ffffff&guid=ON&async=1&en=gtag.confi
beaconga4-collecthttps://analytics.google.com/g/collect?v=2&tid=G-3VMCMKE513&gtm=45je6921v890780589z89248316594za20gzb9248316594zd9248316594&_p=1788705650135&_gaz=1&gcd=13l3l3l3
GTM-TS92KM3head
Not loaded
Tags(2)

Marketing & analytics tags observed sending data while the page loaded.

Google AdsConversion / Remarketing
3 hits
Google Analytics 4GA4 Event · G-3VMCMKE513
1 hit
Triggers(4)

Every dataLayer push observed during page load — with full payload and configuration analysis.

GTM lifecycle events (4)— gtm.js, gtm.dom, gtm.load, etc.
Variables(9)

Data points present in the dataLayer that your tags can read (the values pushed alongside each event).

gtm.starteventgtm.uniqueEventIdgtm.elementgtm.elementClassesgtm.elementIdgtm.elementTargetgtm.triggersgtm.elementUrl
Network hits(7)

The actual tracking requests your browser sent — the ground-truth proof that a tag fired.

200gtm.jshttps://www.googletagmanager.com/gtm.js?id=GTM-N75XC3GV
beaconadshttps://ad.doubleclick.net/ccm/s/collect?auid=725731728.1788705652&gtm=45He6921v9248316594za200zd9248316594xea&fmt=8
200gtag.jshttps://www.googletagmanager.com/gtag/js?id=AW-971623772&cx=c&gtm=4e6921
200gtag.jshttps://www.googletagmanager.com/gtag/js?id=G-3VMCMKE513&cx=c&gtm=4e6921
204adshttps://stats.g.doubleclick.net/g/collect?v=2&tid=G-3VMCMKE513&cid=217134247.1788705653&gtm=45je6921v890780589z89248316594za20gzb9248316594zd9248316594&rcb=3&ai
200adshttps://googleads.g.doubleclick.net/pagead/viewthroughconversion/971623772/?random=1788705652464&cv=11&fst=1788705652464&bg=ffffff&guid=ON&async=1&en=gtag.confi
beaconga4-collecthttps://analytics.google.com/g/collect?v=2&tid=G-3VMCMKE513&gtm=45je6921v890780589z89248316594za20gzb9248316594zd9248316594&_p=1788705650135&_gaz=1&gcd=13l3l3l3
Checks
GTM container detectedPass

GTM-N75XC3GV, GTM-TS92KM3

A Google Tag Manager container is installed on this page.

Container script loads (gtm.js)Warning

1/2 container(s) returned a successful gtm.js response.

Some containers loaded but at least one did not — check the container ID is published and not blocked.

Fix this issue
Noscript fallback presentPass

Found <noscript> ns.html iframe.

The fallback for visitors with JavaScript disabled is in place.

Snippet placement in <head>Pass

GTM snippet appears inside <head>.

The container is loaded early, as Google recommends, so tags fire as soon as possible.

dataLayer initialised before GTMWarning

dataLayer was not clearly initialised before the container snippet.

If the container loads before dataLayer is ready, early values (like ecommerce data) can be lost.

Fix this issue
GA4 firingPass

G-3VMCMKE513 — collect hit observed.

Google Analytics 4 is actively sending pageview/event data.

JavaScript errors during loadInfo

1 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.

Shopify platform detectedPass

Shop: displetech.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.

Shopify native analytics (Trekkie)Warning

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 issue
Shopify Web Pixels API (Customer Events)Pass

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.

Shopify platform detectedInfo

cdn.shopify.com / window.Shopify

This site runs on Shopify. Tracking setup and common pitfalls differ by platform, which is factored into this audit.

Google Consent Mode v2Pass

default=true, update=true, signals=[ad_storage, analytics_storage, ad_user_data, ad_personalization, functionality_storage, personalization_storage, security_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.

Tag load performancePass

GTM 1201ms, GA4 first hit 3230ms, DOMContentLoaded 1982ms

Tags loaded quickly (GTM in 1.20s) — no performance concern.

Cross-domain trackingInfo

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.

Enhanced Conversions (Google Ads)Info

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.

User-ID tracking (GA4)Info

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.

Checkout / purchase coverageWarning

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 issue
Marketing Funnel Coverage
0 observed· 11 not auditable on this page

Funnel 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

Product List / Collection Viewhigh
view_item_listMeta: ViewContentfound in JS ✓

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.

Product Click from Listmedium
select_item

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

Product Detail Page Viewcritical
view_itemMeta: ViewContentfound in JS ✓

Not observable on home pages — 'view_item' only fires on product detail pages. Audit that page type to verify coverage.

Cart Activity

Add to Cartcritical
add_to_cartMeta: AddToCartfound in JS ✓

Not observable on home pages — 'add_to_cart' only fires on product pages and cart. Audit that page type to verify coverage.

Remove from Cartmedium
remove_from_cartfound in JS ✓

Not observable on home pages — 'remove_from_cart' only fires on cart page. Audit that page type to verify coverage.

Cart / Bag Page Viewhigh
view_cartfound in JS ✓

Not observable on home pages — 'view_cart' only fires on cart page. Audit that page type to verify coverage.

Checkout Funnel

Begin Checkoutcritical
begin_checkoutMeta: InitiateCheckoutfound in JS ✓

Not observable on home pages — 'begin_checkout' only fires on checkout entry page. Audit that page type to verify coverage.

Shipping Info Enteredhigh
add_shipping_infofound in JS ✓

Not observable on home pages — 'add_shipping_info' only fires on checkout shipping step. Audit that page type to verify coverage.

Payment Info Enteredhigh
add_payment_infoMeta: AddPaymentInfofound in JS ✓

Not observable on home pages — 'add_payment_info' only fires on checkout payment step. Audit that page type to verify coverage.

Purchase / Order Confirmationcritical
purchaseMeta: Purchasefound in JS ✓

Not observable on home pages — 'purchase' only fires on order confirmation / thank-you page. Audit that page type to verify coverage.

Post-Purchase

Refund / Order Cancellationlow
refund

This event fires server-side (server-side or order management system) and cannot be observed by a browser-based audit.

JavaScript errors (1)

$ is not defined

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.

Ask a follow-up question