AB Split Test v2.4.3 Release: Smarter Heatmaps, Better CSS Compatibility, and Cleaner Selectors

This update focuses on three main areas: fixing CSS compatibility issues that were breaking modern theme layouts, making heatmaps more actionable with instant click counts, and improving how we generate element selectors for cleaner, more readable tests.

🆕 New Feature: Heatmap Hover Tooltips

The problem: High-traffic pages can have hundreds or thousands of clicks, making clickmaps look like a sea of dots. Manually counting clicks on a specific button or CTA? Nearly impossible.

The solution: Just hover.

When viewing your heatmaps, you can now hover over any element to see exactly how many clicks it received, along with a description of what it is.

For example:

  • Hover over a CTA button → See: "42 clicks on button.cta ('Get Started')"
  • Hover over a nav link → See: "128 clicks on a.menu-item ('Pricing')"
  • Hover over an image → See: "15 clicks on img.hero-image"

No more squinting at crowded heatmaps. The information is right there when you need it.

Perfect for:

  • Comparing click rates between different CTAs
  • Analyzing navigation engagement
  • Identifying which elements get ignored
  • Making quick, data-driven decisions

A heatmap overlay shows user click activity on a website landing page, with the highest concentration of clicks on the "Get a locker" button.

CSS Layout Compatibility

The problem: Sites using display: flex or display: grid on the body were experiencing broken headers and misaligned layouts.

The cause: An old anti-flicker CSS rule (body.abst-show-page { display: revert !important }) was overriding modern flexbox/grid layouts.

The fix: Removed the rule entirely. It's no longer needed.

If you were affected: Update to v2.4.3, clear caches, and your layout is fixed.

Smarter CSS Selectors

Before:

css
body > div:nth-child(2) > section:nth-child(3) > div:nth-child(1) > h2:nth-child(2)

After:

css
#pricing-section h2

New Magic tests and heatmaps now generate human-readable selectors using a 10-level ancestor scan. Easier to read, easier to debug. (Existing tests unchanged.)

Other Fixes & Improvements

  • Fixed CSS selectors being corrupted during heatmap storage — Descendant selectors containing > were being HTML-encoded to &​gt; by sanitize_text_field(). Added a dedicated CSS selector sanitizer that preserves valid CSS characters while stripping dangerous content.
  • Fixed Gutenberg InspectorControls import — Updated the AB Test Page Redirect block to import from wp.blockEditor instead of the deprecated wp.editor shim.

Improvements

  • WordPress 6.9+ compatibility — Updated all Gutenberg blocks to API version 3 for iframe editor support.
  • Reduced duplicate AJAX requests in Gutenberg editor — Added request deduplication so multiple blocks querying experiments share a single AJAX call instead of firing separate requests.
  • Improved heatmap click coordinate validation — Coordinates are now validated as numeric, clamped to 0-1 range, and rounded to 4 decimal places.

New Features

  • New sample case studies — Added "Checkout Page Testimonial Test" and "Simplified Pricing Page Test" sample data for onboarding.

Other

  • Improved cookie consent console message to clarify data is buffered in session.

 

Read Full Changelog here. | Questions? Send us a message