Hotjar captures the majority of user sessions in Heatmaps and Recordings, depending on your Observe plan's session limit. However, it may not be possible to capture 100% of all your site visitors.
Quick checklist ✅
If you suspect that Hotjar isn't tracking as many sessions as expected, this checklist may help you understand why:
✅ 30-second sessions: Hotjar ignores sessions shorter than 30 seconds by default. However, you can adjust your Site Settings to include these shorter sessions in your data collection. This can often explain discrepancies between Hotjar data and other data from your website analytics.
✅ Session targeting criteria: if you are targeting session capture based on specific Event triggers or URL targeting criteria, these might result in fewer sessions being collected. Some URL targeting methods such as "Exact match" are very strict. To ensure your criteria correctly match your live website, review your targeting methods.
✅ Inconsistent traffic rates and sampling: if your website gets inconsistent traffic throughout the day, this can result in missed sessions due to sampling. In order to evenly track users throughout the day, Hotjar evaluates the rate of traffic on your website and enforces sampling if the rate of traffic exceeds what your Observe plan can accommodate. This might result in fewer sessions that your plan allows being collected. Learn more about Sampling.
✅ Content Security Policies: if your website uses a Content Security Policy (CSP), then be sure you've included allowances for Hotjar to run on your site. Otherwise, it's possible that your website is blocking Hotjar and preventing data collection.
Understanding session tracking
To understand why some sessions are not being captured, it is important to understand the difference between total traffic, potential traffic, and traffic coverage:
- Total traffic refers to all user sessions that interact with your website. This includes sessions that Hotjar cannot track for reasons beyond our control.
- Potential traffic is made of visits to your site that Hotjar can potentially capture, depending on your Observe plan and settings. Learn more about why some sessions cannot be tracked.
- Traffic coverage describes the rate of sessions that Hotjar is actively tracking. You can view it from your traffic coverage widget, in the top right of any page within Hotjar. Your Observe plan will determine if some sessions fall outside of traffic coverage.
Traffic widget formula
The traffic widget uses the following formula to display traffic coverage: ((Number of Sessions included in Observe Plan)/(Number of Sessions where the Hotjar Tracking Code loaded on a page)*100)
The traffic widget does not consider session targeting settings in its calculation. This means that if you are not tracking all pages and sessions shorter than 30 seconds, the traffic widget may reflect a larger percentage of traffic than Hotjar is actually tracking on your website.
When Hotjar has only just been installed (or re-enabled), the potential traffic figure will be estimated based on the data collected so far. This happens because we need to measure how much traffic your site gets over time.
Why isn't Hotjar able to track all my sessions?
Hotjar does its best to collect data from all user sessions that it detects on your website. However, there are situations that prevent Hotjar from detecting or tracking some user sessions. In most cases, the reason relates to the user's browser and/or local network environment, so it's beyond our ability to control. The table below shares the most common reasons why Hotjar might not track a session:
Reason why a session was not captured | How could this be prevented? |
The browser used is not supported by Hotjar. | Users access the site through a supported browser. |
JavaScript was disabled in the browser. | Users enable JavaScript in their browser settings. |
Cookies were disabled in the browser. | Users allow cookies in their browser settings. |
The visitor has Do Not Track enabled in their browser. | Users disable any Do Not Track settings in their browser. |
Your site was accessed in a private/incognito browsing mode. These often block cookies or tracking scripts by default. | Users adjust their browser settings to allow Hotjar's script and cookies to load. |
The visitor has disabled use of localStorage or sessionStorage in their browser. | Users enable localStorage and sessionStorage in their browser. |
Browser plugins, extensions, or ad-block/privacy tools have blocked the Hotjar Tracking Code. | User disables any extensions or tools that blocks third-party scripts and cookies. |
Your site is being accessed from a private or public network that restricts access to Hotjar's servers. | Users need to access the site from a network that allows Hotjar. |
The Hotjar WebSocket was blocked during their visit to your site. | This is often related to Content Security Policy (CSP) blocks, and can be addressed by your developer or hosting team. |
Network conditions such as loss of connectivity can cause data loss. If this happens, the user's session data may be discarded. | Network and connectivity issues are usually beyond the control of the affected party. |
Why might a session fall outside traffic coverage?
In some cases, Hotjar is able to load on the user's page, but their session isn't stored within your Hotjar dashboard. This can be due to settings inside Hotjar which may result in a specific user's session being discarded.
-
Your Observe plan's traffic coverage did not include this user.
If your potential traffic exceeds your Observe plan limits, Hotjar will capture a portion of your traffic called your traffic coverage, which we also refer to as Sampling. Learn more about sampling. Session coverage becomes more accurate after the first 7 days after Hotjar is installed, so if your rate of daily traffic is higher than your Observe plan limit, parts of the day may be missed from tracking during the first 7 days.stop capturing recordings or heatmap data until the next session reset date, as your session limit has been reached. To continue to receive new recordings or heatmap data before your next reset date, you'll need to upgrade the session allowance of your Observe plan. -
"Only 30s+ sessions" is enabled in your session capture settings.
This can be disabled in your site settings, under the targeting section, and the video below steps through how to do this. This setting is enabled by default to avoid lower-value Recordings (sessions that don't have much activity). Enabling it often explains differences in traffic compared to other sources, such as Google Analytics, ad software analytics, or your server logs. -
The user may not have visited a page you are targeting.
Learn more about How to trigger Recordings and Heatmaps based on URLs. We recommend tracking all pages for the maximum coverage. -
Pages on your site are served over HTTP instead of HTTPS
To provide a more secure experience in Hotjar, we don't capture those pages within a session that are being served using the HTTP protocol. Hotjar will only capture pages within a session that are being sent over HTTPS. Surveys which won't display on pages using HTTP. For help on moving your site to HTTPS see this guide from Google on the steps you can take. -
The user's IP is blocked within your Hotjar settings.
If the user's IP address was added to your IP block list, Hotjar will not process their session. -
The session did not have any user activity.
If Hotjar did not detect any activity during the user's session, the recording associated with that session will be discarded.
We currently consider a potential recording as “having activity” if it contains at least one event of the following types: “Input Change”, “Key Press”, “Mouse Click”, “Select Change” or “Viewport Scroll”
Surveys are not tied to sessions
Surveys are not tied to sessions as they are part of Hotjar's Ask plan. Ask plan response allowances are reset on the first of each month. For more information, check out our dedicated article on How the Ask Plan Response Allowance Works.