AI Search Analytics & Tracking

Description

Track AI search impressions and clicks from ChatGPT, Perplexity, Claude & other LLMs and improve your website’s visibility across all AI search results.

Airefs connects your WordPress site to AI search analytics so you can track crawler activity and visits referred by AI answers.

Impressions: See Which AI Crawlers Visit Your Site

AI models crawl the web to answer user queries and gather training data. The Airefs Impressions feature tracks these server-side visits so you know:

  • Which AI systems are crawling your site (ChatGPT, Perplexity, Claude, Amazon Bot, and more)
  • Which pages are being crawled and how often
  • When crawls happen, with timestamps and HTTP status captured from requests handled by PHP
  • Trends over time — identify which content AI considers most relevant

The dashboard groups crawler visits by AI system and page, with individual logs showing bot identity, IP address, and page path.

Filter for “user searches only” to distinguish user-triggered crawler activity from background crawls.

Clicks: Measure Real Traffic from AI Search Results

Impressions tell you when AI crawls your content. Clicks tell you when real users follow a link from an AI-generated answer to your site. The Airefs Clicks feature tracks visits from users who discovered your brand in an AI answer and clicked through.

  • Attributed by AI source: ChatGPT, Perplexity, Claude, Google Gemini, Copilot, Meta AI
  • Bar charts breaking down clicks by AI platform over time
  • Referrers table ranking AI sources by total click volume
  • Pages table showing which of your pages receive the most AI-referred traffic
  • Time windows of 7, 30, 90, and 180 days for trend analysis

Each individual click is counted, giving you a complete picture of AI-driven traffic that tools like Google Analytics may miss.

Getting Started

  1. Install and activate this plugin.
  2. Create a free account at https://app.getairefs.com.
  3. Copy your Access Token from the Airefs Settings page.
  4. Enter the token in Settings Airefs Tracking in your WordPress dashboard.

Data typically appears within 1–2 days. Impressions tracking runs on requests that reach WordPress. Clicks tracking uses a browser script loaded in your site’s footer. Both paths save events locally for confirmed background delivery through WP-Cron and a protected background runner.

Privacy

  • Deployed on Cloudflare for secure, performant delivery.
  • User sign‑up flows run on Convex.
  • Analytics data is processed in Tinybird and stored on AWS servers within the EU.

Installation

  1. Upload airefs-ai-search-analytics-tracking.zip via Plugins Add New, or extract to wp-content/plugins/.
  2. Activate the plugin.
  3. Create an account on https://app.getairefs.com/auth/sign-up
  4. Go to Settings on https://app.getairefs.com/ and copy your Access Token.
  5. Go to Settings Airefs Tracking, enter your Access Token, and click Save.

FAQ

Does the plugin store cookies or credentials?

The plugin sets a first‑party airefs_session_id cookie for session continuity. We do not forward site visitors’ existing Cookie headers or authentication headers containing credentials.

How is user data protected?

The local queue holds visitor IP addresses, User-Agent strings, and session IDs until Airefs confirms delivery. Pending events do not expire and can remain indefinitely during an outage or while tracking is paused. Deactivation preserves them; deleting the plugin through WordPress uninstall removes the local queue. The API anonymizes non-bot IP/User-Agent values before persisting analytics records; bot records may retain them for attribution and validation. Queued page URLs retain origin, path, validated WordPress page IDs, explicitly configured content parameters, and supported UTM parameters. Other query parameters and fragments are removed; URLs containing credentials are rejected. Referrers retain only origin and path.

Can reports distinguish pages that use query parameters?

Valid WordPress p and page_id parameters are preserved automatically, so /?p=123 and /?p=456 identify different pages. IDs must contain 1–20 decimal digits and be greater than zero; leading zeros are removed.

For other content selectors, open Settings Airefs Tracking Advanced Settings Content Query Parameters. Enter comma-separated names, such as countries, to distinguish /jobs?countries=201 from /jobs?countries=202. Each WordPress site has its own setting. Up to 16 custom names are allowed, with a letter first and up to 64 letters, numbers, underscores or hyphens. Names are case-sensitive. Only configure values that are safe to send to analytics, never personal data or credentials. Known email, credential, session and tracking names are blocked even if entered, including api_key, access_key, private_key, auth_code and email_address.

