{"id":390040,"date":"2026-10-25T14:36:22","date_gmt":"2026-10-25T14:36:22","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/botgate-ai-crawler-control\/"},"modified":"2026-10-28T03:27:39","modified_gmt":"2026-10-28T03:27:39","slug":"anilsuwal-botgate","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/anilsuwal-botgate\/","author":23429301,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.1.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"BotGate \u2013 AI Crawler Control","header_author":"Anil Suwal","header_description":"Control which AI bots can read your content through robots.txt rules, and publish an llms.txt file for AI search tools.","assets_banners_color":"343f47","last_updated":"2026-10-28 03:27:39","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":124,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"anilsuwal16","date":"2026-10-25 14:36:02","revision":3764764},"1.0.1":{"tag":"1.0.1","author":"anilsuwal16","date":"2026-10-28 03:27:39","revision":3769832}},"upgrade_notice":{"1.0.0":"<p>First release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3764873,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3764873,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3764873,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3764873,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3764873,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250},"banner.svg":{"filename":"banner.svg","revision":3764873,"resolution":false,"location":"assets","locale":false}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3764879,"resolution":"1","location":"assets","locale":"","width":1312,"height":1350},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3764879,"resolution":"2","location":"assets","locale":"","width":1312,"height":1381},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3764879,"resolution":"3","location":"assets","locale":"","width":1312,"height":1473},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3764879,"resolution":"4","location":"assets","locale":"","width":1312,"height":427},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3764879,"resolution":"5","location":"assets","locale":"","width":780,"height":4798}},"screenshots":{"1":"AI Bots screen with presets, the crawler table and the robots.txt preview.","2":"Changing a single bot switches to custom rules and updates the preview.","3":"llms.txt screen with content selection and the live preview.","4":"Settings screen.","5":"The AI Bots screen on a phone."}},"plugin_section":[],"plugin_tags":[2353,9837,247966,244604,12753],"plugin_category":[],"plugin_contributors":[267433],"plugin_business_model":[],"class_list":["post-390040","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-crawler","plugin_tags-gptbot","plugin_tags-llms-txt","plugin_tags-robots-txt","plugin_contributors-anilsuwal16","plugin_committers-anilsuwal16"],"banners":{"banner":"https:\/\/ps.w.org\/anilsuwal-botgate\/assets\/banner-772x250.png?rev=3764873","banner_2x":"https:\/\/ps.w.org\/anilsuwal-botgate\/assets\/banner-1544x500.png?rev=3764873","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/anilsuwal-botgate\/assets\/icon.svg?rev=3764873","icon":"https:\/\/ps.w.org\/anilsuwal-botgate\/assets\/icon.svg?rev=3764873","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/anilsuwal-botgate\/assets\/screenshot-1.png?rev=3764879","caption":"AI Bots screen with presets, the crawler table and the robots.txt preview."},{"src":"https:\/\/ps.w.org\/anilsuwal-botgate\/assets\/screenshot-2.png?rev=3764879","caption":"Changing a single bot switches to custom rules and updates the preview."},{"src":"https:\/\/ps.w.org\/anilsuwal-botgate\/assets\/screenshot-3.png?rev=3764879","caption":"llms.txt screen with content selection and the live preview."},{"src":"https:\/\/ps.w.org\/anilsuwal-botgate\/assets\/screenshot-4.png?rev=3764879","caption":"Settings screen."},{"src":"https:\/\/ps.w.org\/anilsuwal-botgate\/assets\/screenshot-5.png?rev=3764879","caption":"The AI Bots screen on a phone."}],"raw_content":"<!--section=description-->\n<p>AI companies send crawlers to read websites, some to train models and some to answer questions in AI search. BotGate lets you decide which of them may read your site, from one screen under <strong>Settings \u2192 BotGate<\/strong>.<\/p>\n\n<p><strong>AI bot control<\/strong><\/p>\n\n<ul>\n<li>A table of known AI crawlers: name, company, purpose (AI training, AI search or user request) and an Allow \/ Block switch.<\/li>\n<li>Three one-click presets: <strong>Block training, allow search<\/strong> (recommended), <strong>Block all AI bots<\/strong> and <strong>Allow all AI bots<\/strong>. Fine-tune any bot after picking one.<\/li>\n<li>Rules are added to WordPress's virtual robots.txt through the <code>robots_txt<\/code> filter, between <code># BEGIN BotGate<\/code> and <code># END BotGate<\/code>. BotGate never edits a file on your server.<\/li>\n<li>A live preview shows exactly which rules will be added before you save.<\/li>\n<li>Conflict detection warns you when a physical robots.txt file overrides the virtual one, when the site discourages search engines, when WordPress is installed in a subdirectory, or when plain permalinks are used.<\/li>\n<li>A Site Health test (Tools \u2192 Site Health) reports the same conflicts.<\/li>\n<\/ul>\n\n<p><strong>llms.txt generator<\/strong><\/p>\n\n<ul>\n<li>Publishes a Markdown file at <code>\/llms.txt<\/code> with your site name, a short description, the pages you choose and the latest posts from the categories you choose.<\/li>\n<li>Preview the file before saving.<\/li>\n<li>Regenerates automatically when you publish, update or delete content.<\/li>\n<li>Password-protected, private and draft content is never included.<\/li>\n<\/ul>\n\n<p><strong>Privacy<\/strong><\/p>\n\n<p>The free version makes no external requests and does no tracking.<\/p>\n\n<p><strong>Known bots in this release<\/strong><\/p>\n\n<p>GPTBot, OAI-SearchBot, ChatGPT-User (OpenAI) \u00b7 ClaudeBot, Claude-User (Anthropic) \u00b7 Google-Extended (Google) \u00b7 PerplexityBot (Perplexity) \u00b7 CCBot (Common Crawl) \u00b7 Bytespider (ByteDance) \u00b7 Applebot-Extended (Apple) \u00b7 Meta-ExternalAgent (Meta).<\/p>\n\n<p>The list ships with the plugin and is updated with each release. Developers can change it with the <code>botgate_bots<\/code> filter.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>anilsuwal-botgate<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install the plugin from the Plugins screen.<\/li>\n<li>Activate it.<\/li>\n<li>Go to <strong>Settings \u2192 BotGate<\/strong>. The recommended preset (block training, allow search) is active by default.<\/li>\n<li>Open the <strong>llms.txt<\/strong> tab, choose the pages and categories to list, and click <strong>Save and regenerate<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20robots.txt%20actually%20stop%20ai%20bots%3F\"><h3>Does robots.txt actually stop AI bots?<\/h3><\/dt>\n<dd><p>robots.txt is a request. The major AI companies say their crawlers respect it, but a bot can ignore it.<\/p><\/dd>\n<dt id=\"i%20have%20a%20robots.txt%20file%20in%20my%20site%20root.%20will%20botgate%20work%3F\"><h3>I have a robots.txt file in my site root. Will BotGate work?<\/h3><\/dt>\n<dd><p>No. A physical file is served by your web server before WordPress runs, so the virtual robots.txt (and BotGate's rules) is never used. BotGate warns you about this. Delete or rename the file, or copy the BotGate rules from the preview into it.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20yoast%20seo%2C%20rank%20math%20or%20all%20in%20one%20seo%3F\"><h3>Does it work with Yoast SEO, Rank Math or All in One SEO?<\/h3><\/dt>\n<dd><p>BotGate is built to work alongside them. Those plugins also use the <code>robots_txt<\/code> filter; BotGate adds its block after theirs (priority 20) and never duplicates it.<\/p><\/dd>\n<dt id=\"why%20does%20%2Fllms.txt%20return%20a%20404%3F\"><h3>Why does \/llms.txt return a 404?<\/h3><\/dt>\n<dd><p>Go to <strong>Settings \u2192 Permalinks<\/strong> and click <strong>Save Changes<\/strong> to refresh the rewrite rules. With plain permalinks, the file is served at <code>\/?botgate_llms=1<\/code>.<\/p><\/dd>\n<dt id=\"which%20content%20is%20included%20in%20llms.txt%3F\"><h3>Which content is included in llms.txt?<\/h3><\/dt>\n<dd><p>Only the pages and categories you select, and only published content that is not password-protected or private.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<p>Add Multilanguage options\n*<\/p>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<\/ul>","raw_excerpt":"Choose which AI bots can read your content, and publish an llms.txt file for AI search tools.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/390040","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=390040"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/anilsuwal16"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=390040"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=390040"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=390040"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=390040"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=390040"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=390040"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}