WordPress plugin
Install Numative Analytics for WordPress: snippet injection, the wp-admin dashboard, AI crawler capture and instant publish pings.
The Numative Analytics plugin connects a WordPress site to Numative with no theme edits. It requires WordPress 5.6+ and PHP 7.2+. One install covers six jobs:
- Analytics dashboard inside wp-admin. A top-level Numative menu shows the same sections the app groups into its sidebar: Overview, Flow, Journeys, Clicks, Funnels, Goals and Properties; Pages, Speed, Errors, Anomalies and Changes; Rankings and Backlinks. It carries the same date ranges, keyboard shortcuts and filters, and sites with both Numative tracking and Google Analytics get a source switcher that remembers your choice. A compact widget on the WordPress Dashboard shows the last 7 days. Data comes from the public API using your key, is server-rendered (no external scripts in your admin), and is cached for 5 minutes. The realtime range polls live.
- Tracking. One checkbox adds the cookieless tracking script to your site. Logged-in users who can edit posts (admins, editors, authors, contributors) are excluded automatically, so your own browsing never skews stats.
- AI crawler capture. AI crawlers (GPTBot, ClaudeBot, PerplexityBot and others) do not execute JavaScript, so a snippet never records them. The plugin detects crawler requests server-side by User-Agent and forwards them to
/api/v1/collectwith your ingest key. The call is non-blocking, so crawler responses are never delayed. - Instant ping. The moment a post is published, updated or unpublished, the plugin notifies
/api/v1/ping(also non-blocking) so the page is snapshotted within seconds and the change gets an exact-time chart marker. Revisions and autosaves are ignored; only public post types ping. - First-party proxy. The tracking script is served from your own site at a per-site path, and requests an ad blocker stops are relayed through your server, so blocked visitors are counted instead of vanishing from reports. Configures itself from your key, and falls back to standard tracking automatically if your server cannot reach Numative. See Count blocked visitors.
- Enhanced measurements. Context WordPress knows and a browser cannot: that a response was a 404, what someone typed into your search box, a post's author and taxonomy terms, whether the reader was signed in, and WooCommerce or Easy Digital Downloads order revenue. A checkbox each, covered below.
Install
- 1
Install the plugin
In wp-admin, go to Plugins > Add New and search for Numative, or upload the zip from https://app.numative.com/numative-analytics.zip via Upload Plugin. Activate it. Until it is connected, a notice links you to the settings screen.
- 2
Copy your ingest URL from Numative
In Numative, open your site, then Settings, then AI crawler tracking, and click Generate ingest key. Copy the URL it shows. It contains both your Site ID and a key, so it is the only thing you need.
- 3
Connect and choose features
In WordPress, go to Numative > Settings, paste the ingest URL into the connection field, and save. Your Site ID and key are filled in at once. Leave the feature checkboxes on, or turn off any you do not want. Your analytics appear under the Numative menu and on the WordPress Dashboard.
Settings reference
| Field | What it does |
|---|---|
| Connection | Paste the ingest URL from your site's Settings > AI crawler tracking in Numative. It carries both your Site ID and a key, so one paste wires up the dashboard, AI crawler capture and change detection. A bare Site ID works for tracking only. |
| Track visitors | Checkbox, on by default. Adds the cookieless tracking script to your site (skipped on feeds, embeds and for logged-in users who can edit posts). |
| Capture AI crawlers | Checkbox, on by default. Records server-side visits from GPTBot, ClaudeBot, PerplexityBot and others, even behind page caching. Needs a key. |
| Instant change detection | Checkbox, on by default. Pings Numative on publish, update and unpublish so changes are detected within seconds. Needs a key. |
| Count blocked visitors | Checkbox, on by default. Serves the tracking script from your site and relays blocked requests through it, so ad-blocked visitors are counted. Needs a key; falls back to standard tracking if your server cannot reach Numative. |
| Enhanced measurements | A checkbox each for 404 pages, search queries, authors and categories, logged-in status, ecommerce revenue and hash routing. 404s and search queries are on by default; the rest are opt-in. Each attaches its facts to the pageview rather than firing a second event, so none of them costs extra against your pageview allowance. |
| Track logged-in roles (Advanced) | Which signed-in roles are counted. By default, roles that cannot edit posts, so your own browsing never skews the stats. For logged-out browsing of your own site, use Excluded IP addresses in Numative's site settings instead. |
| Visitor IP source (Advanced) | Cloudflare and Akamai are detected automatically. The reverse-proxy option is only for your own proxy (Nginx, HAProxy, a load balancer) that sets X-Forwarded-For. |
| Numative URL (Advanced) | Defaults to https://app.numative.com; only change it if you self-host Numative. |
Enhanced measurements
Six checkboxes, each adding something WordPress knows about a request that the browser cannot work out for itself:
| Measurement | What you get | Default |
|---|---|---|
| 404 error pages | Broken URLs and the links pointing at them, under Pages > Not found. | On |
| Search queries | What people typed into your search box and how many results came back, under Pages > Site search. The searches that found nothing are the useful half. | On |
| Authors and categories | Each post tagged with its author and its taxonomy terms, so you can compare writers and topics. Every public taxonomy is included, not only categories. | Off |
| Logged-in user status | Whether the reader was signed in, so members and visitors can be compared. It records the fact, never the identity. | Off |
| Ecommerce revenue | A Purchase event with the order total when a WooCommerce or Easy Digital Downloads order completes, so revenue is attributed to the visit that earned it. Each order reports once, even if the receipt is reloaded. | Off |
| Hash-based routing | Counts #fragment changes as pageviews. Only for themes that navigate with the hash; on an ordinary site it does nothing. | Off |
Everything except ecommerce is attached to the pageview the tracker was already sending, as a property, so it costs nothing against your pageview allowance and every report can be narrowed by it. A filter can then be added anywhere in the dashboard on author, category, logged_in and the rest. There is also a WordPress filter hook for sending your own, such as a membership level or an A/B bucket. Full detail: Enhanced measurements.
Page caches and crawler accuracy
On a cache hit, PHP does not run, which would hide crawler visits. The plugin fixes this by excluding AI-bot user-agents from caching, so PHP always runs for crawlers:
- Handled automatically: WP Rocket and LiteSpeed Cache. The plugin also sets the standard
DONOTCACHEPAGEconstants that most cache plugins honor. - One-time manual step: for W3 Total Cache, WP Super Cache or WP Fastest Cache, paste the user-agent list shown on the plugin's settings screen into that plugin's "Never cache the following user agents" (or "Rejected User Agents") setting.
A spoofed user-agent is harmless: Numative verifies each crawler from its source IP, so the Bots report separates verified from claimed visits.
Performance
The snippet is a small deferred script, about 5 KB over the wire. The crawler capture only makes a network call on detected bot requests, and both it and the publish ping are fire-and-forget with short timeouts, so human page loads and post saving are unaffected. The injected tag looks like this (with a data-props attribute alongside it when the enhanced measurements below are on):
<script defer src="https://app.numative.com/numative.js" data-site="YOUR_SITE_ID"></script>