docs: page descriptions, titles, structured data and crawler files for search and answer engines - #183
Merged
Conversation
…r search and answer engines A crawl of ca2a.agentrust-io.com on 2026-09-14 found 36 of 37 pages sharing the site description, a home title that repeated the site name, 74 inline Organization objects with no @id, every page's TechArticle pointing at the home page, a robots.txt with no directives or Sitemap line, and an llms.txt with only two sections. hooks/seo.py gives each page a description from its first paragraph. overrides/main.html fixes the title, sets og:title to match, and emits one JSON-LD graph per page: the hub Organization by @id, a WebSite, a WebPage or TechArticle for the page itself, and a BreadcrumbList on inner pages. robots.txt is added to the root and to the docs build copy list, and the llms.txt sections follow the five tabs. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013aK3gVWzNdcM3hZ2o2awK2
imran-siddique
requested review from
a team,
carloshvp and
zohebk8s
as code owners
September 14, 2026 23:51
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 page in ca2a.agentrust-io.com's sitemap on 2026-09-14 found five things that make the site harder for search and answer engines to read:
site_description, because Material falls back to it when a page has none. Results showed one snippet for the whole site.cA2A: verify who delegated what, hop by hop - cA2A.@idand repeated an inline Organization asauthoron every page, 74 objects in all, and each page's TechArticle pointed at the home page rather than itself./robots.txtserved only Cloudflare's content-signals comment block, with no directives and no Sitemap line, because the docs build never copied a robots.txt.llms.txthad two sections, Getting started and Specification, with no guides and no LIMITATIONS.Changes
hooks/seo.py, registered underhooks:in mkdocs.yml, sets each page's description from its first paragraph of prose, capped at 155 characters. Front matter still wins. The same hook runs on every AgenTrust docs site.hooks/is inexclude_docs.overrides/main.htmloverrideshtmltitle: the home page uses its front-matter title alone, and other pages drop the- cA2Asuffix when the title already names cA2A.og:titleandtwitter:titlenow equal<title>, andog:site_nameis AgenTrust.https://agentrust-io.com/#organization, the id the hub and the other docs sites use; a WebSite; a WebPage on the home page or a TechArticle on inner pages, with the page's own title, description and canonical URL; a BreadcrumbList on inner pages; and on the home page a SoftwareSourceCode node with codeRepository, programmingLanguage and the MIT license.robots.txtat the repository root names the same ten crawlers as agentrust-io.com, disallows/cdn-cgi/, and points athttps://ca2a.agentrust-io.com/sitemap.xml. docs.yml copies it into the build and deploys when it orhooks/**changes.Checked, on a build that replicates docs.yml (allowlist copied into
.docs_build, CR stripped,docs_dirrewritten)mkdocs buildandmkdocs build --strictexit 0.cA2A: verify who delegated what, hop by hop.@id, no inline Organization objects, and one page node whose url equals the canonical, whose description equals the meta description, and whose headline equals the title. All 36 inner pages carry a BreadcrumbList.robots.txtis at the site root with the Sitemap line,hooks/seo.pyis not published, andllms.txthas the four sections.hooks/seo.pyimports cleanly underpython -W error.Generated with Claude Code
https://claude.ai/code/session_013aK3gVWzNdcM3hZ2o2awK2