AILYS Lens

Description

AILYS Lens is an analytics plugin that treats AI crawler visits (GPTBot, ClaudeBot, PerplexityBot, and others) as first-class data. As search traffic gives way to AI-generated answers, Lens gives you an instrument for a new question: is your site actually being read by AI?

Most analytics tools filter bots out. Lens does the opposite — it records nothing but AI crawlers, and shows you not just whether they visit, but how far they get. A crawler that only fetches robots.txt has not read your content. That distinction — visiting is not reading — is what this plugin is built to measure.

Features

  • A dashboard that answers one question at a glance: “In the last 30 days, your site was read by AI N times”
  • AI crawlers classified by purpose: Training (collection for model training) / AI Search (indexing for AI search) / User Fetch (real-time retrieval to answer a user’s question)
  • Per-crawler daily charts, last-visit timestamps, and spoofing verification (published IP ranges / reverse DNS)
  • Top 10 pages read by AI
  • A quick check of whether your robots.txt is blocking AI crawlers
  • Manual import of server access logs (combined log format, .gz supported) to fill gaps in cached environments
  • Weekly report email (opt-in): once a week, your own server sends you the observed numbers via wp_mail(). The email travels from your server to your inbox — nothing is sent externally

Design principles

  • Lightness is a feature: non-crawler requests pass through in under 1 millisecond, and the plugin loads zero CSS/JS on your site’s front end
  • Human visitors are never tracked. Only AI crawler requests are recorded
  • All data stays in your own server’s database. Nothing is sent externally
  • No claims beyond the evidence: the dashboard visually distinguishes visits verified via published IP ranges / reverse DNS from records matched by user-agent string alone
  • AILYS Lens is free, permanently. Every feature runs locally on your server, and that is a design commitment, not a pricing decision waiting to happen. There is no paid tier inside this plugin, and there never will be

About AILYS Doctor (an external service operated by the plugin’s developer)

The developer of this plugin also operates AILYS Doctor (https://ailys.app/doctor), a separate diagnostic service. The dashboard, the weekly report email, and the plugin’s settings page contain a link to it. The link includes your site URL as a query parameter so the diagnosis form can be pre-filled — this is transmitted only if you click the link, by your browser, never by the plugin. Doctor is an external service: the diagnosis runs on ailys.app. This plugin works fully without Doctor, and this plugin never sends any data to ailys.app. No tracking pixels, no open-rate measurement, no shortened URLs are used.

Terms of service: https://ailys.app/terms
Privacy policy: https://ailys.app/privacy
Operator information: https://ailys.app/company

Screenshots

Installation

  1. Upload the plugin files to /wp-content/plugins/ailys-lens/, or install the plugin through the WordPress plugins screen.
  2. Activate the plugin through the ‘Plugins’ screen in WordPress.
  3. That’s it. Lens starts observing AI crawler visits immediately. Open the AILYS Lens dashboard from the admin menu to see the results.
  4. (Optional) Enable the weekly report email under Settings — AILYS Lens. It is off by default.

FAQ

Are human visitors recorded?

No. Only requests identified as AI crawlers are recorded. Human visitors are never tracked or logged.

Does it work with caching plugins?

Yes, with one caveat: when a page cache answers a request, PHP never runs, so that visit cannot be counted (the displayed numbers are a lower bound). To fill the gap, you can import your server’s access logs from the settings screen.

Are IP addresses stored?

Raw IP addresses are not stored. Only an irreversible hash that changes daily is kept, which makes long-term tracking impossible. If you enable reverse DNS verification, IPs awaiting verification are held for up to 24 hours and discarded after verification.

Is any data sent to external services?

No. All measurement data stays in this site’s database. The only external request the plugin makes is to fetch your own site’s robots.txt for the block check.

Does the weekly report email send data anywhere?

No. The weekly report is sent by your own site via wp_mail() to the site administrator’s address (changeable). The data travels from your server to your inbox — ailys.app is not on the path. It is opt-in (off by default) and can be stopped from the settings at any time.

Why is the paid service separate from the plugin instead of a Pro version?

Because the two cannot honestly coexist. This plugin’s core promise is zero external communication — and a diagnostic service that uses large language models cannot run without sending data out. Rather than weaken the promise, we keep them apart: Lens observes locally and stays free; AILYS Doctor diagnoses on ailys.app, only when you choose to go there.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“AILYS Lens” is open source software. The following people have contributed to this plugin.

Contributors

Translate “AILYS Lens” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

0.1.7

  • New: weekly report on/off toggle in the dashboard header (syncs with the existing setting; no new options)
  • New: link to AILYS Doctor in the dashboard header (a plain link that opens in a new tab — the plugin still sends nothing externally)
  • The Doctor links now include your site URL as a query parameter to pre-fill the diagnosis form (transmitted only when you click the link)

0.1.6

  • Log import working file is now stored as a non-executable file with a hardened .htaccess (Apache 2.4 compatible), instead of a PHP file with a guard line. Random 64-character file names and TTL cleanup are unchanged
  • Removed bundled translation files from the package; translations are delivered via translate.wordpress.org

0.1.5

  • Code quality: added translators comments to placeholder strings, escaped and translated internal exception messages to English (Plugin Check compliance). No functional changes

0.1.4

  • Fixed: the dashboard headline now shows the number of content pages actually read, not total crawler visits
  • Fixed: paths under /wp-admin/ (such as admin-ajax.php) are no longer counted as content pages read
  • Fixed: “Top pages read by AI” now lists content pages only
  • Fixed: the crawler table footnotes are now translatable (English source with Japanese translation)
  • Log import now applies the same IP-range verification (bundled snapshot) as live recording

0.1.3

  • The plugin title in the admin dashboard and settings screens is now displayed as the AILYS Lens logo. The logo image is bundled with the plugin — no external requests are made

0.1.2

  • Added weekly report feature (opt-in): once a week, wp_mail() delivers the number of AI crawler visits and the number of content pages actually read. A dashboard widget with the same figures was also added
  • Nothing is sent externally (aggregation reads only local tables; the email is sent from your own server)

0.1.1

  • Added published IP range (CIDR) matching to spoofing verification (OpenAI / Perplexity / Mistral / DuckDuckGo). Ranges are bundled with the plugin as a snapshot; no external communication occurs
  • Dashboard now shows the date of the bundled range snapshot

0.1.0

  • Initial release: AI crawler detection and recording, dashboard, settings screen, log import