Valvai turns your WordPress into an AI traffic control center.
- Block or allow GPTBot, ClaudeBot, PerplexityBot & co.
- Live dashboard with filters (All / AI / Allowed / Blocked)
- Per‑bot tabs to choose JSON vs HTML feed, content types, pricing
- Active 403 hard‑block for disallowed tokens
- robots.txt auto‑updates on every setting change
Roadmap: HTTP 402 paywall handshake, revenue dashboard, token marketplace.
Configuration
- Visit Settings ▸ Valvai. You will see tabs: Dashboard, Permissions, and an AI‑specific tab for each allowed crawler.
- Permissions tab:
- Toggle Allow/Block for detected bots (e.g., GPTBot, ClaudeBot, PerplexityBot).
- Or edit the manual lists 「Blocked」 and 「Allowed」 using comma‑separated names.
- AI‑specific tabs (appear after a bot is allowed):
- Data format: pick JSON or HTML.
- Content sources: check which post types and taxonomies are exposed.
- Pricing: choose currency and price per 1,000 words (FREE disables pricing).
Usage / How it works
- Logging: Every request from a suspected crawler is logged to the
wp_valvai_crawl_logtable. View the last 200 entries on the Dashboard and filter by All / AI / Allowed / Blocked. - Blocking: Disallowed bots receive an HTTP 403 immediately.
- robots.txt: Your robots.txt is automatically augmented. Disallowed tokens get
Disallow: /. Allowed tokens get anAllowrule pointing to a feed endpoint.
Testing the plugin
- After activation, open Settings ▸ Valvai ▸ Dashboard. It will show 「No logs yet」 on a fresh site.
- In a new browser tab, visit any public URL on your site with a test crawler User‑Agent, for example:
- Use
curl -A "GPTBot" https://your-site.example/ - Or in the browser with a UA switcher extension.
- Use
- Refresh the Dashboard: you should now see an entry with token
GPTBot. - Go to the Permissions tab and switch GPTBot to Allow or Block.
- Visit
/robots.txtto verify entries update accordingly. - If allowed, open the AI‑specific tab for that bot to set JSON/HTML and sources.
Notes for developers
- All public PHP identifiers use the unique
valvaitcc_prefix to avoid conflicts. - Legacy options (
valvai_*) are automatically migrated tovalvaitcc_*on activation; legacy reads are still honored for backward compatibility. - robots.txt feed query uses
?valvaitcc=TOKEN&fmt=json|html.






