{"id":245511,"date":"2025-09-01T20:44:22","date_gmt":"2025-09-01T20:44:22","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/valv-ai-traffic-control-center\/"},"modified":"2025-09-01T20:57:16","modified_gmt":"2025-09-01T20:57:16","slug":"valvai-ai-traffic-control-center","status":"publish","type":"plugin","link":"https:\/\/de-at.wordpress.org\/plugins\/valvai-ai-traffic-control-center\/","author":23342368,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"0.4.13","stable_tag":"0.4.13","tested":"6.8.5","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Valvai \u2013 AI Traffic Control Center","header_author":"Valvai","header_description":"Block, log, and monetise AI\/LLM crawlers for WordPress.","assets_banners_color":"848a8f","last_updated":"2025-09-01 20:57:16","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":212,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.4.13":{"tag":"0.4.13","author":"valvai","date":"2025-09-01 20:57:16"}},"upgrade_notice":{"0.4.11":"<ul>\n<li>Plugin renamed to Valvai, no other functional changes.<\/li>\n<\/ul>","0.4.4":"<p>Complies with WP\u00a0Coding\u00a0Standards; no database changes.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3357205,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3357205,"resolution":"1544x500","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.4.13"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Dashboard log with filters and status column.","2":"Permissions tab with Allow\/Block toggles.","3":"AI\u2011specific tab showing JSON option and pricing field."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[2353,9837,12753,493,31565],"plugin_category":[55],"plugin_contributors":[247228],"plugin_business_model":[],"class_list":["post-245511","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-crawler","plugin_tags-robots-txt","plugin_tags-traffic","plugin_tags-valve","plugin_category-seo-and-marketing","plugin_contributors-valvai","plugin_committers-valvai"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/valvai-ai-traffic-control-center\/assets\/icon-256x256.png?rev=3357205","icon_2x":"https:\/\/ps.w.org\/valvai-ai-traffic-control-center\/assets\/icon-256x256.png?rev=3357205","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Valvai turns your WordPress into an AI traffic control center.<\/strong><\/p>\n\n<ul>\n<li>Block or allow GPTBot, ClaudeBot, PerplexityBot &amp; co.  <\/li>\n<li>Live dashboard with filters (All \/ AI \/ Allowed \/ Blocked)  <\/li>\n<li>Per\u2011bot tabs to choose JSON vs HTML feed, content types, pricing  <\/li>\n<li>Active 403 hard\u2011block for disallowed tokens  <\/li>\n<li>robots.txt auto\u2011updates on every setting change<\/li>\n<\/ul>\n\n<p>Roadmap: HTTP\u00a0402 paywall handshake, revenue dashboard, token marketplace.<\/p>\n\n<h3>Configuration<\/h3>\n\n<ol>\n<li>Visit Settings \u25b8 Valvai. You will see tabs: Dashboard, Permissions, and an AI\u2011specific tab for each allowed crawler.  <\/li>\n<li>Permissions tab:\n\n<ul>\n<li>Toggle Allow\/Block for detected bots (e.g., GPTBot, ClaudeBot, PerplexityBot).  <\/li>\n<li>Or edit the manual lists \u201cBlocked\u201d and \u201cAllowed\u201d using comma\u2011separated names.  <\/li>\n<\/ul><\/li>\n<li>AI\u2011specific tabs (appear after a bot is allowed):\n\n<ul>\n<li>Data format: pick JSON or HTML.  <\/li>\n<li>Content sources: check which post types and taxonomies are exposed.  <\/li>\n<li>Pricing: choose currency and price per 1,000 words (FREE disables pricing).<\/li>\n<\/ul><\/li>\n<\/ol>\n\n<h3>Usage \/ How it works<\/h3>\n\n<ul>\n<li>Logging: Every request from a suspected crawler is logged to the <code>wp_valvai_crawl_log<\/code> table. View the last 200 entries on the Dashboard and filter by All \/ AI \/ Allowed \/ Blocked.  <\/li>\n<li>Blocking: Disallowed bots receive an HTTP 403 immediately.  <\/li>\n<li>robots.txt: Your robots.txt is automatically augmented. Disallowed tokens get <code>Disallow: \/<\/code>. Allowed tokens get an <code>Allow<\/code> rule pointing to a feed endpoint.<\/li>\n<\/ul>\n\n<h3>Testing the plugin<\/h3>\n\n<ol>\n<li>After activation, open Settings \u25b8 Valvai \u25b8 Dashboard. It will show \u201cNo logs yet\u201d on a fresh site.  <\/li>\n<li>In a new browser tab, visit any public URL on your site with a test crawler User\u2011Agent, for example:<br \/>\n\n<ul>\n<li>Use <code>curl -A \"GPTBot\" https:\/\/your-site.example\/<\/code>  <\/li>\n<li>Or in the browser with a UA switcher extension.  <\/li>\n<\/ul><\/li>\n<li>Refresh the Dashboard: you should now see an entry with token <code>GPTBot<\/code>.  <\/li>\n<li>Go to the Permissions tab and switch GPTBot to Allow or Block.  <\/li>\n<li>Visit <code>\/robots.txt<\/code> to verify entries update accordingly.  <\/li>\n<li>If allowed, open the AI\u2011specific tab for that bot to set JSON\/HTML and sources.<\/li>\n<\/ol>\n\n<h3>Notes for developers<\/h3>\n\n<ul>\n<li>All public PHP identifiers use the unique <code>valvaitcc_<\/code> prefix to avoid conflicts.  <\/li>\n<li>Legacy options (<code>valvai_*<\/code>) are automatically migrated to <code>valvaitcc_*<\/code> on activation; legacy reads are still honored for backward compatibility.  <\/li>\n<li>robots.txt feed query uses <code>?valvaitcc=TOKEN&amp;fmt=json|html<\/code>.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>\/valvai\/<\/code> folder or use <em>Plugins\u00a0\u25b8\u202fAdd\u00a0New\u202f\u25b8\u202fUpload<\/em>.  <\/li>\n<li>Activate <strong>Valvai \u2013 AI Traffic Control Center<\/strong>.  <\/li>\n<li>Go to <em>Settings\u00a0\u25b8\u202fValvai<\/em> to review logs and set permissions.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='does%20valvai%20hurt%20seo%3F'><h3>Does Valvai hurt SEO?<\/h3><\/dt>\n<dd><p>No. Only tokens you block get 403. Googlebot, Bingbot, etc. remain untouched.<\/p><\/dd>\n<dt id='why%20do%20blocked%20bots%20still%20show%20in%20the%20log%3F'><h3>Why do blocked bots still show in the log?<\/h3><\/dt>\n<dd><p>Valvai logs the hit <em>before<\/em> sending 403, so you have an audit trail.<\/p><\/dd>\n<dt id='can%20i%20give%20json%20but%20not%20html%3F'><h3>Can I give JSON but not HTML?<\/h3><\/dt>\n<dd><p>Yes. In each AI tab pick <strong>JSON<\/strong> under \u201cData format\u201d and select allowed sources.<\/p><\/dd>\n<dt id='when%20will%20pricing%20go%20live%3F'><h3>When will pricing go live?<\/h3><\/dt>\n<dd><p>Token\u2011based HTTP\u00a0402 paywall is scheduled for v0.5 (Q4\u202f2025).<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.4.13<\/h4>\n\n<ul>\n<li>Switched to unique prefix <code>valvaitcc_<\/code> for all functions, options, nonces, and slugs to avoid conflicts.  <\/li>\n<li>Added activation migration for legacy options.  <\/li>\n<li>Expanded readme with clear configuration, usage, and testing steps.<\/li>\n<\/ul>\n\n<h4>0.4.11<\/h4>\n\n<ul>\n<li>Renamed plugin to Valvai.<\/li>\n<\/ul>\n\n<h4>0.4.4<\/h4>\n\n<ul>\n<li>Escaped all outputs per WP\u00a0Coding\u00a0Standards.  <\/li>\n<li>Removed unused Plugin\u00a0URI header; readme cleaned.<\/li>\n<\/ul>","raw_excerpt":"Block, log and monetise AI crawlers directly from your WordPress dashboard.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/de-at.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/245511","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/de-at.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/de-at.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/de-at.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=245511"}],"author":[{"embeddable":true,"href":"https:\/\/de-at.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/valvai"}],"wp:attachment":[{"href":"https:\/\/de-at.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=245511"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/de-at.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=245511"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/de-at.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=245511"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/de-at.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=245511"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/de-at.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=245511"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/de-at.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=245511"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}