"Verify installation" checks for the Hotjar snippet actively running on the current page at the moment you click the button - it fails when the snippet loads late, is blocked by a consent gate or ad blocker, or only exists on some routes rather than the app shell. Virtual pageviews are missed separately because Hotjar, like most pixel-style trackers, only recognizes a real page load unless you explicitly signal a route change.
Why this happens
The verification tool works by looking for Hotjar's script actively running in the current page's context - if the snippet is deferred, gated behind a consent manager that has not fired yet, or was only added to one page template rather than a layout that wraps every route, the check legitimately fails because Hotjar genuinely is not loaded yet, or ever, on that route.
Separately, once installed, Hotjar recordings and heatmaps are scoped by URL - a single-page app that changes visible content without changing the URL (or changes the URL without a full reload) will not automatically register that as a new page unless the app calls Hotjar's own event API to signal it.
Fix it
- Install the Hotjar snippet in your app's root layout or shell, not a single page component - this is the most common reason the verify check fails on some pages but not others.
- If you gate scripts behind a consent manager, run "Verify installation" only after granting consent in that test session, or Hotjar genuinely has not loaded and the check is correctly failing.
- Confirm no ad blocker or privacy extension is active in the browser or profile you use to run the check - Hotjar is a common ad-blocker target.
- For SPA virtual pageviews, call Hotjar's state-change API on route change:
window.hj("stateChange", newPath)- this tells Hotjar to treat the route change as a new virtual page for heatmap and recording targeting. - In frameworks with router hooks, place the hj("stateChange", ...) call inside the same navigation listener you use for any other tool's SPA pageview tracking, so every tool agrees about what counts as a page.
How to verify it worked
Run "Verify installation" from an incognito window with extensions disabled and consent granted - it should report success. Navigate through several SPA routes and check Hotjar's Recordings list for entries tagged with each distinct URL, confirming virtual pageviews are recognized rather than every session showing only the initial landing URL.