Repository navigation
docs(seo): JSON-LD, Open Graph, git-dated sitemap lastmod, llms.txt, robots.txt - #532
Merged
Merged
Conversation
From the 2026-11-12 SEO audit of docs.arcadedb.com. - head-meta.hbs: Open Graph and Twitter tags and a JSON-LD @graph per page (WebSite, BreadcrumbList, TechArticle; WebPage on a component home). about/publisher/author point at the arcadedb.com #software and #organization nodes by @id. The graph is built in a jsonld helper and serialized with JSON.stringify; @id, url and og:url are the extensionless canonical URL. - head-title.hbs: the docs home is "ArcadeDB Documentation" instead of "ArcadeDB Documentation :: ArcadeDB Documentation". - sitemap-lastmod.py: each sitemap URL gets the last commit date of its source instead of the build timestamp; the deploy checkout now fetches full history. arcadedb-python URLs get no lastmod (their source is in another repository). - generate-llms-txt.py: /llms.txt from the nav, linking the HTML pages (Cloudflare blocks *.md paths for now). - robots.txt: drop the comment claiming Cloudflare prepends a content-signal block (it does not) and add the same Content-Signal line arcadedb.com serves. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
|
This pull request is merged. |
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.
Build and UI fixes from the 2026-11-12 SEO audit of docs.arcadedb.com. #531 has the content and title fixes; the two PRs don't depend on each other.
Changes
Structured data and social tags (audit item 4).
docs/ui/supplemental/partials/head-meta.hbsoverrides the default bundle's empty partial. It adds:og:title,og:description,og:url,og:image,og:type) and Twitter tags (twitter:card summary).@graphper page:https://docs.arcadedb.com/#website):isPartOfpoints at arcadedb.com#website,publisherat#organization.aboutpoints athttps://arcadedb.com/#software, andpublisherandauthorat#organization. The Organization and SoftwareApplication nodes are referenced by@idonly.The graph is built in
helpers/jsonld.jsand serialized withJSON.stringify, so quotes and entities in titles can't break the script block.@id,urlandog:urlall usepage.canonicalUrl, which is extensionless.site.urlwas already set in the playbook.Home title (item 2).
head-title.hbsdrops the:: ArcadeDB Documentationsuffix when the page title is the site title. The home page is now just "ArcadeDB Documentation".Sitemap lastmod (item 5). The new
scripts/sitemap-lastmod.pyruns as part ofnpm run build(vianpm run seo). It replaces Antora's build timestamp with the last commit date of each page's source (src/main/asciidoc/…, orscripts/templates/for the home and Get Started pages). The deploy checkout now usesfetch-depth: 0. On a shallow clone the script leaves the sitemap untouched rather than writing one shared date. The 21 arcadedb-python URLs get nolastmod, because their source is in another repo.llms.txt (item 6). The new
scripts/generate-llms-txt.pywrites/llms.txtfrom the generated nav: one H2 per nav group and 226 links, each with its meta description, plus the Python component pages. It links the HTML pages, because Cloudflare's WAF 403s*.md.robots.txt (item 7). Removes the comment claiming Cloudflare prepends a content-signal block; it doesn't, and the live file confirms this. Adds the same
Content-Signal: search=yes, ai-train=yes, ai-input=yesline that arcadedb.com serves.CLAUDE.md documents all of the above.
Verification
Ran
migrate.sh+npm run buildlocally, then checked the output:@id,urlandog:urlall equal<link rel="canonical">. No.htmland no"appear inside the script block.WebSite+WebPageandog:type website.lastmodvalues, all from git.llms.txthas 226 links.Not done here: Rich Results Test on the deployed pages, and the Cloudflare items (WAF
.mdrule, docs2 301, cache rules, HSTS).🤖 Generated with Claude Code