AgenticWebScore
Scan

Content Accessibility · Recommended · High impact

FAQ / question-answer schema

Question-and-answer content is the type agents quote most.

  • Recommended
  • High impact
  • Draft standard
FAQ / question-answer schema — Property, Value
Property Value
Check idfaq-schema
DimensionContent Accessibility (22%)
TierRecommended — pool 20 pts
Weight inside tier2
ImpactHigh
MaturityDraft — A published specification that is not yet ratified.
ConditionalNo
Publishing skillfaq-schema
Standardsschema.org/FAQPage

What is measured

This check declares no probe path, so the scanner works from the JSON-LD of the already fetched homepage / and looks for a FAQPage entity anywhere in the graph. Pass when FAQPage is present and mainEntity is a non-empty array of objects typed Question that each carry a name and an acceptedAnswer typed Answer with non-empty text; partial when FAQPage exists but mainEntity is empty, when an entry is not typed Question, or when a question lacks a typed, non-empty acceptedAnswer; fail when no FAQPage type appears.

Reproduce it yourself

You do not have to take our word for any of this. Run the same measurement against your own domain:

              DOMAIN="https://example.com"
curl -sL "$DOMAIN/" | perl -0777 -ne 'while (m{<script[^>]*application/ld\+json[^>]*>(.*?)</script>}gsi) { print "$1\n" }' | jq -r '.. | objects | select((."@type"? | if type == "array" then .[] else . end) == "FAQPage") | .mainEntity[] | [.name, (.acceptedAnswer.text // "NO ANSWER")] | @tsv'
            

The fix

This is the artifact to ship. It is the complete change, not a description of one.

              <script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What does an agent readiness audit measure?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "61 checks across discovery, content, bot access, protocol and commerce, each scored and paired with a fix."
      }
    },
    {
      "@type": "Question",
      "name": "How long does the audit take?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Scanning your public pages takes about two minutes; the scored report is generated immediately."
      }
    }
  ]
}
</script>
            

Standards referenced

  • schema.org/FAQPage

Related checks

Related checks — Check, Tier, Impact, Same skill
Check Tier Impact Same skill
markdown-negotiation — Markdown content negotiationRecommendedCritical—
headings — Semantic heading structureEssentialHigh—
meta — Title and summary metadataEssentialHigh—
jsonld — JSON-LD structured dataEssentialCritical—
breadcrumb — Breadcrumb / navigation schemaEmergingLow—
summary — Prominent summary blockRecommendedMedium—
lang — Language declaration and multilingual accessRecommendedMedium—
no-js-fallback — Content that needs no JavaScriptEssentialHigh—