Tracker performance: what it costs your page

How much does the Netaj tracker slow your page down? Numbers, comparisons, and what we do to keep it cheap.

Adding any third-party script to your site has a cost. We've worked hard to keep that cost as small as we honestly can — here's what to expect, what we do to minimize it, and how to measure on your own site.

The numbers

  • Tracker size — ~6 KB gzipped, ~21 KB parsed. About a third of a typical analytics tag.
  • Network — a single GET on first page load. Cached for 5 minutes after that, so subsequent navigations are free.
  • JS execution — under 10ms on a mid-range mobile (Moto G4 reference). Negligible on desktop.
  • Lighthouse score impact — typically 0–2 points. We've seen sites drop more from a single oversized hero image.

What we do to stay light

  • Async by default — the script tag has async, so it doesn't block parsing. Your page renders before the tracker even loads.
  • Lazy-load heavy bits — the recorder and survey widget aren't bundled with the tracker. They're fetched only when needed (a website with no active recordings doesn't load the recorder).
  • Batched events — events are queued and sent every 5 seconds in one HTTP call, not on every click. Fewer requests, less overhead.
  • SendBeacon for tail — when a user is leaving the page, we use the sendBeacon API which is non-blocking and survives page unload.

Measure it on your own site

Open Chrome DevTools → Performance tab → record a page load with and without the tracker. Compare:

  • First Contentful Paint (FCP) — should be unchanged. The tracker doesn't block rendering.
  • Time to Interactive (TTI) — may shift by a few hundred milliseconds on slow connections. This is the legitimate cost.
  • Total Blocking Time (TBT) — should add <30ms on mobile.

If you do see a regression

It's almost always something else, but here's how to confirm it's not us:

  • Try the page with the tracker tag removed. If load times don't change meaningfully, the tracker isn't the cause.
  • Check the Network tab for failed requests — a slow or timed-out tracker request can stall things briefly. Look at status codes.
  • If you're on Salla or Shopify and using a heavy theme, the theme is usually the bigger offender.

Recording impact

The recorder is heavier — it captures DOM mutations and network requests. We only load it on websites with recording enabled, and even then only ~30% of sessions are sampled by default. If you want to lower it further, drop the recordingAllocation on the website.

Was this article helpful?