{"id":353367,"date":"2026-08-24T05:51:47","date_gmt":"2026-08-24T05:51:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/globaldev-ai-traffic-control\/"},"modified":"2026-08-24T05:51:30","modified_gmt":"2026-08-24T05:51:30","slug":"globaldev-ai-traffic-control","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/globaldev-ai-traffic-control\/","author":18387632,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0.4","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"GlobalDev AI Traffic Control","header_author":"GlobalDev","header_description":"Monitor identifiable AI crawler traffic and enforce site-wide, per-crawler, and per-content access rules, with optional llms.txt publishing.","assets_banners_color":"5f92bb","last_updated":"2026-08-24 05:51:30","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/www.globaldev.ro\/globaldev-ai-traffic-control\/","header_author_uri":"https:\/\/www.globaldev.ro\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":37,"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":"globaldevitus","date":"2026-08-24 05:51:30"}},"upgrade_notice":{"1.0.0":"<p>First release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3662677,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3662677,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3662677,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3662677,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3662687,"resolution":"1","location":"assets","locale":"","width":1486,"height":638},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3662687,"resolution":"2","location":"assets","locale":"","width":1516,"height":3446}},"screenshots":{"1":"The dashboard: daily volume, who is crawling you, and which posts they want.","2":"Settings, with crawlers grouped by what they are actually for.","3":"The per-post control in the editor sidebar.","4":"A preview of the robots.txt rules and the generated llms.txt."}},"plugin_section":[],"plugin_tags":[277167,246479,232,274092,12753],"plugin_category":[36],"plugin_contributors":[272568],"plugin_business_model":[],"class_list":["post-353367","plugin","type-plugin","status-publish","hentry","plugin_tags-ai-access","plugin_tags-ai-crawlers","plugin_tags-analytics","plugin_tags-bot-traffic","plugin_tags-robots-txt","plugin_category-analytics","plugin_contributors-globaldevitus","plugin_committers-globaldevitus"],"banners":{"banner":"https:\/\/ps.w.org\/globaldev-ai-traffic-control\/assets\/banner-772x250.png?rev=3662677","banner_2x":"https:\/\/ps.w.org\/globaldev-ai-traffic-control\/assets\/banner-1544x500.png?rev=3662677","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/globaldev-ai-traffic-control\/assets\/icon-128x128.png?rev=3662677","icon_2x":"https:\/\/ps.w.org\/globaldev-ai-traffic-control\/assets\/icon-256x256.png?rev=3662677","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/globaldev-ai-traffic-control\/assets\/screenshot-1.png?rev=3662687","caption":"The dashboard: daily volume, who is crawling you, and which posts they want."},{"src":"https:\/\/ps.w.org\/globaldev-ai-traffic-control\/assets\/screenshot-2.png?rev=3662687","caption":"Settings, with crawlers grouped by what they are actually for."}],"raw_content":"<!--section=description-->\n<p>GlobalDev AI Traffic Control is primarily an <strong>AI crawler traffic monitoring and access-control plugin<\/strong>. It is not an llms.txt generator with a few extra settings: its core job is to identify known AI crawler requests, record what they request, evaluate those requests against your policy, and optionally enforce that policy.<\/p>\n\n<p><strong>Monitor identifiable AI crawler traffic.<\/strong> The dashboard records requests from supported AI crawler user agents, including which crawler requested which URL, when it happened, and whether the request matched or violated your configured policy. Ordinary visitors are not logged. Raw IP addresses are not stored; when an identifier is needed, the plugin stores a one-way hash.<\/p>\n\n<p><strong>Create a policy hierarchy.<\/strong> Set a site-wide default, override it for a specific crawler, and override that again for an individual post or page. This lets you block model-training crawlers while still allowing AI search crawlers or live assistant fetchers, or exclude only selected content.<\/p>\n\n<p><strong>Choose the enforcement level.<\/strong> You can record policy violations only, send <code>X-Robots-Tag: noai, noimageai<\/code>, or return HTTP 403 for recognized crawler requests that are not allowed.<\/p>\n\n<p><strong>Publish matching robots.txt rules.<\/strong> The plugin adds AI crawler directives to WordPress' virtual robots.txt and can include URL-specific exclusions. A preview screen shows the rules that would be published.<\/p>\n\n<p><strong>Keep an audit trail.<\/strong> Crawler requests and policy decisions are stored locally in a dedicated WordPress database table, with configurable retention and automatic cleanup.<\/p>\n\n<p><strong>Optionally publish llms.txt.<\/strong> llms.txt support is an additional feature and is disabled by default. If enabled, the plugin can publish a Markdown summary at <code>\/llms.txt<\/code>, omit content you have excluded, and include your own description and usage terms.<\/p>\n\n<h4>What makes this different<\/h4>\n\n<p>The plugin combines four functions in one policy workflow:<\/p>\n\n<ul>\n<li>request-level analytics for identifiable AI crawlers;<\/li>\n<li>site-wide, per-crawler, and per-content access decisions;<\/li>\n<li>active enforcement through headers or HTTP 403 responses; and<\/li>\n<li>robots.txt output derived from the same policy.<\/li>\n<\/ul>\n\n<p>The optional llms.txt output is generated from that policy rather than being the main purpose of the plugin.<\/p>\n\n<h4>What this plugin does not claim<\/h4>\n\n<p>User-Agent identification is not a firewall. A scraper that disguises itself as an ordinary browser cannot be reliably identified by this plugin. robots.txt is also advisory and depends on crawler cooperation.<\/p>\n\n<p>The plugin therefore manages crawlers that identify themselves through supported User-Agent tokens and provides enforcement for requests that WordPress actually receives.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin does not connect to, depend on, or send data to any third-party service. AI crawler identification is performed locally using User-Agent strings included with incoming requests. The plugin does not call crawler-provider APIs, load remote scripts, or send analytics to GlobalDev.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code>, or install the zip through Plugins &gt; Add New &gt; Upload.<\/li>\n<li>Activate it.<\/li>\n<li>Open <strong>AI Traffic<\/strong> in the admin menu.<\/li>\n<li>Configure your crawler policy and enforcement level. Enable llms.txt only if you want to publish it.<\/li>\n<\/ol>\n\n<p>The plugin ships with an allow-by-default access policy. llms.txt publishing is disabled by default, so activation does not publish that file unless you explicitly enable it.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20this%20hurt%20my%20google%20rankings%3F\"><h3>Will this hurt my Google rankings?<\/h3><\/dt>\n<dd><p>No. Googlebot is not in the crawler list and is never affected. Google-Extended is a separate token covering Gemini training and grounding only, and blocking it has no effect on Search.<\/p><\/dd>\n<dt id=\"should%20i%20block%20everything%3F\"><h3>Should I block everything?<\/h3><\/dt>\n<dd><p>Probably not. Blocking training crawlers costs you nothing. Blocking search crawlers takes you out of AI answers, which is where a growing share of referral traffic comes from. Blocking assistant fetchers breaks the page for a person who asked an assistant about your site a second ago. Start with training only and watch what happens.<\/p><\/dd>\n<dt id=\"i%20already%20have%20a%20robots.txt%20file\"><h3>I already have a robots.txt file<\/h3><\/dt>\n<dd><p>Then your web server serves that file directly and WordPress never gets asked. The Published files screen detects this and shows you the rules to paste in by hand.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20caching%20plugins%3F\"><h3>Does this work with caching plugins?<\/h3><\/dt>\n<dd><p>The log and the header mode work through most page caches. The 403 refusal mode may not, because a cache can answer before WordPress runs. Test with a page you have excluded from caching.<\/p><\/dd>\n<dt id=\"does%20it%20slow%20the%20site%20down%3F\"><h3>Does it slow the site down?<\/h3><\/dt>\n<dd><p>A database write happens only when a known AI crawler visits, which on most sites is a small fraction of requests. Ordinary visitors do nothing but a string comparison against the user agent.<\/p><\/dd>\n<dt id=\"can%20i%20add%20a%20crawler%20you%20have%20not%20included%3F\"><h3>Can I add a crawler you have not included?<\/h3><\/dt>\n<dd><p>Yes. Developers can use the <code>gdatc_bot_registry<\/code> filter to add or modify crawler definitions. <code>gdatc_policy_decision<\/code> and <code>gdatc_llms_txt<\/code> are also available.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<li>Visit logging for 26 known AI crawlers, with a 30 day dashboard.<\/li>\n<li>Site-wide, per-crawler, and per-post access rules.<\/li>\n<li>Automatic robots.txt directives, including individual excluded URLs.<\/li>\n<li>llms.txt generation with a custom description and usage terms.<\/li>\n<li>Three enforcement levels: record, header, refuse.<\/li>\n<li>Configurable log retention with daily cleanup.<\/li>\n<\/ul>","raw_excerpt":"Monitor identifiable AI crawler traffic and enforce access rules site-wide, per crawler, or per post, with optional llms.txt publishing.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/353367","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=353367"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/globaldevitus"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=353367"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=353367"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=353367"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=353367"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=353367"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=353367"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}