{"id":398892,"date":"2026-11-06T06:35:02","date_gmt":"2026-11-06T06:35:02","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/bot-control-crawler-ai-agent-scraper-manager\/"},"modified":"2026-11-06T06:34:26","modified_gmt":"2026-11-06T06:34:26","slug":"all-in-crawler-ai-agent-manager","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/all-in-crawler-ai-agent-manager\/","author":13840107,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.0","stable_tag":"1.2.0","tested":"7.1.4","requires":"6.1","requires_php":"7.4","requires_plugins":null,"header_name":"All-IN Crawler & AI Agent Manager","header_author":"Eli Shvarzman","header_description":"Decide which bots, crawlers, AI agents and scrapers may access your site, rate-limit them so none can overload it, and stay fully visible to search engines and AI assistants (SEO + AIO safe). Includes official IP-list verification, server rules, email reports and an llms.txt generator.","assets_banners_color":"0f1b27","last_updated":"2026-11-06 06:34:26","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/a-in.co.il\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":214,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2.0":{"tag":"1.2.0","author":"elis85","date":"2026-11-06 06:34:26","revision":3787299}},"upgrade_notice":{"1.2.0":"<p>New name (All-IN Crawler &amp; AI Agent Manager); your settings and data are kept. Removes the optional mu-plugin early loader (and deletes a leftover copy). Sanitization hardening. No database changes.<\/p>","1.1.1":"<p>Bundled bot list, no default remote feed, readme updates. No database changes.<\/p>","1.1.0":"<p>Adds IP-list verification for AI bots, server rules, email reports, llms.txt and Hebrew. No database changes.<\/p>","1.0.0":"<p>First release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3787299,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3787299,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3787299,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500-rtl.png":{"filename":"banner-1544x500-rtl.png","revision":3787299,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3787299,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250-rtl.png":{"filename":"banner-772x250-rtl.png","revision":3787299,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3787299,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.2.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3787299,"resolution":"1","location":"assets","locale":"","width":1440,"height":1340},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3787299,"resolution":"2","location":"assets","locale":"","width":1440,"height":1500},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3787299,"resolution":"3","location":"assets","locale":"","width":1440,"height":1298},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3787299,"resolution":"4","location":"assets","locale":"","width":1440,"height":903},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3787299,"resolution":"5","location":"assets","locale":"","width":1440,"height":1119}},"screenshots":{"1":"Dashboard with statistics per category and bot, server load and top denied IPs.","2":"Bot rules with one-click presets, category defaults and per-bot overrides.","3":"Protection settings: monitor or enforce mode, fake search-engine protection and server-load shedding.","4":"User-Agent tester and settings export \/ import.","5":"robots.txt management with a live preview of the added lines."}},"plugin_section":[],"plugin_tags":[232780,4866,9837,171765,12753],"plugin_category":[],"plugin_contributors":[291059],"plugin_business_model":[],"class_list":["post-398892","plugin","type-plugin","status-publish","hentry","plugin_tags-ai-crawler","plugin_tags-bots","plugin_tags-crawler","plugin_tags-rate-limit","plugin_tags-robots-txt","plugin_contributors-elis85","plugin_committers-elis85"],"banners":{"banner":"https:\/\/ps.w.org\/all-in-crawler-ai-agent-manager\/assets\/banner-772x250.png?rev=3787299","banner_2x":"https:\/\/ps.w.org\/all-in-crawler-ai-agent-manager\/assets\/banner-1544x500.png?rev=3787299","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/all-in-crawler-ai-agent-manager\/assets\/icon.svg?rev=3787299","icon":"https:\/\/ps.w.org\/all-in-crawler-ai-agent-manager\/assets\/icon.svg?rev=3787299","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/all-in-crawler-ai-agent-manager\/assets\/screenshot-1.png?rev=3787299","caption":"Dashboard with statistics per category and bot, server load and top denied IPs."},{"src":"https:\/\/ps.w.org\/all-in-crawler-ai-agent-manager\/assets\/screenshot-2.png?rev=3787299","caption":"Bot rules with one-click presets, category defaults and per-bot overrides."},{"src":"https:\/\/ps.w.org\/all-in-crawler-ai-agent-manager\/assets\/screenshot-3.png?rev=3787299","caption":"Protection settings: monitor or enforce mode, fake search-engine protection and server-load shedding."},{"src":"https:\/\/ps.w.org\/all-in-crawler-ai-agent-manager\/assets\/screenshot-4.png?rev=3787299","caption":"User-Agent tester and settings export \/ import."},{"src":"https:\/\/ps.w.org\/all-in-crawler-ai-agent-manager\/assets\/screenshot-5.png?rev=3787299","caption":"robots.txt management with a live preview of the added lines."}],"raw_content":"<!--section=description-->\n<p>Much of your traffic is bots. Some bring you customers: Google, Bing, ChatGPT search, social previews. Others only cost you server resources: aggressive AI training crawlers, SEO tools, scrapers and vulnerability scanners. All-IN Crawler &amp; AI Agent Manager lets you decide, per category or per bot, who gets in and how fast, without hiding your site from search engines or AI assistants.<\/p>\n\n<ul>\n<li><strong>About 120 known bots in 12 categories<\/strong>: search engines, AI search &amp; assistants, AI training crawlers, SEO tools, social previews, monitoring, feed readers, archives, scripts &amp; HTTP libraries, vulnerability scanners, unidentified bots and empty User-Agents.<\/li>\n<li><strong>Allow, rate-limit or block<\/strong> per category, with per-bot overrides and custom User-Agent rules (text or regex).<\/li>\n<li><strong>One-click presets<\/strong>: Balanced, Maximum AI visibility, Protect content from AI training, Lockdown.<\/li>\n<li><strong>IP \/ CIDR allow and block lists<\/strong> (IPv4 and IPv6), and excluded paths for webhooks and payment callbacks.<\/li>\n<li><strong>Protect content from AI training, stay in AI answers<\/strong>: training crawlers (GPTBot, ClaudeBot, CCBot\u2026) are handled separately from AI search and assistant agents (OAI-SearchBot, ChatGPT-User, Claude-User, Perplexity-User\u2026).<\/li>\n<li><strong>Real search engines only<\/strong>: forward-confirmed reverse DNS plus optional official crawler IP lists (Google, Bing, Apple, OpenAI, Perplexity; off until you turn them on) catch fake Googlebots and GPTBots.<\/li>\n<li><strong>Overload protection<\/strong>: rate limits per IP or per bot with 429 + Retry-After, load shedding with 503 + Retry-After when server load per CPU core crosses your threshold, and an optional per-IP limit for \"human\" visitors (logged-in users are exempt). SEO-safe status codes only, never cached.<\/li>\n<li><strong>robots.txt and llms.txt<\/strong>: manage robots.txt rules (including Google-Extended, Applebot-Extended and an optional Crawl-delay) and generate an llms.txt that skips noindex content.<\/li>\n<li><strong>Block before PHP<\/strong>: export rules to .htaccess (Apache\/LiteSpeed) or nginx. Inside WordPress, requests are decided while plugins load, before the theme runs.<\/li>\n<li><strong>Dashboard and reports<\/strong>: 7\/14-day statistics, top denied IPs with one-click blocking, a denied-request log, a User-Agent tester and weekly or monthly email reports.<\/li>\n<li><strong>Optional bot-list feed<\/strong> that adds new AI crawlers between releases (add-only and safety-checked). Off by default, and it only downloads from a URL you enter.<\/li>\n<li><strong>Fast storage<\/strong>: APCu, then Redis\/Memcached, then the database.<\/li>\n<li><strong>Fails open<\/strong>: if anything goes wrong inside the plugin, visitors are let through and the error is logged.<\/li>\n<li>Full Hebrew translation, RTL ready.<\/li>\n<\/ul>\n\n<p>Full documentation: see <code>docs\/USER-MANUAL.md<\/code> (site owners) and <code>docs\/DEVELOPER.md<\/code> (hooks &amp; architecture).<\/p>\n\n<h4>More from A-in<\/h4>\n\n<p>This plugin is complete on its own: no licence key, no locked features. Premium plugins, add-ons and support from the same developer are available at <a href=\"https:\/\/a-in.co.il\/plugins\/\">a-in.co.il<\/a>.<\/p>\n\n<h3>External services<\/h3>\n\n<p>All-IN Crawler &amp; AI Agent Manager works without any external service. These features contact third parties:<\/p>\n\n<ul>\n<li><strong>Official crawler IP lists<\/strong> (Bot Lists tab \u2192 \"Download official crawler IP lists\", <strong>off by default, opt-in<\/strong>). Nothing is downloaded until you tick the box and save; the \"Download official IP lists\" button is also disabled until then. Once enabled, the site downloads the public IP range files published by the crawler operators once a day, to verify that a request claiming to be their bot really comes from them. No data about your site or visitors is sent: it is a plain HTTPS GET with a generic <code>all-in-crawler-ai-agent-manager\/&lt;version&gt;<\/code> User-Agent, so the publisher only sees your server's IP address. Untick the box to stop the downloads at any time. Sources:\n\n<ul>\n<li>Google: <code>https:\/\/developers.google.com\/static\/search\/apis\/ipranges\/<\/code> (<a href=\"https:\/\/policies.google.com\/terms\">Terms<\/a>, <a href=\"https:\/\/policies.google.com\/privacy\">Privacy<\/a>)<\/li>\n<li>Bing: <code>https:\/\/www.bing.com\/toolbox\/bingbot.json<\/code> (<a href=\"https:\/\/www.microsoft.com\/servicesagreement\">Terms<\/a>, <a href=\"https:\/\/privacy.microsoft.com\/privacystatement\">Privacy<\/a>)<\/li>\n<li>Apple: <code>https:\/\/search.developer.apple.com\/applebot.json<\/code> (<a href=\"https:\/\/www.apple.com\/legal\/internet-services\/terms\/site.html\">Terms<\/a>, <a href=\"https:\/\/www.apple.com\/legal\/privacy\/\">Privacy<\/a>)<\/li>\n<li>OpenAI: <code>https:\/\/openai.com\/gptbot.json<\/code>, <code>searchbot.json<\/code>, <code>chatgpt-user.json<\/code> (<a href=\"https:\/\/openai.com\/policies\/terms-of-use\">Terms<\/a>, <a href=\"https:\/\/openai.com\/policies\/privacy-policy\">Privacy<\/a>)<\/li>\n<li>Perplexity: <code>https:\/\/www.perplexity.com\/perplexitybot.json<\/code>, <code>perplexity-user.json<\/code> (<a href=\"https:\/\/www.perplexity.ai\/hub\/legal\/terms-of-service\">Terms<\/a>, <a href=\"https:\/\/www.perplexity.ai\/hub\/legal\/privacy-policy\">Privacy<\/a>)<\/li>\n<\/ul><\/li>\n<li><strong>Bot-list feed<\/strong> (Lists \u2192 Bot list updates, off by default). The plugin ships its extra bot definitions in <code>data\/bots.json<\/code> and needs no download. If you enter a feed URL of your own (for example your agency's feed), the site requests that URL once a day, sending your site URL in the User-Agent and, if you set one, your access key as a Bearer token. There is no default remote feed.<\/li>\n<li><strong>DNS verification<\/strong> of search engine bots uses reverse and forward DNS lookups through your server's resolver. No third-party API is called.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin ZIP via Plugins \u2192 Add New \u2192 Upload Plugin, then activate it.<\/li>\n<li>Open <strong>All-IN Crawler \u2192 Dashboard<\/strong> and check that \"Your IP\" shows your real public IP. If it doesn't, configure Advanced \u2192 IP source.<\/li>\n<li>Optionally switch Protection \u2192 Mode to <em>Monitor<\/em> for a few days to review decisions safely.<\/li>\n<li>Pick a preset on Bot Rules.<\/li>\n<li>Optionally export server rules (.htaccess \/ nginx) on the Server Rules tab so blocked bots are rejected before PHP runs.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20this%20hurt%20my%20seo%3F\"><h3>Will this hurt my SEO?<\/h3><\/dt>\n<dd><p>No, with the default configuration. Search engines are allowed and DNS-verified, and throttling uses 429\/503 with Retry-After, which search engines treat as \"come back later\".<\/p><\/dd>\n<dt id=\"can%20i%20block%20ai%20training%20but%20stay%20in%20chatgpt%20%2F%20claude%20%2F%20perplexity%20answers%3F\"><h3>Can I block AI training but stay in ChatGPT \/ Claude \/ Perplexity answers?<\/h3><\/dt>\n<dd><p>Yes. Apply the \"Protect content from AI training\" preset. AI search and assistant agents stay allowed.<\/p><\/dd>\n<dt id=\"can%20i%20block%20google%27s%20ai%20overviews%3F\"><h3>Can I block Google's AI Overviews?<\/h3><\/dt>\n<dd><p>Not without blocking Google Search. AI Overviews use regular Googlebot. Google-Extended only controls Gemini training\/grounding use.<\/p><\/dd>\n<dt id=\"does%20it%20replace%20cloudflare%20or%20a%20server%20firewall%3F\"><h3>Does it replace Cloudflare or a server firewall?<\/h3><\/dt>\n<dd><p>No. It complements them. Large DDoS attacks must be stopped before they reach PHP.<\/p><\/dd>\n<dt id=\"does%20all-in%20crawler%20%26%20ai%20agent%20manager%20contact%20any%20outside%20service%20by%20default%3F\"><h3>Does All-IN Crawler &amp; AI Agent Manager contact any outside service by default?<\/h3><\/dt>\n<dd><p>No. Out of the box it makes no outgoing requests: search engine bots are verified with DNS lookups through your own server's resolver. Two features can download data, and both are off until you turn them on in the Bot Lists tab: the official crawler IP lists (from Google, Bing, Apple, OpenAI and Perplexity) and a bot-list feed URL of your own. See \"External services\" below for exactly what is requested.<\/p><\/dd>\n<dt id=\"why%20would%20i%20turn%20on%20the%20official%20crawler%20ip%20lists%3F\"><h3>Why would I turn on the official crawler IP lists?<\/h3><\/dt>\n<dd><p>OpenAI and Perplexity bots have no reverse DNS, so without their published IP lists All-IN Crawler &amp; AI Agent Manager can't tell a real GPTBot or PerplexityBot from a scraper using the same name; they stay \"unverified\". With the lists on, a request claiming to be one of those bots from an unlisted IP is treated as an impostor. A list is only used while it is fresh (under 7 days old), so a failed download never blocks a genuine bot.<\/p><\/dd>\n<dt id=\"does%20a%20page%20cache%20bypass%20it%3F\"><h3>Does a page cache bypass it?<\/h3><\/dt>\n<dd><p>Pages served from a full-page cache don't run WordPress, so All-IN Crawler &amp; AI Agent Manager doesn't see them. Those requests are cheap anyway. Denials are sent with <code>Cache-Control: no-store<\/code> and are never cached.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Changed: new name, All-IN Crawler &amp; AI Agent Manager (slug and text domain all-in-crawler-ai-agent-manager). Settings, statistics and logs are kept: the internal botctl_ option and table names are unchanged, and settings exports from earlier versions can still be imported.<\/li>\n<li>Removed: the optional early loader. The plugin no longer writes any file to wp-content\/mu-plugins; a loader created by an older build is removed on upgrade, deactivation and uninstall (only if All-IN Crawler &amp; AI Agent Manager generated it).<\/li>\n<li>Security: the request URI, User-Agent, method and cookie names are sanitized as soon as they are read; imported settings and admin form input are whitelisted, type-cast and sanitized field by field.<\/li>\n<li>Changed: translations are loaded by WordPress from translate.wordpress.org; no translation files are bundled.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Changed: extra bot definitions (<code>data\/bots.json<\/code>) are bundled and always used; no network request is needed for them.<\/li>\n<li>Changed: there is no default remote feed any more. The feed downloads only from a URL you enter.<\/li>\n<li>Changed: official crawler IP list downloads are opt-in and off by default. Nothing is downloaded until you enable them on the Bot Lists tab, and a setting saved by an older version never turns them on. The IP-list requests no longer include your site URL.<\/li>\n<li>Changed: requires WordPress 6.1 (object-cache group flush).<\/li>\n<li>Docs: External services section, GPL LICENSE file, Tested up to 7.1. Description condensed, Donate link, 5 screenshots with captions.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: official crawler IP lists (Google, Bing, Apple, OpenAI, Perplexity) with fail-safe freshness checks.<\/li>\n<li>New: remote bot-list feed (add-only, browser-safe validation, optional access key).<\/li>\n<li>New: .htaccess \/ nginx server rules with auto-sync.<\/li>\n<li>New: weekly\/monthly white-label email reports.<\/li>\n<li>New: llms.txt generator.<\/li>\n<li>New: Hebrew translation.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: bot detection (~120 bots, 12 categories), per-category\/per-bot\/custom rules, presets, rate limiting (APCu \/ object cache \/ DB), DNS verification of search engines, load shedding, human rate limiting, IP allow\/block lists, robots.txt management, dashboard, logs, UA tester, import\/export, early loader, debug logging.<\/li>\n<\/ul>","raw_excerpt":"Allow, rate-limit or block bots, AI crawlers and scrapers, and stay visible to search engines and AI assistants.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/398892","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=398892"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/elis85"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=398892"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=398892"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=398892"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=398892"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=398892"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=398892"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}