Blog

A practical guide to filtering bots at the server layer

Cleaner data through server-side bot detection, without false positives. Includes the trade-offs we hit along the way.

Bot traffic is noisy in client-side analytics and quieter at the server, mainly because you have more signal at the server. Here are the things we keep coming back to.

  1. Treat your tagging URL like product infrastructure. It is not a marketing toy. Put it on the same uptime monitoring as your checkout.
  2. Use a custom domain from day one. Switching later is annoying and almost always loses some history.
  3. Hash PII before it leaves your server. SHA-256 the email, normalise it first, and never log the plaintext.
  4. Keep a written event taxonomy. It does not need to be elegant. It does need to exist somewhere people can find it.
  5. Version your container changes. GTM gives you versions for free. Use them. Future-you will be grateful.
  6. Test in preview mode for everything. Including the things you are sure work. Especially those.
  7. Reconcile with backend data weekly. A small drift is normal. A growing drift is a fire.
  8. Always log what you filter, at least at first. Otherwise you cannot debug the day someone says their analytics is missing visits.

None of these are revolutionary. They are the boring habits that separate teams who trust their data from teams who argue about it. A small amount of bot filtering at the server makes every downstream report more honest.