Content values must be nonempty, contain no control characters and fit within 200 UTF-8 bytes. Duplicate query names are discarded. Retained content parameters are sorted and encoded consistently; a content query exceeding 2,048 encoded bytes is discarded. The five supported UTM parameters remain attribution fields and do not distinguish pages. Fragments are not tracked.

The setting is captured with each new event and remains the same through delivery retries, even if you change the setting later. Previously saved events and historical reports cannot recover query values that were already removed.

What is the difference between Impressions and Clicks?

Impressions are server-side visits from AI crawlers — bots sent by ChatGPT, Perplexity, Claude, and other LLMs to crawl your pages in order to answer user queries or gather training data. Clicks are visits from real human users who saw your site cited in an AI-generated answer and clicked through to your site. Both are tracked automatically once the plugin is installed and connected.

Which AI platforms are supported?

Airefs tracks crawler and click traffic from ChatGPT, Perplexity, Claude, Google Gemini, Microsoft Copilot, Meta AI, Amazon, and other LLMs. Coverage is updated as new AI systems emerge.

Will this slow down my site?

The plugin writes events to a local queue instead of contacting the analytics API during page requests. WP-Cron and a protected background runner send queued events in small batches to reduce network requests. Each event still needs its own delivery confirmation; unconfirmed events stay queued. Queue writes, the footer script, and its same-site browser request still use server and browser resources; the plugin does not promise zero overhead.

How long until I see data?

Clicks data typically appears within 1–2 days of installation. Impressions data appears as AI crawlers visit your site — frequency depends on how often AI systems crawl your content.

Does this work with caching plugins?

Cached HTML can still run the browser tracker if it contains the script and the WordPress REST endpoint is reachable. AI crawler tracking requires the request to reach WordPress: a CDN or static page cache that responds before PHP runs prevents server-side tracking. The plugin includes WP Rocket user-agent exclusions and optional LiteSpeed handling, but cache behavior depends on your cache configuration. Clear page caches after changing plugin settings or updating the plugin, and verify both crawler and browser tracking on your site.

What happens if WP-Cron or the Airefs API stops working?

Saved events stay in the local database until Airefs confirms that it has stored them. Temporary failures are retried with increasing delays; retries reuse the same event ID so reports do not count them twice. Events are not removed because they are old, delivery failed, or tracking was disabled. Some errors need attention before delivery can resume.

WP-Cron is the normal scheduler. A protected background runner also starts from site requests and continues processing a backlog, so delivery does not rely only on WP-Cron. Both mechanisms can be blocked by hosting restrictions. For low-traffic sites or disabled WP-Cron, ask your host to run WordPress scheduled events at least once a minute and allow loopback requests. If both mechanisms stop, delivery waits safely in the queue; they must recover before it can resume.

How do I check delivery and storage?

Open Settings Airefs Tracking Background delivery. It shows pending events, the oldest event, last attempt, last confirmed delivery, blocked events, network storage use, and events that could not be saved. Retry delivery requests background processing; a connection test checks API access and local storage readiness.

If local storage setup fails, a persistent red administrator notice states that tracking cannot save new events. Background delivery shows Storage setup: Failed, explains what to ask your host to check, and provides Retry storage setup. This action is available even while tracking is paused. Automatic setup attempts wait 15 minutes after a failure; a manual retry runs immediately. Setup retries preserve existing queued events. Events that could not be saved cannot be recovered later.

The API connection test reports local storage readiness separately and cannot show a successful tracking setup when the queue is unavailable. A ready queue and a working connection do not prove delivery: check Last confirmed delivery for that.

Queue storage defaults to 64 MiB across the WordPress network, with a 100,000-event safety limit and 32 KiB per-event limit. The airefs_tracking_queue_capacity_bytes filter can adjust the storage budget. A full or unavailable database cannot accept new events: the browser endpoint returns an error and the plugin records a rejection when the database is available. Already saved events are never evicted to make room. A browser response accepting an event into the queue is not yet an Airefs delivery receipt.

