Skip to main content
If your site runs on WordPress (or plain PHP), you install the Agent Edge Network as a small plugin. It runs on every front-end request, passes humans and search bots straight through, and serves verified AI answer-engine crawlers your pre-generated optimized artifact.
This is the drop-in plugin — self-contained, zero dependencies, verified by published IP ranges. It is the WordPress counterpart of the Next.js middleware and Cloudflare Worker. It ships in shadow mode (log-only), so installing it can never change what your visitors see until you switch to Live.The plugin is now called Bluemoon Agent Edge Network, but its file, folder and download keep the original bluesky-aen names — so an already-installed site updates in place instead of ending up with two copies of the plugin.

What the plugin does

On every front-end request, at template_redirect (before your theme renders), it:
  • Passes through anything that isn’t a known AI crawler — your site behaves exactly as before.
  • Never touches search bots — Googlebot, Bingbot and Applebot always get your real page (the cloaking firewall).
  • Verifies answer-engine crawlers by their published IP ranges, then — in Live mode — serves them your optimized artifact instead of your HTML page.
  • Reports every hit to Agent Analytics, so you see who crawled what and whether it was served.
There is no LLM call and no extra round-trip for your visitors — artifacts are generated offline and cached, and telemetry is fire-and-forget.

Before you start

  • A WordPress site you can add a plugin to (WordPress 5.6+, PHP 7.4+).
  • An edge token from Agent Analytics → Setup in the Bluemoon app (format aen_...).

Install it

Test it

The plugin ships in shadow mode — it serves your normal page to everyone and only logs what it would have served, so there is zero risk while you validate.
1

Trigger a real AI crawler

Open ChatGPT (or Perplexity) with browsing and ask a question that makes it look up your site. Its crawler fetches your page from a published OpenAI IP.
2

Watch the hit land

The plugin detects the crawler as IP_VERIFIED and the visit appears in Agent Analytics, broken down by agent and verification level.
3

Go live

Once you see verified hits, switch the serve mode to Live in Agent Analytics → Setup. No redeploy — the plugin reads the mode from the dashboard. Verified answer-engine agents now receive the optimized artifact. See Serve modes.

Caching

If you run a full-page cache (WP Super Cache, W3TC, LiteSpeed, or a CDN), it may serve a cached HTML page to crawlers before the plugin runs. Exclude AI crawler user-agents from the cache (e.g. ChatGPT-User, PerplexityBot, ClaudeBot, Google-Extended) so the plugin can run for them. Human traffic stays fully cached.

Troubleshooting

Confirm the plugin is active, the edge token is saved under Settings → Bluemoon AEN, and you actually triggered a browsing AI. Only verified crawlers are counted.
That’s expected in shadow mode, and for every human visitor in any mode — the plugin only changes the response for verified AI crawlers.
The request must be IP_VERIFIED, the crawler’s purpose must be enabled, and Bluemoon must have generated an artifact for that URL. Check the page’s status in Agent Analytics → Pages.
No. Human and search-bot traffic passes straight through, served artifacts are pre-generated and cached, and telemetry is sent non-blocking. If Bluemoon is ever unreachable, the request fails open to your normal page.

Full plugin source

The plugin is a single self-contained file — no Composer, no build step.
bluesky-aen.php

How it differs from the other drop-ins

  • It runs inside WordPress at template_redirect priority 0, before your theme renders.
  • The client IP comes from CF-Connecting-IPX-Forwarded-ForREMOTE_ADDR (in that order), so it works behind Cloudflare or a load balancer.
  • The serve mode is read live from your dashboard (cached ~5 min) — no redeploy to go Live.
Everything else — the cloaking firewall, verification levels, serve modes, and offline artifact generation — behaves exactly as it does for the middleware and Worker.