Skip to main content

Cookies & Browser Storage

The Pendo Web SDK persists a small amount of state in the browser — visitor and account identity, session bookkeeping, and short-lived guide-display state. Where that state is stored (cookies, localStorage, or sessionStorage) and therefore how much of it is sent on every request as a Cookie header depends on how you configure the SDK.

This page summarizes the total cookie footprint you can expect under common configurations. For the full key-by-key reference of every stored value, see localStorage values and sessionStorage values.

Where the SDK stores state

MechanismWhen it's usedSent on requests?
localStorageDefault. When no cookieDomain is set, identity and most state is kept in localStorage.No
CookiesWhen a cookieDomain is configured, so identity can be shared across subdomains.Yes — adds to the Cookie request header on the matching domain.
sessionStoragePer-tab/session bookkeeping (tab id, session id, clone detection).No
In-memory onlyWhen disableCookies is set, nothing is persisted across page loads.No

The key takeaway: without a cookieDomain, the SDK's cookie footprint is effectively zero — identity lives in localStorage. Cookies are only used when you need identity to be shared across subdomains, which is what cookieDomain (and cross-domain identity) enable.

note

Storage keys are named _pendo_<key>.<suffix>, where <suffix> is your application id by default. Values are URL-encoded when written, so the byte counts below reflect the encoded size that actually travels in the Cookie header.

The figures below were measured against a Web SDK build with all independent plugins loaded (session replay, console/network/text capture, feedback, etc.), using a representative ~40-character visitor id and account id. Treat them as estimates: the footprint scales with the length of your visitor/ account ids, your identityStorageSuffix, and any UTM parameters present in the page URL.

ConfigurationCookiesApprox. Cookie header size
Default (no cookieDomain)0~0 B (state is in localStorage)
cookieDomain set5~470 B
Cross-domain identity (cookieDomain + identityStorageSuffix)5~400 B
Worst case (above + UTM params + guide-display state)9~1.5 KB

These sit comfortably within browser limits (typically ~4 KB per cookie and ~180 cookies per domain), but they add to every request on the cookie domain, so they're worth understanding when you share a domain with other cookie-heavy applications.

note

The guide-display cookies always use the application-id suffix (not the identityStorageSuffix), so their names remain the longer GUID form even when cross-domain identity is enabled. They also expire 10 seconds after the interaction, so this peak is transient.

Reducing the footprint

  • Leave cookieDomain unset unless you need cross-subdomain identity — the default localStorage path sends nothing on requests.
  • Use identityStorageSuffix when running multiple Pendo applications on one domain, so identity cookies are shared rather than duplicated per application.
  • Set disableCookies to keep all state in memory (not persisted across page loads) where persistence isn't needed.
  • Keep visitor and account ids reasonably short — id length is the main driver of identity-cookie size.