Description
AI assistants now answer the questions your readers used to type into Google, often using your content. Are they citing you, or sending people to a competitor? Unsourced is the WordPress plugin for Unsourced, the evidence layer for AI search, also known as GEO (generative engine optimization), AEO (answer engine optimization), or AI SEO.
Unsourced shows independent publishers and content creators which AI assistants cite them, who is really crawling their site, and whether their fixes actually move the needle, backed by verified evidence, not the inferred « AI visibility scores » most tools sell.
Server-side bot detection: catches the bots that skip JavaScript
Most analytics tools are blind to AI crawlers because bots like GPTBot and ClaudeBot never execute JavaScript. This plugin runs inside WordPress at the PHP level, checks every request against 22 known AI bot signatures, and logs each visit to your Unsourced dashboard with zero impact on page load time. The server-side layer is what actually catches AI crawlers, and the plugin adds no JavaScript to your pages.
Bot Trust: verified, impostor, or unverifiable
Anyone can put « GPTBot » in a User-Agent string. Unsourced verifies each crawler’s true identity against the operator’s published IP ranges and forward-confirmed reverse DNS (FCrDNS), then sorts every visitor into Verified, Impostor, or Unverifiable, with honest, copy-paste block rules. You see who is genuinely OpenAI or Anthropic, and who is just wearing the badge.
AI citation monitoring: are they citing you or a competitor?
Beyond crawl detection, Unsourced runs weekly citation checks across 7 AI models, including ChatGPT, Claude, Gemini, Grok and Perplexity. It generates high-intent questions tailored to your actual content topics (the same kind of questions your audience types into AI assistants), then checks whether the AI cites your domain or sends users to a competitor instead.
Every check is logged: which AI platform, which prompt, whether you were cited, what context surrounded the mention, and which competitor domains appeared instead. You get a clear picture of your AI search presence across all 7 models Unsourced monitors.
Origin Signal: live crawl or training data?
When an AI assistant’s answer reproduces your wording, Unsourced checks whether a verified AI crawler (caught by this plugin’s server-side detection) actually fetched that page in the same window. If it did, the citation is backed by a live crawl rather than older training data. Each match is logged with a timestamp and the scan window it belongs to.
Combined with your bot-visit logs and citation results, that gives you a documented, timestamped record of live use of your content, a starting point for licensing conversations or escalation.
Measured lift: did your fix actually work?
When Unsourced flags a gap (a topic where AI recommends a competitor instead of you) and you act on it, you can mark it actioned. Unsourced then re-checks that exact topic about a week later and tells you whether your citations actually moved: measured evidence of a change, not a promise. No causation is overclaimed; you simply see the before and after.
What you see in your dashboard:
- Which AI bots visited, which pages, and how often, and which are Verified, Impostor, or Unverifiable
- Your citation rate across all 7 AI models: ChatGPT, ChatGPT (web search), Claude, Gemini (grounded search), Grok, Meta Llama and Perplexity
- Which competitor domains are cited instead of you, and for which topics
- Whether each citation came from a live crawl of your page or from older training data
- Whether a fix you actioned produced measured lift on its topic
- Weekly AI Visibility Audit and Evidence Report PDFs, generated from your live data
Detected bots (22 signatures):
* GPTBot, ChatGPT-User & OAI-SearchBot (OpenAI)
* ClaudeBot & anthropic-ai (Anthropic)
* PerplexityBot & Perplexity-User
* CCBot (Common Crawl)
* Google-Extended, GoogleOther, Google-CloudVertexBot
* Bytespider (ByteDance / TikTok)
* cohere-ai, Diffbot, Amazonbot, YouBot
* Meta-ExternalAgent
* Applebot-Extended
* omgilibot, PetalBot, Timpibot, BrightBot
External Services
This plugin sends data to Unsourced (https://unsourced.app), an external service that logs and displays AI bot activity and citation intelligence for your site. A connection to this service is required for the plugin to function.
What data is transmitted:
- Your site URL
- The URL of the page being visited by the bot
- The detected bot name and raw User-Agent string
- The visitor IP address
When data is sent:
Only when a valid Unsourced API key has been configured in the plugin settings. Bot event reporting fires only when a request matches a known AI bot signature, sending the details above. The plugin also contacts Unsourced when you connect and verify your account, sending your site URL and API key. Human visitors are not affected by bot reporting.
Service links:
- Website: https://unsourced.app
- Terms of Service: https://unsourced.app/terms
- Privacy Policy: https://unsourced.app/privacy
Screenshots

Installation
From the WordPress Plugin Directory (recommended):
- In your WordPress admin, go to Plugins Add New
- Search for « Unsourced AI Bot Monitor »
- Click Install Now, then Activate
- Go to Settings Unsourced
- Click Connect to Unsourced to open unsourced.app in a new tab
- Sign in or start your free trial, and the plugin connects automatically, no copy-pasting needed
- Return to WordPress admin and you’ll see the green « Plugin connected » confirmation
Already have an API key? Expand the « Already have an API key? » section and paste it directly.
From a ZIP file:
- Download the ZIP from unsourced.app or the Plugin Directory
- Go to Plugins Add New Upload Plugin
- Upload the ZIP, activate, and follow steps 4–7 above
FAQ
-
Will this help my site show up in ChatGPT and AI search?
-
Unsourced is a measurement and evidence tool, not a magic ranking switch. It shows you exactly which AI assistants already cite you, which ones crawl your site, and which send readers to competitors instead, then re-checks whether the changes you make actually move your citations. That evidence is what lets you improve your presence in ChatGPT, Perplexity, Google AI Overviews, Claude and other AI answers deliberately, instead of guessing. It does not pay for placement or guarantee a citation, and it is honest about that.
-
What is GEO / AEO / AI SEO?
-
They are emerging names for the same shift: optimising so AI assistants cite your content when they answer questions, the way SEO optimises for Google’s results pages. GEO stands for generative engine optimization, AEO for answer engine optimization, and « AI SEO » is the catch-all. Unsourced is the evidence layer for all three: instead of selling you an inferred « visibility score », it shows verified crawler activity, real citation results across 7 AI models, and measured before-and-after when you act on a gap.
-
Does this slow down my site?
-
No. The server-side bot check is a lightweight PHP hook that adds negligible overhead, and the report to Unsourced is a non-blocking background request, so your page renders immediately without waiting for it. The plugin adds no JavaScript to your pages.
-
Does this block AI bots?
-
No. Unsourced is a monitoring and intelligence tool, not a firewall. Bots are recorded and reported but served normally. Use your robots.txt or a WAF if you want to restrict access.
-
What is citation monitoring and how does it work?
-
Citation monitoring is the core intelligence feature of the Unsourced platform. Once your site is verified, Unsourced runs weekly checks across 7 AI models (ChatGPT, ChatGPT web search, Claude, Gemini grounded search, Grok, Meta Llama, and Perplexity). It generates a set of high-intent questions based on your actual content topics (the same kind of queries your readers type into AI assistants) and checks whether the AI cites your domain in its response. Every result is logged, including uncited responses (so you can see who the AI recommended instead of you).
-
What is an Origin Signal?
-
It is how Unsourced tells a live crawl apart from training data. When an AI assistant’s answer reproduces your wording, Unsourced checks whether a verified AI crawler (caught by this plugin’s server-side detection) fetched that page in the same window. If it did, the citation is backed by a live crawl rather than older training data, and that is logged with a timestamp. The plugin injects no code into your pages to do this.
-
Does the plugin inject JavaScript into my pages?
-
No. The plugin detects AI crawlers entirely server-side, in PHP, which is exactly what catches bots that do not run JavaScript. It adds no JavaScript or beacon to your pages, so there is nothing extra to load. If you also want to capture human visits, Unsourced offers a separate optional beacon snippet you can add yourself; it is not part of this plugin.
-
Do I need a paid Unsourced plan?
-
No. Unsourced offers a free 14-day trial with full access to bot detection, citation monitoring, and report generation. After the trial, a Standard (£29/mo), Pro (£49/mo) or Agency (£149/mo) subscription is required to continue.
-
My site is on WordPress.com, will this work?
-
WordPress.com managed hosting does not support third-party plugins. This plugin is for self-hosted WordPress (WordPress.org sites). If you cannot install plugins, you can still add the Unsourced JS beacon manually via your theme or a custom code block.
-
Can I use the plugin without an Unsourced account?
-
No. The plugin requires a valid Unsourced API key to record events. Without it, the plugin loads but does not send any data.
Contributors & Developers
“Unsourced – AI Bot Monitor & AI Search Citation Tracker” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Unsourced – AI Bot Monitor & AI Search Citation Tracker” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.4.3
- Fixed: the plugin’s saved « site matched » status was being wiped on every save, so the « verify your site » notice could never clear even after your site was verified. It now persists correctly and clears as soon as your site matches.
- The connected screen now shows « finishing setup » instead of « monitoring active » until your site is actually matched, with a one-click Re-check button to confirm.
- Removed mentions of a JS beacon / canary being injected into your pages. The plugin detects AI crawlers fully server-side and never needed JavaScript; no script is added to your site.
1.4.2
- Fixed: the « verify your site » banner could persist after a site was already verified. The plugin now re-checks verification status with Unsourced on connect and when the settings page loads, so the banner clears as soon as your site is matched.
- Clearer connected state: if your WordPress address doesn’t match a verified site on your account yet, the settings page now says so plainly instead of showing « monitoring active ».
- Copy: makes clear that on WordPress the plugin alone covers bot monitoring — no Cloudflare worker needed.
1.4.1
- Added two AI crawler signatures: OAI-SearchBot (OpenAI’s search crawler) and Perplexity-User (Perplexity’s on-demand fetch). The plugin now detects 22 AI bot signatures.
- Listing refreshed to reflect the full platform: server-side AI bot detection plus AI search citation tracking.
1.4.0
- One-click connect flow: click Connect in the plugin settings to open Unsourced in a new tab; the plugin detects your sign-in automatically and saves your API key with no copy-pasting
- Dashboard preview: connected settings page now shows a live preview of your Unsourced dashboard with a direct link
- Persistent admin notice: banner appears across all admin screens until the plugin is connected, so setup is never forgotten
- Tested up to WordPress 6.9
1.3.0
- Origin Signal upgrade: canary token is now fetched live from the Unsourced API and cached locally for 5 minutes via WordPress transients. Token rotates per scan so the Unsourced dashboard can confirm a citation came from a live crawl during the active scan window, not just from training data.
1.2.0
- Origin Signal auto-inject: plugin now automatically embeds a unique hidden span token in every page footer (wp_footer). If an AI model ingests your content and reproduces it verbatim, the token appears in the response, irrefutable proof of ingestion.
- Origin Signal Active / Inactive badge added to the plugin settings page
- canary_token is fetched automatically from Unsourced on settings save and stored locally, no manual steps required
1.1.0
- JS beacon auto-inject: plugin now automatically adds the Unsourced JS beacon to your site page head on save, no manual code required
- Site ID is fetched from Unsourced and stored automatically on settings save
- Settings page shows JS Beacon Active / Inactive status badge
1.0.0
- Initial release: 20 AI bot signatures, non-blocking server-side event reporting, admin settings page with connection test
