1,000+
June 29, 2026
January 2, 2026
VigIA (Spanish for “lookout” or “watchman”, incorporating “IA” – Spanish for “AI”) is a complete AI visibility toolkit for WordPress. Monitor 60+ AI crawlers, control access to your content, and optimize how AI systems discover and understand your site.
AI Visibility Analyzer
* 100-point scoring system with letter grades (A+ to F)
* 20 individual checks across 5 categories
* Access & AI Discovery (37 pts): robots.txt, AI bot directives, Content Signals, llms.txt, sitemap, RSS feed
* Structured Data & Semantic Context (25 pts): JSON-LD schemas, Open Graph, Twitter Cards, meta description, canonical URL
* Content Structure & Readability (20 pts): heading hierarchy, semantic HTML5, image alt text, content/HTML ratio
* AI Interaction & Distribution (8 pts): markdown delivery, AI share buttons
* Access Performance (10 pts): TTFB measurement
* Smart recommendations with direct links to VigIA features and plugin suggestions
* Analyze any page on your site with URL autocomplete selector
* Results cached for 24 hours with manual re-analyze option
Analytics Dashboard
* Total visits, unique crawlers, and pages crawled statistics
* Timeline chart with daily breakdown
* Category distribution (AI Training, AI Search, AI Assistant, Data Scraper)
* Top crawlers and most crawled pages tables with paginated navigation
* AI Share & Summarize integration: see share button clicks per page
* Recent activity log with content type and HTTP status columns (color coded by status family)
* Advanced filters: multi-select crawler picker, content type, HTTP status code, and configurable date range
* Server-side pagination with four-button pager (first, previous, next, last) — operates over the full database, not just the latest 500 rows
* Period comparison functionality
* CSV export with a metadata banner (site name, site URL, export type, date range, export timestamp, applied filters)
* “Export filtered CSV” button that downloads exactly what the active filters return, with vigia-filtered-YYYY-MM-DD.csv filename
* Content type detection distinguishes Home, Post, Page, Product, custom CPTs, Category archive, Tag archive, Date/Author archive, Feed, Sitemap, REST API, File, Admin / login attempts (/wp-admin, /wp-login.php), WordPress system (admin-ajax, xmlrpc, wp-cron, wp-comments-post), 404 Not found, and Other
Crawler Blocking
* Block crawlers via PHP with 403 Forbidden response
* Quick block dropdown in analytics dashboard
* Manage blocks from Extras page
* Works on any server (Apache, Nginx, LiteSpeed, etc.)
Robots.txt Management
* Add Disallow rules for AI crawlers
* Visual preview of your robots.txt
* Compliance monitoring: see which crawlers ignore your rules
* One-click blocking for non-compliant crawlers
* Works with both physical and virtual robots.txt
Email Alerts
* Daily, weekly, or monthly reports
* Three detail levels: Minimal, Normal, Complete
* Non-compliant crawler warnings
* Activity comparison with previous period
Markdown for Agents
* Serve posts, pages and any public post type as optimized markdown for AI agents
* Serve taxonomy archive pages (categories, tags, WooCommerce product categories, custom taxonomies) as markdown — disabled by default, opt in per taxonomy
* Dedicated .md URL endpoints (e.g., /your-post.md, /category/news.md, /product-category/electronics.md)
* Accept: text/markdown content negotiation on posts and taxonomy archive pages
* Discoverability via Link HTTP headers and <link rel="alternate" type="text/markdown"> HTML tags
* YAML frontmatter for posts: title, date, modified, author, image, categories, tags, post type, lang
* YAML frontmatter for taxonomy terms: title, description, url, type, taxonomy, parent, count, image (term meta), lang
* WooCommerce product frontmatter adds schema-like fields: sku, product_type, price, regular_price, sale_price, currency, availability, stock_quantity, rating, rating_count, review_count
* Taxonomy term body includes the term description (rendered through the_content), the list of direct child terms in hierarchical taxonomies, and an excerpt of the latest posts/products assigned to the term
* Product listings inside product_cat archives include an inline summary with formatted price, “was X” on sale items, star rating and out-of-stock flag
* Respects blocking rules (blocked crawlers get 403) and LLMs.txt exclusion filters
* Per-term noindex detection from Yoast SEO, Rank Math, All in One SEO and SEOPress
* Analytics integration: tracks markdown requests per crawler
* X-Markdown-Tokens response header
* Filters: vigia_markdown_post_eligible, vigia_markdown_term_eligible, vigia_markdown_term_posts_limit
* Follows the Cloudflare Markdown for Agents standard
LLMs.txt Generator
* Select content by post type with one click
* Filter by taxonomies (categories, tags, custom)
* Manual include/exclude with AJAX search
* Exclude by URL patterns (wildcards supported)
* SEO plugin integration (auto-exclude noindex content)
* Auto-regeneration (daily, weekly, monthly)
* Robots.txt integration (add llms.txt and llms-full.txt references)
* Generate llms.txt and llms-full.txt files
* Full content or excerpt mode
* Compatible with Yoast SEO, Rank Math, All in One SEO, SEOPress, The SEO Framework, and Native SEO NoIndexer
JSON-LD Structured Data
* Generate WebSite and Organization/Person schema for site identity
* AI Discovery: ReadAction pointers to llms.txt, llms-full.txt, and Markdown for Agents endpoints
* Social profiles and sameAs links for brand identity across the web
* SearchAction for Google sitelinks search box
* Media library integration for logo selection
* SEO plugin conflict detection (Yoast, Rank Math, AIOSEO, SEOPress, The SEO Framework)
* Choose output page (front page or any published page)
* Live JSON-LD preview with real-time updates
* Smart integration with LLMs.txt and Markdown for Agents features
VigIA monitors 60+ AI crawlers including:
VigIA stores visitor data locally in your WordPress database. No data is sent to external servers.
VigIA is one of the first WordPress plugins to implement the Abilities API introduced in WordPress 6.9. This API allows AI agents, automation tools, and external systems to discover and interact with VigIA’s functionality in a standardized, secure way.
Abilities are self-contained units of functionality that VigIA exposes through WordPress’s central registry. Each ability has defined inputs, outputs, and permissions, making it easy for automation tools to understand and use them.
VigIA registers the following abilities:
Analytics
vigia/get-crawler-stats – Get statistics about AI crawler visits (total visits, unique crawlers, pages crawled)vigia/get-top-crawlers – Get a ranked list of most active AI crawlersvigia/get-top-pages – Get the most crawled pages on your siteBlocking
vigia/get-blocked-items – List all blocked crawlers and IP addressesvigia/block-crawler – Block a crawler by User-Agent patternvigia/unblock-crawler – Remove an existing blockRobots.txt
vigia/get-robots-rules – Get current AI crawler rules in robots.txtvigia/add-robots-disallow – Add a Disallow directive for a crawlervigia/remove-robots-rule – Remove a robots.txt ruleThe Abilities API ships with WordPress 6.9 and later. On older WordPress versions, VigIA works normally but abilities and MCP are not available.
VigIA exposes its 9 abilities as native MCP tools to any MCP-compatible client (Claude Code, Cursor, Claude Desktop, Codex CLI, Antigravity, Continue, Cline, Zed and similar) using the official WordPress MCP Adapter. The adapter ships bundled with the plugin, so the MCP endpoint is active right after installation — no Composer step or terminal access required.
Open VigIA > Extras > MCP and click “Generate password and connection commands”. The plugin creates a dedicated Application Password named VigIA MCP and renders ready-to-paste commands for Claude Code, Cursor, Claude Desktop and a generic block (URL + Authorization header) for any other MCP client.
The plain password is shown only once. If you lose it, revoke the entry from the same panel and generate a new one.
https://your-site.example/wp-json/vigia/v1/mcp
The endpoint uses HTTP Basic auth with the WordPress Application Password. The user must have the manage_options capability.
Quick Connect builds the full command for you. The shape is:
claude mcp add --transport http vigia https://your-site.example/wp-json/vigia/v1/mcp --header "Authorization: Basic BASE64_OF_USER_AND_APP_PASSWORD"
Claude Code merges the new entry into its config file automatically — no risk of breaking other servers.
Save the JSON block from Quick Connect as ~/.cursor/mcp.json. You can also reach this file from inside Cursor at Settings Cursor Settings MCP.
If the file already exists with other content, see “Merging into an existing config file” below.
Save the JSON block from Quick Connect as claude_desktop_config.json in your user Library (this is not the system Library at the root of the disk):
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.config/Claude/claude_desktop_config.jsonOn macOS, the easiest way to reach the folder is to open Finder, press ⌘ Shift G, paste ~/Library/Application Support/Claude/ and hit Enter. On Windows, press Win+R and run %APPDATA%\Claude.
Important: Claude Desktop only speaks stdio to local processes, so the snippet does not connect directly to VigIA over HTTP. Instead it launches a small bridge package (mcp-remote) via npx that proxies the connection. This means you need Node.js installed on the machine. The first run downloads mcp-remote automatically; subsequent runs use the npm cache.
If you do not want to install Node.js, connect from Claude Code or Cursor instead — both speak HTTP MCP natively and do not need a bridge.
Restart Claude Desktop after saving the file. If the app boots with default preferences, the JSON is malformed — review the file or restore your backup. If Claude Desktop says the entry is “not a valid MCP server configuration”, npx is not in its PATH; check that Node.js is installed and accessible to GUI apps.
If the file already exists with other content, see “Merging into an existing config file” below.
If your claude_desktop_config.json or ~/.cursor/mcp.json already exists, do not paste the full Quick Connect block on top of it. Pasting on top discards everything else (preferences, other MCP servers) and the app will start with defaults.
Always make a backup of the file first. Then open it with any text editor that preserves JSON.
There are two scenarios.
Scenario 1 — the file has content but no mcpServers block yet.
This is common when you have used Claude Desktop before but never configured MCP servers. The file might look like this:
{
"preferences": {
"menuBarEnabled": false,
"...": "..."
}
}
Add mcpServers as a sibling property of preferences, separated by a comma. The result should be:
{
"preferences": {
"menuBarEnabled": false,
"...": "..."
},
"mcpServers": {
"vigia": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://your-site.example/wp-json/vigia/v1/mcp",
"--header",
"Authorization: Basic BASE64_OF_USER_AND_APP_PASSWORD"
]
}
}
}
The order of preferences and mcpServers is not important, but the comma between them is required. Forgetting the comma makes the JSON invalid and Claude Desktop will start with default preferences.
Scenario 2 — the file already has mcpServers with other servers.
Add the vigia entry inside the existing mcpServers object, separated from other entries by a comma:
"mcpServers": {
"other-server": {
"...": "..."
},
"vigia": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://your-site.example/wp-json/vigia/v1/mcp",
"--header",
"Authorization: Basic BASE64_OF_USER_AND_APP_PASSWORD"
]
}
}
For Cursor the entry is different — Cursor speaks HTTP MCP natively, so its block uses type, url and headers directly inside the server entry instead of the bridge command. The Quick Connect panel renders the right format for each client.
Most MCP clients accept HTTP transport with a custom Authorization header. The Quick Connect panel exposes the two raw values you need — the server URL and the Authorization header — so you can drop them into whatever configuration format your client expects.
Browser-only assistants without an MCP client (AI Studio, ChatGPT web) cannot connect. They need a desktop or CLI client that speaks MCP over HTTP.
If you only want your AI to consult VigIA (not change anything), enable “Read-only mode” in the MCP tab. While on, write actions (block, unblock, robots changes) return a permission denied error. Read actions (statistics, top crawlers, blocked items, robots rules) keep working.
The toggle stores a vigia_mcp_read_only option that hooks into the vigia_can_write_via_abilities filter. Developers can still force read-only from a mu-plugin:
add_filter( 'vigia_can_write_via_abilities', '__return_false' );
The mu-plugin filter at the default priority takes precedence over the toggle.
Restart your MCP client after adding the server so it picks up the new tools. Then try a few prompts to confirm everything is wired up:
The third example exercises a read + write + read round-trip, which is the most complete sanity check.
Need private support or custom development?
Do you need one-on-one help, priority troubleshooting, or a custom feature, integration, or tweak built specifically for your site? I offer private support and custom development. Just contact me and tell me what you need.
Need help or have suggestions?
Love the plugin? Please leave us a 5-star review and help spread the word!
We are specialists in WordPress security, SEO, AI and performance optimization plugins. We create tools that solve real problems for WordPress site owners while maintaining the highest coding standards and accessibility requirements.
/wp-content/plugins/vigia/ or install through the WordPress plugins screenThe AI Visibility Score is a 100-point rating system that measures how well your site is prepared for AI crawlers and AI-powered search. It checks 20 signals across 5 categories: access and discovery, structured data, content structure, AI interaction, and performance. You get a letter grade (A+ to F) and specific recommendations to improve.
No. VigIA adds minimal overhead by checking the User-Agent string on each request. The check is very fast and only writes to the database when an AI crawler is detected.
Robots.txt is advisory – crawlers should respect it but may choose to ignore it. PHP blocking returns a 403 Forbidden response, effectively preventing access regardless of whether the crawler respects robots.txt.
Blocking AI training crawlers (like GPTBot or ClaudeBot) will not affect traditional search engine rankings. However, blocking AI search crawlers might affect how your content appears in AI-powered search results.
Markdown for Agents is a standard for serving web content as clean markdown to AI agents. Instead of processing full HTML, agents receive lightweight markdown with structured metadata. VigIA supports both dedicated .md URLs and Accept: text/markdown content negotiation. Enable it in VigIA > Extras > Markdown for Agents.
Since VigIA 2.0.0 the feature also covers taxonomy archives (categories, tags, WooCommerce product categories, custom taxonomies) and WooCommerce products. Term archives include the term description, the list of child terms in hierarchical taxonomies and an excerpt of the latest entries; product .md endpoints embed schema-like data (price, sale price, SKU, stock status, rating) directly in the YAML frontmatter.
VigIA 2.0.0 classifies each crawler hit into one of these buckets, indexed in the database so filters and CSV exports are instant: Home (the / path), Post, Page, Product, any other public custom post type, Category archive, Tag archive, Date/Author archive, Feed, Sitemap, REST API, File (PDFs, images, downloads), Admin/login attempt (/wp-admin, wp-login.php — useful to spot bots probing the admin), WordPress system (admin-ajax, xmlrpc, wp-cron, wp-comments-post), 404 Not found, and Other.
Yes! In the main analytics page, scroll down to “Custom crawlers” and add your own User-Agent patterns to track.
All data is stored in your WordPress database in a custom table (wp_vigia_visits). No data leaves your server.
The llms.txt file is a standard for helping AI systems understand your website’s content and structure. It provides a machine-readable overview of your site that AI can use to better represent your content. Learn more at llmstxt.org.
VigIA supports automatic noindex detection from: Yoast SEO, Rank Math, All in One SEO, SEOPress, The SEO Framework, and Native SEO NoIndexer.
The Abilities API is a new feature in WordPress 6.9 that allows plugins to expose their functionality in a standardized way. This enables AI agents, automation tools, and external systems to discover and use plugin features programmatically. VigIA implements 9 abilities for analytics, blocking, and robots.txt management.
JSON-LD (JavaScript Object Notation for Linked Data) is structured data that helps search engines and AI systems understand your site identity and content. VigIA generates two types of JSON-LD: Site Identity (WebSite + Organization/Person schema with social profiles) and AI Discovery (ReadAction pointers to your llms.txt and Markdown for Agents endpoints). This makes your AI-ready content discoverable through structured signals. Enable it in VigIA > Extras > JSON-LD.
For older changelog entries, please check the changelog.txt file
| Version | Download | Type |
|---|---|---|
| 2.4.0 | Download | Stable |
| 2.3.0 | Download | Stable |
| 2.2.0 | Download | Stable |
| 2.1.0 | Download | Stable |
| 2.0.3 | Download | Stable |
| 2.0.2 | Download | Stable |
| 2.0.1 | Download | Stable |
| 2.0.0 | Download | Stable |
| 1.12.1 | Download | Stable |
| 1.12.0 | Download | Stable |
| 1.11.0 | Download | Stable |
| 1.10.2 | Download | Stable |
| 1.10.1 | Download | Stable |
| 1.10.0 | Download | Stable |
| 1.9.5 | Download | Stable |
| 1.9.4 | Download | Stable |
| 1.9.3 | Download | Stable |
| 1.9.2 | Download | Stable |
| 1.9.1 | Download | Stable |
| 1.9.0 | Download | Stable |
| 1.8.1 | Download | Stable |
| 1.8.0 | Download | Stable |
| 1.7.1 | Download | Stable |
| 1.7.0 | Download | Stable |
| 1.6.1 | Download | Stable |
| 1.6.0 | Download | Stable |
| 1.5.0 | Download | Stable |
| 1.4.1 | Download | Stable |
| 1.4.0 | Download | Stable |
| 1.3.0 | Download | Stable |
| 1.2.9 | Download | Stable |
| 1.2.8 | Download | Stable |
| 1.2.7 | Download | Stable |
| 1.2.6 | Download | Stable |
| 1.2.5 | Download | Stable |
| 1.2.4 | Download | Stable |
| 1.2.3 | Download | Stable |
| 1.2.2 | Download | Stable |
| 1.2.1 | Download | Stable |
| 1.2.0 | Download | Stable |
| 1.1.1 | Download | Stable |
| 1.1.0 | Download | Stable |
| 1.0.0 | Download | Stable |
| Development | Download | Trunk |