PS AgentReady
Makes your site agent-ready by adding markdown for agents and content signals in robots.txt
by Per Soderlind · github.com/soderlind/ps-agentready · website
Install
The author publishes release zips, so WP-CLI can install straight from GitHub:
wp plugin install https://github.com/soderlind/ps-agentready/releases/download/1.0.0/ps-agentready.zipReadme
PS AgentReady
WordPress plugin — makes your site agent-ready as tested by isitagentready.com.
Features
Markdown for Agents
When an HTTP client sends Accept: text/markdown, the plugin returns a clean Markdown version of the page instead of HTML. Browsers are unaffected.
curl -H "Accept: text/markdown" https://your-site.com/
Response headers:
Content-Type: text/markdown; charset=utf-8
Vary: Accept
X-Markdown-Tokens: 1842
The Markdown output:
- Strips non-content chrome (header, footer, nav, aside, scripts, styles, WP admin bar)
- Prepends a YAML frontmatter block from
<meta name="title/description">and<meta property="og:*">tags - Appends JSON-LD structured-data as a fenced
jsoncode block - Approximates token count via
ceil(strlen / 4)reported inX-Markdown-Tokens
Content Signals (robots.txt)
Appends a Content-Signal directive to robots.txt declaring how AI crawlers may use your content:
# PS AgentReady — Content Signals (https://contentsignals.org/)
User-agent: *
Content-Signal: ai-train=no, search=yes, ai-input=no
Each signal (ai-train, search, ai-input) can be set to yes, no, or omit (no declaration).
Requirements
- PHP 8.3+
- WordPress 6.9+
- Network activation required (single-site installs are supported too)
- Composer dependencies (see Installation)
Installation
From a release zip
Download the latest ps-agentready.zip from Releases, upload via Plugins → Add New → Upload Plugin, then network-activate.
From source
git clone https://github.com/soderlind/ps-agentready.git
cd ps-agentready
composer install --no-dev --optimize-autoloader
Copy the folder to wp-content/plugins/ and network-activate.
Configuration
On multisite: Network Admin → Settings → PS AgentReady
On single-site: Settings → PS AgentReady
| Setting | Default | Description |
|---|---|---|
| Markdown for Agents | Enabled | Return text/markdown on matching Accept requests |
| ai-train | no | AI model training |
| search | yes | Search indexing and results |
| ai-input | no | AI input / RAG / grounding |
Development
composer install
composer test # runs Pest test suite
vendor/bin/pest # same, explicit
Test suite
49 unit tests across three files:
| File | Coverage |
|---|---|
tests/Unit/SettingsSanitizeTest.php |
Settings::sanitize(), Settings::get_options() |
tests/Unit/ContentSignalsTest.php |
ContentSignals::append_content_signals() |
tests/Unit/MarkdownNegotiationTest.php |
MarkdownNegotiation::convert_to_markdown() — frontmatter, JSON-LD, element stripping, token count |
GitHub Actions
| Workflow | Trigger |
|---|---|
on-release-add.zip.yml |
GitHub release published → builds and attaches ps-agentready.zip |
manually-build-zip.yml |
Manual (workflow_dispatch) with tag input |
Both workflows run composer install --no-dev --optimize-autoloader and verify that vendor/yahnis-elsts/plugin-update-checker and vendor/league/html-to-markdown are included in the zip.
Validation
Use isitagentready.com to scan your site, or call the API directly:
curl -X POST https://isitagentready.com/api/scan \
-H "Content-Type: application/json" \
-d '{"url": "https://your-site.com"}'
Check that checks.contentAccessibility.markdownNegotiation.status and checks.botAccessControl.contentSignals.status both equal "pass".
Contributing
License
GPL-2.0-or-later. See LICENSE.
Read the full README on GitHub →
Releases
| Tag | Published | Asset | Downloads |
|---|---|---|---|
| 1.0.0 | May 4, 2026 | ps-agentready.zip | 7 |