docs(site): titles, descriptions and structured data for search and answer engines - #78
Merged
Merged
Conversation
…nswer engines A crawl of agentrust-io.com on 2026-09-14 found three titles leading with governance, nine descriptions over 160 characters, og:title not matching the page title on 7 of 11 pages, no social tags on the static catalog, and five pages without JSON-LD. Titles for /community/, /demos/, /telemetry/ and /marketplace/ follow the current positioning and fit 60 characters. Descriptions are trimmed to 160 and repeated in og and twitter tags. og:title and twitter:title are the title without " | AgenTrust". Four pages gain a page node and breadcrumbs, five keep theirs and gain breadcrumbs, the homepage specifications gain headline, and the catalog gains social tags. check-discovery.py now enforces all of it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013aK3gVWzNdcM3hZ2o2awK2
The /community/ contact button was a mailto link. Cloudflare Email Address Obfuscation rewrote it to /cdn-cgi/l/email-protection, which returns 404 to crawlers and answer engines that run no JavaScript. It now opens the agentrust-io organization's GitHub Discussions. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013aK3gVWzNdcM3hZ2o2awK2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A crawl of every agentrust-io.com page on 2026-09-14 found three titles still leading with governance, nine descriptions over 160 characters, og:title that did not match the page title on 7 of 11 pages, a static catalog with no social tags, and five pages with no structured data. Search results truncate long descriptions, and answer engines read titles, descriptions and JSON-LD to decide what a page is. This fixes each and adds checks so they stay fixed.
Titles
Descriptions, old length to new
Social titles. One rule: og:title and twitter:title are the title without " | AgenTrust". The homepage title has no suffix, so its og:title is now "AgenTrust: Open Specifications for Verifiable AI" instead of the hero line. tools/DISCOVERY.md states the rule.
Structured data
Guard. tools/check-discovery.py now fails an indexable page when its description is over 160 characters, its title or description has an em or en dash, og:title or twitter:title differ from the title rule, og:description or twitter:description differ from the meta description, og:image lacks width, height or alt, or it has no JSON-LD (the catalog excepted).
Adoption contact. The /community/ "Contact Imran" button was a mailto link. Cloudflare Email Address Obfuscation rewrote it to /cdn-cgi/l/email-protection, which returns 404 to crawlers and answer engines that run no JavaScript. It is now "Start a discussion", linking https://github.com/orgs/agentrust-io/discussions (200).
Not in this PR. Email Address Obfuscation itself is a Cloudflare zone setting, switched off separately once this and the TRACE change deploy. The other strings it rewrites are example.com placeholders and the package version mcp-search@2.1.0, which read correctly once it is off. The hub still has no llms-full.txt; the other seven hosts generate theirs from MkDocs, and building one here means a new generator, so it is left for a separate change.
Checked
Generated with Claude Code
https://claude.ai/code/session_013aK3gVWzNdcM3hZ2o2awK2