WordPress plugin intelligence profile

CQI Referrer Attribution

Know where every visitor came from, including ChatGPT, Gemini, and Perplexity. No JavaScript, no cookie banner trigger, no page speed cost.

WP PlugIndex snapshot

Current directory snapshot

Tested up to WordPress 7.0
Current version1.10.0
WordPress coverageTested up to WordPress 7.0
Minimum stackWP 6.0 · PHP 7.4
Directory statusactive
Last directory update10 Jul 20263mo ago
Active installations20Adoption metric — not a quality score
WordPress.org ratingNo WordPress.org ratings yet
Official packageDirect from WordPress.org

Repository metrics are context, not quality scores. Active installations measure adoption and can strongly reflect a plugin’s age and historical popularity. Ratings, recent updates and “Tested up to” metadata also do not guarantee modern code, error-free operation, security, feature completeness or suitability for a particular site. Why active installs don’t tell the whole story →

WP PlugIndex currently records CQI Referrer Attribution version 1.10.0 as active, updated 3mo ago and tested up to WordPress 7.0.

Overview

About this plugin

Most analytics plugins guess where your traffic came from by running a script in the visitor’s browser, after the page has already loaded, and after any ad blocker or privacy extension has had a chance to block it. CQI Referrer Attribution classifies every visit on the server, before the page is even sent, so the data is complete and the plugin adds no client-side JavaScript, no extra request, and no Core Web Vitals penalty.

It also answers a question most attribution tools still miss: how much of your traffic is coming from AI assistants. ChatGPT, Gemini, Perplexity, Claude, Copilot, and a growing list of others now send real visitors. This plugin classifies that traffic as its own channel, not lumped into Direct or Referral where it disappears.

Nine channels are detected automatically: AI Tools, Organic Search, Social Media, Email, Paid Search, Paid Display, Campaign, Referral, and Direct.

This plugin is fully functional with no licence key, trial period, or usage limit of any kind.

AI Referrer Taxonomy

A built-in registry of AI assistant domains is used to classify AI-referred traffic. The default set includes ChatGPT, Google Gemini, Perplexity, Claude, Microsoft Copilot, Grok, Meta AI, and more. Entries can be added, edited, activated, deactivated, deleted, and exported as JSON.

Dashboard

A 30-day summary showing total sessions with a live counter that updates automatically as new sessions arrive, session change versus the previous 30 days, AI traffic sessions and their share of total traffic, top channel, a channel share donut chart, a source share donut chart, and a sessions-per-day bar chart.

Sessions log

The full Sessions report supports date range, channel, and source filters, pagination, and CSV export. Any session spanning more than one page view can be expanded to show the full page-by-page journey in chronological order.

Sample data

One click on the Settings tab loads 60 realistic synthetic sessions across every channel, spread over the past 30 days, so the Dashboard and Reports are populated immediately on a fresh install. Sample rows are clearly marked and can be removed at any time without affecting real attribution data.

Consent-aware

When CQI Consent is active, attribution is only persisted after marketing consent is granted. Without consent, classification runs in memory only and no cookie or database row is written. The plugin operates in permissive mode when CQI Consent is not installed.

Independent of CQI Consent, the plugin reads the Global Privacy Control signal (the Sec-GPC HTTP header) on every request and does not persist attribution when it is present. This is checked regardless of whether any consent plugin is installed.

When CQI Consent is not installed, the plugin also recognises marketing consent already withheld through Complianz or CookieYes, if either is active on the site, using each plugin’s own consent cookie. Borlabs Cookie is not currently supported, since its consent cookie format is not publicly documented; sites running Borlabs Cookie alone currently operate in permissive mode, the same as a site with no consent plugin at all.

Privacy by design

No personal data is stored. Session tokens are HMAC-SHA256 hashes of an anonymized IP address (last octet zeroed) and the current date. Raw IP addresses are never written to disk.

Token rotation is daily. The plugin is registered with the WordPress personal data export and erasure framework.

Excluded channels

Any channel can be excluded from the Dashboard summary, the channel share chart, and the Sessions report. This is most useful for removing Direct / Unknown from view so reports focus on traffic you can actually attribute and act on.

Path exclusions and bot filtering

ico, and other system paths before classification runs. Additional path prefixes can be added in Settings, one per line, to suppress noise from any crawlers or automated probes specific to your site.

Public PHP API

Two functions are available for use in themes and other plugins:

  • cqip_attr_get_channel(), returns the current visitor’s channel slug
  • cqip_attr_get_source(), returns the full attribution array

0 for backward compatibility on sites migrating from that plugin.

Filter and action hooks

These hooks let other plugins extend this plugin’s behaviour. They are not used by this plugin itself; they exist for add-ons such as CQI Referrer Attribution Pro.

  • cqi_referrer_attribution_logo_url (filter), the mark shown in the admin page header
  • cqi_referrer_attribution_plugin_name (filter), the page title shown in the admin page header
  • cqi_ra_session_logged (action), fires after each session is recorded, receives the new row’s ID and data
  • cqi_ra_admin_tabs (action), fires inside the admin page’s tab navigation, after the built-in tabs
  • cqi_ra_unknown_tab_handled (filter), fires when an unrecognized tab slug is requested, lets an add-on render its own tab body
  • cqi_ra_sessions_view_filters (filter), the Sessions report’s query filters, before the session log is queried; also applied before CSV export runs
  • cqi_ra_sessions_filter_bar (action), fires inside the Sessions filter bar, after the built-in filter fields
  • cqi_ra_sessions_table_header (action), fires inside the Sessions table header row, after the built-in columns
  • cqi_ra_sessions_table_row (action), fires inside each Sessions table row, after the built-in columns, receives the row object
  • cqi_ra_dashboard_log_id_in (filter), restricts Dashboard metrics to a specific list of session row IDs

What is CQI?

CQI (Content Quality and Intelligence) is a methodology standard that is followed, not a technology stack. Implementations can exist for static PHP sites, WordPress, page generators, and other document management systems. Its purpose is to encourage structured content that benefits human and machine readers.

WordPress.org metadata

Plugin tags

Topics listed for this plugin in the WordPress.org directory.

  • ai traffic
  • marketing attribution
  • traffic channels
  • referrer
Compatibility & maintenance

Compatibility & maintenance

Tested up to WordPress 7.0

Not yet marked as tested with WordPress 7.1. WordPress.org currently lists Tested up to 7.0.

Current WordPress releaseWordPress 7.1
WordPress.org Tested up to7.0
Minimum requirementsWordPress 6.0 · PHP 7.4
Update activity10 Jul 20263mo ago

“Tested up to” is directory metadata supplied by the plugin author. WP PlugIndex does not turn an older declaration into a claim that the plugin is incompatible.

Changes recorded by WP PlugIndex

Recent tracked changes

No tracked version or compatibility changes have been recorded by WP PlugIndex yet.

Tracking & source

WP PlugIndex tracks public WordPress.org directory metadata and records selected version, compatibility and availability changes as they are detected.

Plugin watchlist

Watch this plugin

Sign in to your WP PlugIndex account or create a free account. Free accounts can watch up to 5 plugins and see what changed.

Watch limit

Watchlist limit reached

You have reached your current active watch limit.