How to tell if a site uses server-side GTM, from outside
Two signals show server-side tagging from outside: the GTM script loads from the site's own host instead of googletagmanager.com, or the public container names a server_container_url or transport_url. On 5 Nov 2026, 209 of 1,727 sites we read (12.1%) showed one of the two; 124 of 1,201 B2B SaaS sites (10.3%). A server container behind a plain path can show neither.
Check this on your own site
Free. Public tags only. Your result opens on the scan page.
Which two signals can we see?
With server-side tagging the browser sends events to a container you host (Google: server-side tagging). That leaves two traces.
- The tag script comes from the site's own host. The page loads
https://metrics.example.com/gtm.js?id=GTM-XXXXXXX, nothttps://www.googletagmanager.com/gtm.js?id=GTM-XXXXXXX. (custom domain setup) - The public container names a server endpoint. The Google tag carries a
server_container_urlortransport_urlthat points hits at the server container (Google for Developers: send data to a server container).
| Signal | Where you see it | Proves a server container? |
|---|---|---|
| 1. gtm.js from the site's own host | Page source or DevTools Network | No. A CDN copy of gtm.js looks the same; step 3 below settles it |
2. server_container_url or transport_url | The public container JSON | Close: the browser is told to send hits there |
| Neither | Nothing in source or the container | No answer: a server container behind a plain path shows neither |
Our scan counts a site if either signal shows. It reads the homepage, /pricing, /signup, /demo and their containers, so it undercounts signal 1.
How many sites show the signal?
| Group | Sites | With a server-side signal |
|---|---|---|
| All sites | 1,727 | 209 (12.1%) |
| B2B SaaS | 1,201 | 124 (10.3%) |
| Ecommerce | 255 | 52 (20.4%) |
| Marketing agencies (their own site) | 271 | 33 (12.2%) |
| Tranco top 10k | 213 | 33 (15.5%) |
| Not in the Tranco top 1M | 362 | 30 (8.3%) |
How do I check a site in 5 minutes?
- View source and search for
gtm.js. If the host in front of it is notwww.googletagmanager.com, that is signal 1. - Open the container (the gtm.js URL from step 1) and search for
server_container_urlandtransport_url. A URL on the site's domain is signal 2. - Open DevTools, Network tab, filter on
g/collect, reload. A GA4 hit to the site's own domain instead ofgoogle-analytics.comconfirms a server container. - Write down what you see, with the date. "Uses sGTM" without a date is a guess.
Does it change how Google Ads conversions are counted?
It changes where the hit travels, not which conversions exist. Among the 886 sites with Google Ads conversion tags, 142 (16.0%) show a server-side signal. Of those 142, 76 (53.5%) turn on enhanced conversions on at least one tag, against 271 of 744 (36.4%) of the other Ads sites. A bad trigger stays bad through your server. Audit first: every-page conversions, duplicates, enhanced conversions.
What can't we see from outside?
- A server container behind a plain path. Neither signal fires, so our 12.1% misses it.
- What the server forwards, or whether it applies consent.
- Primary or secondary Ads status. It lives in the Google Ads account.
- The sample. 1,727 sites from lists, not random, read from static code.
FAQ
Is server-side tagging the same as a first-party script?
No. A site can serve gtm.js from its own CDN with no server container. A GA4 hit to its own domain is the stronger sign.
Can Fireshift tell if a competitor uses server-side GTM?
Partly. The check above works on any site; the free scan doesn't report these signals yet. No signal does not mean no server container.
Run the free scan on your site.
Fireshift reads what your site tells Google Ads, GA4 and Meta from the outside. No install, takes seconds.