First, make sure you have set up heatmaps properly as detailed in the heatmap guide
If you have set them up and waited at least an hour for the changes to take effect, the cause may be one of the following:
Not enough visitors
We only log heatmap data for a random 50% of your visitors by default, although you can increase this on the upgrade page
with the custom plan option. We also only log heatmap data for desktop visitors, so if most of your visitors are mobile, you may get very little heatmap data logged.
So if your site is low traffic, there is a reasonable chance on any given day that you won't have any heatmap data logged, as maybe you only had 10 visitors, and only a few had more than a single page view, and those few happened to either be mobile visitors, or not
randomly selected in the 50% pool.
(Note about sample rate: with visitor privacy
enabled (default), the random sampling is done per page view. However, if you are using tracking cookies, then we can do it per visitor instead, for much more interesting and consistent results).
Extremely long web pages
We use <canvas> elements to draw the heatmaps dynamically on your page at the time you request them. But Chromium-based browsers (basically everything but Firefox) won't draw canvas elements taller than ~10,000 pixels. So for very tall pages, you may not be able to view heatmaps.
Pro Plus or higher account
Heatmaps require a Pro Plus account or higher. The option to set them up still appears with any account level, but they won't work unless your account has access to heatmaps. If desired, you can upgrade your account
Other reasons that used to be common but are very unlikely to apply to modern websites, but just in case:
Does your site user the Prototype
XHTML interferes with JSON encoding as we send it back to our tracking servers. We're not sure why this occurs, but were never able to find a fix. So if your site is XHTML... it's time to upgrade.