Assumption Detection

  • JNext lesson
  • KPrevious lesson
  • FSearch lessons
  • EscClear search

Assumption detection is monitoring for the failures nothing else catches: the silent ones. Every WordPress site runs on implicit assumptions, like one analytics tag, one schema source, one jQuery instance, one font pipeline. Install a plugin, switch a theme, paste a snippet, and one of those assumptions quietly stops being true. Nothing errors. The site just gets slower, or your structured data starts conflicting.

This module exists because I once shipped duplicate GA4 tags for a month. A theme bundled its own analytics integration, my snippet was already there, and every pageview counted twice. No error log will ever tell you that.

Assumption Detection module showing site monitoring detectors in Dynamic Functionalities

The Nine Detectors

Assumption Detection runs a battery of checks against your site’s actual rendered output and flags anything that violates a sane single-source assumption:

  • Schema collision: multiple JSON-LD sources outputting the same schema type, like two plugins both emitting BreadcrumbList
  • Analytics duplication: the same UA or GA4 measurement ID, GTM container, or Facebook pixel loaded more than once
  • Font redundancy: the same font family arriving from multiple sources
  • Inline CSS growth: accumulating inline styles that signal performance debt
  • jQuery conflicts: multiple jQuery versions or sources on one page
  • Meta duplication: duplicate viewport, robots, or description tags
  • REST API exposure: user enumeration available through the REST users endpoint
  • Lazy loading conflicts: multiple lazy-load implementations fighting over the same images, including native loading, lazysizes, and the implementations bundled in WP Rocket, Jetpack, and Smush
  • Mixed content: HTTP resources loading on HTTPS pages

When Detection Runs

Checks run automatically when you open the Functionalities dashboard, and they’re scheduled after events likely to break assumptions, like saving new header snippets. There’s also a “Run Detection Now” button for the moments right after you’ve installed something new, which is exactly when you should look.

Reading the Results

Each finding names the assumption that broke and the evidence, like which two sources emitted the same schema type. Fixes are usually one toggle: disable the duplicate breadcrumbs in one of the two plugins, remove the redundant font enqueue, or turn off a second lazy loader. The point is knowing the conflict exists at all.

Why This Matters for Speed and SEO

Duplicate analytics skews every decision you make from the data, duplicate schema can demote rich results, and a second jQuery copy is 30 KB of pure waste on every page. These are exactly the regressions that creep in over a year of normal site maintenance. Pair this module with Content Integrity, which does the same job for your content, and check my lesson on speed monitoring for the performance side of ongoing vigilance. The Functionalities plugin ships both detectors in the same install.