Skip to content

Adjust structured data output - #880

Draft
aatuvai wants to merge 1 commit into
mainfrom
aatuvai/2026-11-05-jsonld
Draft

aatuvai wants to merge 1 commit into
mainfrom
aatuvai/2026-11-05-jsonld

Conversation

@aatuvai

@aatuvai aatuvai commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

This PR adjusts the structured data output for the docs website by:

  1. removing the Corporation node
  2. Adding references to the WebSite and Organization nodes defined on the marketing website
  3. Adjusts the BreadcrumbList node by appending the list with a item labelled "Home", pointing to the marketing website. Additiolly, adds the node to landing pages which previously missed it.
  4. Adds a TechArticle node to every documentation page.

Context

This PR addresses the marketing team request with the title "Docs JSON-LD: add TechArticle, drop Corporation block, breadcrumbs from Home". Link to the ticket in Asana.

What to change

Change the docs structured data in four places: emit a TechArticle node per page, replace the Corporation block in docusaurus.config.ts with a reference to the site's Organization, give the WebSite node the site's @id instead of its own anonymous one, and prepend Home and Documentation to the BreadcrumbList.

Why it matters

Docs are the part of the site AI engines read most. Search Console shows 428 docs pages appearing 294,531 times inside Google AI answers between May 18 and Sep 14 2026, and 268,868 clicks on 559 docs pages in the 12 months to Aug 12, which is 35% of everything the site earns. Right now the markup on those pages says nothing about the page itself, no type, no headline, no date, and it describes the company and the site differently from the marketing pages, so an engine deciding whether to cite a docs page has to work out on its own that it belongs to Teleport. The /learn/ pages already do this correctly, 66 of them carry a full TechArticle, so the pattern exists on our own site.

Done when

Done when, on https://goteleport.com/docs/zero-trust-access/management/diagnostics/, grep -c '"@type":"TechArticle"' returns 1 or more, grep -c '"Corporation"' returns 0, grep -c '#organization' returns 1 or more, the WebSite node carries "@id":"https://goteleport.com/#website", the breadcrumb item at position 1 is Home, and the page passes validator.schema.org with no errors.

Changes

  • docusaurus.config.ts: Reverts adding the global JSON-LD Corporation node and replaces hard-coded WebSite node with a reference to the @id defined on the marketing site. A reference to the Organization node is added.
  • server/parse-frontmatter.ts: a new file which the existing parseFrontMatter function is moved to from docusaurus.config.ts. The function is expanded by inserting the last_update field to the frontmatter block of each page. The value for last_update is populated from the source file's git history.
  • src/theme/DocItem/Layout/index.tsx:
    • Adds @theme/DocBreadcrumbs as a hidden component to landing pages, which previously completely discarded the component. It is added in order to populate the BreadcrumbList structured data node on the landing pages as well.
    • Inserts a TechArticle node to the structured data output. The TechArticle node uses the added last_update frontmatter field to populate its dateModified property.
  • theme/DocBreadcrumbs/StructuredData: Adds the component by swizzling (--wrap), in order to append the top-level path (goteleport.com/) as the first item of the breadcrumb list. Additionally, ensures that the second item in the array is "Documentation" pointing to /docs.

Reverts adding the global JSON-LD Corporation node in docusaurus.config.ts and
replaces hard-coded WebSite node with a reference to the @id defined on the
marketing site. A reference to the Organization node is added.

Adds server/parse-frontmatter.ts, which the existing parseFrontMatter function
is moved to from docusaurus.config.ts along with code that inserts the last_update
field to the frontmatter block of each page. The value for last_update is populated
from the source file's git history.

In src/theme/DocItem/Layout/index.tsx, inserts a TechArticle node to the structured data
output. The TechArticle node uses the added last_update frontmatter field to populate
its dateModified property.

Adds the @theme/DocBreadcrumbs as a hidden component to landing pages, which previously
completely discarded the component. It is added in order to populate the BreadcrumbList
structured data node on these pages as well.

Swizzles (--wrap) the DocBreadcrumbs/StructuredData component to append the top-level
path (goteleport.com/) as the first item of the list. Additionally, ensures that the
second item in the array is "Documentation" pointing to /docs.
@aatuvai
aatuvai deployed to docs-amplify November 6, 2026 14:40 — with GitHub Actions Active
@github-actions

github-actions Bot commented Nov 6, 2026

Copy link
Copy Markdown

Amplify deployment status

Branch Commit Job ID Status Preview Updated (UTC)
aatuvai/2026-11-05-jsonld 647c559 2 ✅SUCCEED aatuvai-2026-11-05-jsonld 2026-11-06 14:39:06

This branch was successfully deployed

1 active deployment
docs-amplify — 647c559d Deployed Nov 6, 2026 by aatuvai via Amplify Preview #2331
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant