Heatmap Page List
Heatmap Page List
Heatmap Page List is the main table for browsing tracked pages and comparing performance. It aggregates your data server-side (in SQL), so it stays fast even when the database grows. From here you can filter by date and content type, sort by key metrics, open a page’s Details report, jump directly to Referral Sources, or reset data for a specific URL.
Menu location: WP Admin → WPMC Behavior & Heatmap → Heatmap Page List
Admin slug: wpmc-clicks-map
Source file: /includes/admin-page-list.php
What data this table uses
The Page List combines two data sources:
Views & sessions (core tracking)
Aggregated from {prefix}wpmc_views by URL:
- Views (COUNT *)
- Unique users (COUNT DISTINCT user_id)
- Direct / Internal / External referrer types (SUM of referrer_type)
BH clicks (heatmap engine)
Aggregated from {prefix}wpmc_bh_clicks (or the BH helper table) by URL:
- Clicks (all recorded click events)
- Nav (clicks where action =
navigation) - Conv (clicks where
is_cta = 1)
Important: If the BH table structure differs (timestamp column name), the plugin auto-detects whether it’s
ts or
timestamp
before applying date filtering to BH clicks.
Default date range
When you open the Page List without any filters, it automatically shows the last 90 days of data. The date range is always displayed under the filters as: Showing data for: YYYY-MM-DD — YYYY-MM-DD (N days).
Smart date handling
- If you enter To earlier than From, the plugin automatically swaps them.
- Dates are applied to views using the
timestampcolumn. - Dates are applied to BH clicks using
tsortimestamp(auto-detected).
Filters
Filters are applied server-side and affect both aggregation queries and pagination. After you apply filters, an “Active filters” line appears under the date range.
Columns & metrics
Every row represents a page URL. The Name is resolved from WordPress when possible:
the plugin tries url_to_postid() → get_the_title().
If no post is found, it falls back to the URL path.
Sorting & pagination
Sorting
Numeric columns are sortable. Click the header to toggle ascending/descending: Views, Unique, Direct, Internal, External, Clicks, Nav, Conv.
Pagination
Results are paginated server-side and preserve your current filter + sort settings when you switch pages.
Reset action (⚠️ irreversible)
The Reset button deletes tracking records for a single URL.
It uses an authenticated admin AJAX call (wp_ajax_wpmc_reset_data)
with a nonce check (wpmc_reset_nonce).
What gets deleted
{prefix}wpmc_bh_clicksrows where page_url matches{prefix}wpmc_viewsrows where page_url matches
Note: This action does not remove records from other tables (sessions, mouse trails). For broader cleanup (e.g., by date), use Cleaning tools in the plugin.
Behind the scenes: why this page is fast
The Page List is designed to scale. Instead of loading rows and calculating metrics in PHP, it uses:
- SQL aggregation with
GROUP BY page_url - SQL sorting + pagination with
ORDER BYandLIMIT/OFFSET - Title resolution only for visible rows (the current page of results)
Graceful fallback: If the BH join query fails for any reason, the plugin automatically falls back to a “views-only” list (Clicks/Nav/Conv show as 0), so the table never renders empty.
Next step: open Details
Once you find an interesting page (high traffic, low clicks, unusual referrals), click Details. The Details screen provides tabs like Heatmap & Navigation Clicks, Users Mouse Move, and Referral Sources for deeper analysis.