AgentDecoy Guard · WordPress, Cloudflare, Next.js, Express · free
Catch the bots and AI agents that attack your site, with decoys they cannot resist
Attack bots ask for files no person ever opens: .env, .git/config, .aws/credentials, backup.zip. Guard answers with believable fakes and logs who asked. The fakes carry their own tripwires, so you also see when a stolen key or password gets used. On our own sites, a scanner stole the fake AWS key and tried to take over the account within three hours. Every site that joins makes every other site safer and smarter: an address that uses a stolen secret on one Guard site is refused on logins and forms across all of them within the hour, and what the network learns about AI search goes into every score.
Version 1.6.0 · WordPress 5.8+ · PHP 7.4+ · GPLv2 · Source in the zip, nothing minified.
Decoys
Fake .env, .git, AWS credentials and backup files; a fake admin login that tells a person, a scripted bot and an AI browser agent apart by how the form is filled; fake API docs and a fake MCP server for AI agents that read first and act second; a hidden link only rule-breakers follow; fake readme files for well-known vulnerable plugins you do not have.
Tripwires inside the fakes
The fake API key, AI key, webhook and admin password each report back the moment someone uses them, from any address, and are traced to the visit they were stolen on. Half of visitors also get a note only AI agents read, asking them to identify themselves.
Never blocks the good bots
Google, Bing, Apple, DuckDuckGo, Yandex and Amazon are verified by reverse DNS; OpenAI and Perplexity by their published address lists. Verified bots get a plain 404. Decoy paths are also listed in robots.txt. Observe mode refuses nobody.
Free site key
With a key, every catch counts toward your site in the Agent Attack Index and you get one email a month with what the decoys caught. Without a key the plugin still works and keeps the last 40 catches on its settings page.
Install in two minutes
- Plugins, Add New, Upload Plugin, choose the zip, Activate.
- Settings, AgentDecoy Guard: paste your site key and choose what to turn on. Security headers, the form bot guard and the decoys are on by default.
- Open yoursite.com/.env in a browser. You should see a fake file, and the visit appears under Recent catches.
- Run the free check again: the headers and form guard raise your score.
Pro ($12 a month, 7 days free) adds a weekly report with every catch, an email the day a stolen secret is used, and the full findings. See plans.
Not on WordPress: every other kind of site
- Any site behind Cloudflare (Shopify, Wix, Squarespace, Webflow, custom, anything): one click on Deploy to Cloudflare, set your site and key, add a route for your domain. The decoys sit in front of the site, and Cloudflare's verified-bot list is honoured first.
- Shopify, Wix, Squarespace, Webflow without Cloudflare: these builders do not let anyone run code on their servers, so the decoys need Cloudflare in front (its free plan is enough: point your domain's nameservers to Cloudflare, then the button above). Without it you still get the score, the weekly re-check, the badge (paste the badge HTML into a footer or custom-code block) and a listing in the verified directory by DNS record.
- Next.js, Express and any Node or edge server:
npm install agentdecoy(npm, GitHub): one middleware file or oneapp.useline. - Would rather not do it yourself? Give me access safely and I will set it up.
Questions
Will it slow my site?
No. It checks the requested path against a short list and does nothing on ordinary pages. Reports are sent without waiting for an answer.
Will it hurt my search ranking?
No. Verified crawlers never see a decoy, decoy paths are listed in robots.txt, and the decoy pages carry noindex. The security headers it adds are the ones the AgentDecoy check scores.
What does it send to AgentDecoy?
Only catches: the address, browser string, path, method, time and which decoy. Requests sent with a decoy key to the decoy AI endpoint also include the model name and the first 1,000 characters of the text sent. Nothing about ordinary visitors. Records are deleted after 90 days.
My host blocks dotfiles like /.env at the server level.
Then that one decoy never reaches WordPress, which is fine: the others (backup.zip, the fake login, API docs, MCP, plugin readmes, the hidden link) still work.
Can an attacker tell the files are fake?
The same visitor sees the same file all day, it looks like real configuration, and it holds nothing real. Scanners took our bait within hours of it going live.
Not on WordPress?
The JavaScript version covers Cloudflare Workers (any site behind Cloudflare, a two-minute deploy), Next.js (a middleware file), Express and any server with a fetch handler. It installs with npm install agentdecoy (source on GitHub at github.com/KyleClouthier/agentdecoy), with the same decoys, the same tripwires and the same verified-bot rules. The same decoys run on simgen.dev and secondstrike.io.