- Methodology
- Parameters
- Machine-Readable Capability Metadata
Machine-Readable Capability Metadata
stableCategory: ai-signals · Methodology v4.5
Does your site declare what it can do in a machine-readable form?
Signal Source
- Source
homepage HTML JSON-LD blocks (potentialAction / action / *Action types), manifest, well-known- Kind
- http_response
Score Bands
| Verdict | Condition |
|---|---|
| Pass | 2 or more distinct capabilities are declared — JSON-LD potentialAction/action objects whose @type ends in 'Action' (e.g. SearchAction, ReserveAction) or that carry a name/target, de-duplicated by type and name |
| Partial | Exactly 1 capability is declared, or the definitions are vague |
| Fail | No capability metadata is detected in any parsed JSON-LD block |
Description
What this parameter measures
Does your site declare what it can do in a machine-readable form? That is what this parameter checks. friendly4AI parses every <script type="application/ld+json"> block on the homepage, walks the tree for potentialAction and action nodes, and treats each one as a capability when its @type ends in Action (such as SearchAction, ReserveAction, or OrderAction) or when it carries a name or a target URL template. Each capability is labelled by type and name and de-duplicated before counting.
Why it matters for AI-readiness
An agent reading your page can infer a lot, but a declared SearchAction or ReserveAction removes the guesswork: it states the capability, the entry point, and often the parameters in a standard vocabulary the agent already understands. Schema.org actions are the bridge between "this site probably lets me book something" and "this site exposes a booking action at this URL with these inputs." The more capabilities you declare clearly, the more confidently an AI can drive a task to completion.
How we score it
This is a gradient AI-Specific Signals parameter, and the scanner matches the rubric directly by counting distinct capabilities: two or more pass (100), exactly one scores partial (50), and none fails (0). Detection runs entirely over parsed JSON-LD, so an action only counts when it is valid, machine-readable structured data — prose claims about features earn nothing. Like agent onboarding docs, this parameter sits in the AI-Specific Integration group and is not gated on API detection: it is scored on every site, because capability metadata helps agents whether or not you publish a formal API spec.
How to fix common issues
- Add JSON-LD
potentialActionentries to your structured data — start with aSearchActionand the actions most central to your site. - Give each action a clear
@typeending inAction, plus anameand atargeturlTemplateso the entry point is explicit. - Declare at least two distinct capabilities to reach the pass tier; one capability only earns a partial.
- Validate your structured data at search.google.com/test/rich-results so the JSON-LD parses cleanly.
- Re-scan after publishing to confirm the capabilities are detected and de-duplicated as expected.
Version History
- Introduced
- v1
- Last changed
- v4.4
Key takeaways
- Signal: homepage HTML JSON-LD blocks (potentialAction / action / *Action types), manifest, well-known
- Category: AI-Specific Signals
- Passes when: 2 or more distinct capabilities are declared — JSON-LD potentialAction/action…