What happens when I change tokens, pause tracking, or delete the plugin?

Disabling tracking or deactivating the plugin pauses delivery and preserves saved events. A replacement token can deliver the backlog only after verifying the same Airefs site at the same endpoint. Events with a different or previously unverified destination stay blocked: restore their previous token and endpoint to deliver them. Changing accounts never transfers a backlog. Deleting the plugin through WordPress uninstall removes the local queue, including undelivered events.

What if my site uses a reverse proxy?

The plugin uses WordPress’s REMOTE_ADDR for visitor IP and rate limits. Configure your trusted proxy and web server to set that value correctly. Otherwise, the plugin may see the proxy’s IP and share a rate limit across its visitors; it does not trust arbitrary forwarded IP headers.

Does the plugin measure page HTTP status or custom events?

The server tracker captures PHP’s response status at shutdown for requests that reach WordPress. It cannot observe responses served entirely by an upstream cache. The JavaScript methods AirefsTracking.trackPageView() and AirefsTracking.trackEvent("pageview") send pageviews; other event names return false without sending an event.

Does browser tracking identify visitor countries?

WordPress relays browser events through the site’s server. Its outbound connection does not identify the visitor’s country, so these click records use an unknown country rather than the hosting server’s location.

Do I need a paid Airefs plan to use this plugin?

You need an Airefs account, which you can create for free at https://app.getairefs.com. Some features and data history limits vary by plan. See the Airefs pricing page for details.

Can I use this on multiple sites?

Each site requires its own Access Token from your Airefs dashboard. Multi-site support depends on your Airefs plan.

Does the plugin affect my existing Google Analytics or other tracking?

No. Airefs tracking runs independently and does not interfere with any other analytics tools you have installed.

Reviews

October 17, 2025
The WordPress plugin is very simple to use. When I found a little issue for my specific case, the team was very quick providing a solution. Highly recommended!
Read all 2 reviews

Contributors & Developers

“AI Search Analytics & Tracking” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.2.6

  • Preserve validated WordPress page IDs and per-site content query parameters in crawler and click page reporting, with sensitive-name exclusions and capture-time settings snapshots.
  • Fix plugin loading across ordinary and network activation, including CLI, cron, and admin requests.
  • Retain saved events until confirmed delivery, retry temporary failures with stable event IDs, and recover through WP-Cron or a protected background runner.
  • Deliver small batches with individual event confirmations, preserve partial failures for retry, and remain compatible with APIs that only support individual delivery.
  • Show delivery progress, blocked events, storage limits, and rejected events in settings. Preserve pending events across outages, token changes, and deactivation.
  • Resolve page classification after the WordPress query and exclude 404 and REST requests.
  • Restrict the public browser endpoint to same-origin client pageviews and bound request sizes.
  • Limit forwarded headers, remove referrer query strings, and preserve first-party sessions and required empty or zero values.
  • Accept valid global timezone offsets and correct the browser request rate window.
  • Fix mobile browser metadata parsing and retry unavailable REST routing once using WordPress-provided URLs.
  • Capture the PHP response status for server events and clarify cache, scheduler, performance, privacy, geography, and custom-event limitations.

1.2.5

  • Stop writing AI bot rewrite rules to .htaccess and remove the legacy Airefs marker block during activation/update.

1.2.4

  • Confirm compatibility with WordPress 7.0.
  • Use WordPress core helpers for htaccess marker updates and URL parsing.

1.2.3

  • Remove REST nonce from the public tracker script to prevent cached pages from shipping stale nonces.

1.2.2

  • Improved header handling for better compatibility with reverse proxies.

1.2.1

  • Update Airefs plugin name to “AI Search Analytics & Tracking”.

1.2.0

  • Added support for more caching plugins, namely WP Fastest Cache.

1.1.0

  • Improved support for caching plugins (e.g. WP Rocket).

1.0.0

  • Initial release.