DOCUMENTATION

Documentation

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 timestamp column.
  • Dates are applied to BH clicks using ts or timestamp (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.

Filter What it does Details
Page Types Filters the list by WordPress post type (Pages, Posts, custom post types). The dropdown only shows post types that are enabled in Settings → Tracked Post Types. (If a post type is not tracked, it won’t appear here.)
Taxonomy / Category Lets you filter by a public taxonomy (Categories, Tags, or custom taxonomies). Only taxonomies that apply to your enabled post types are shown.
Term Filters by a specific term inside the selected taxonomy. The Term dropdown is populated server-side only after you select a taxonomy. The filter works by building an internal URL whitelist of posts in that term.
From / To Limits results to the selected date range. Defaults to the last 90 days if empty.
Search Searches by page title and also matches URL text (path/slug). Internally, the plugin finds posts by title search and adds their permalinks to a whitelist, then also applies a LIKE match on the URL when needed.

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.

Column Meaning
Name Page title (or URL path fallback). Clicking the name opens Details for this URL.
Views Total pageviews within the selected date range.
Unique Number of distinct users based on user_id in views data.
Direct / Internal / External Referrer-type breakdown (direct visits, internal navigation, external websites).
Clicks Total recorded click events on this page (BH engine).
Nav Clicks that resulted in navigation to a different URL (action = navigation).
Conv Clicks marked as conversions (CTA clicks) where is_cta = 1.
Details Opens the detailed report page for the URL: admin.php?page=wpmc-clicks-map-details&url=...
Sources Opens the same details page but jumps directly to the Referral Sources tab: &tab=referral-sources
Actions Maintenance actions for a URL. Currently includes Reset (irreversible).

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_clicks rows where page_url matches
  • {prefix}wpmc_views rows 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 BY and LIMIT/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.