Skip to content

feat(seo): describe the site with schema.org JSON-LD - #12598

Open
jd wants to merge 1 commit into
devs/jd/agentic-readiness/tell-agents-what-mergify-llms-txt--03f7b473from
devs/jd/agentic-readiness/describe-site-schema-org-json-ld--dd84bc05
Open

feat(seo): describe the site with schema.org JSON-LD#12598
jd wants to merge 1 commit into
devs/jd/agentic-readiness/tell-agents-what-mergify-llms-txt--03f7b473from
devs/jd/agentic-readiness/describe-site-schema-org-json-ld--dd84bc05

Conversation

@jd

@jd jd commented Aug 28, 2026

Copy link
Copy Markdown
Member

The docs carried no structured data, so who publishes them, how to contact
Mergify and what product they document were all inferable only from prose.
Search engines and assistants both use JSON-LD for that entity resolution.

Emit one @graph per page: an Organization node with the registered address,
support and sales contact points and the canonical social profiles; a
SoftwareApplication node for the product; and either a WebSite node on the
homepage or a TechArticle node for the page itself. The Organization is
declared once and referenced by @id from the others rather than repeated.

Every value is taken from something already published — the footer's social
links, the addresses used across the docs, the pricing page.

< is escaped to its \u003c form in the serialized graph. Page titles and
descriptions come from frontmatter in this repository, so nothing hostile is
expected there, but JSON.stringify leaves </script> intact and inlining it
would end the tag early.

Depends-On: #12597

@jd

jd commented Aug 28, 2026

Copy link
Copy Markdown
Member Author

This pull request is part of a Mergify stack:

# Pull Request Link
1 fix(seo): restore the homepage OpenGraph image #12593
2 fix(a11y): stop docset grids skipping a heading level #12594
3 feat(docs): publish the API description where machines look for it #12595
4 feat(docs): serve Markdown to clients that ask for it #12596
5 feat(docs): tell agents what Mergify is for in llms.txt #12597
6 feat(seo): describe the site with schema.org JSON-LD #12598 👈
7 feat(docs): point a lost agent somewhere useful from the 404 #12599

@mergify

mergify Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Merge Protections

🔴 4 of 7 protections blocking · waiting on 👀 reviews, 🤖 CI, ⛓️ dependency and 🙋 you

Protection Waiting on
🔴 ⛓️ Depends-On Requirements ⛓️ dependency
🔴 👀 Review Requirements 👀 reviews
🔴 🔎 Reviews 👀 reviews
🟠 🤖 Continuous Integration 🤖 CI and 🙋 you
🟢 Enforce conventional commit
🟢 📕 PR description
🟢 🚦 Auto-queue

🔴 ⛓️ Depends-On Requirements

Waiting for

This rule is failing.

Requirement based on the presence of Depends-On in the body of the pull request

🔴 👀 Review Requirements

Waiting for

  • #approved-reviews-by >= 2
This rule is failing.
  • any of:
    • #approved-reviews-by >= 2
    • author = dependabot[bot]
    • author = renovate[bot]
    • all of:
      • author = mergify-ci-bot
      • -head ~= ^docs-agent/

🔴 🔎 Reviews

Waiting for

  • #review-requested = 0
This rule is failing.
  • #review-requested = 0
  • #changes-requested-reviews-by = 0
  • #review-threads-unresolved = 0

🟠 🤖 Continuous Integration

Waiting for any of

  • -head-repo-full-name~=^Mergifyio/
  • check-success=Cloudflare Pages
Waiting checks: Cloudflare Pages.
  • all of:
    • any of:
      • -head-repo-full-name~=^Mergifyio/
      • check-success=Cloudflare Pages
    • check-success = build
    • check-success = lint
    • check-success = test
    • any of:
      • check-success = test-broken-links
      • label = ignore-broken-links

Show 3 satisfied protections

🟢 Enforce conventional commit

Make sure that we follow https://www.conventionalcommits.org/en/v1.0.0/

  • title ~= ^(fix|feat|internal|docs|style|refactor|perf|test|build|ci|chore|revert|ui)(?:\(.+\))?!?:

🟢 📕 PR description

  • body ~= (?ms:.{48,})

🟢 🚦 Auto-queue

When all merge protections are satisfied, this pull request will be queued automatically.

@mergify
mergify Bot requested a review from a team August 28, 2026 13:30
Copilot AI lite review requested due to automatic review settings August 28, 2026 13:33
@jd
jd force-pushed the devs/jd/agentic-readiness/describe-site-schema-org-json-ld--dd84bc05 branch from 42194cf to 53252e6 Compare August 28, 2026 13:33
@jd

jd commented Aug 28, 2026

Copy link
Copy Markdown
Member Author

Revision history

# Type Changes Reason Date
1 initial 42194cf 2026-08-28 13:33 UTC
2 rebase 42194cf → 53252e6 (rebase only) 2026-08-28 13:33 UTC
3 content 53252e6 → 685d63f Escape < in the JSON-LD per review on #12598 2026-08-28 14:37 UTC
4 rebase 685d63f → c8f64c2 (rebase only) 2026-08-28 15:09 UTC

@mergify
mergify Bot had a problem deploying to Mergify Merge Protections August 28, 2026 13:34 Failure

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds schema.org JSON-LD structured data to the docs site so search engines/assistants can reliably resolve the publisher (Mergify), contact points, product entity, and the current page entity.

Changes:

  • Injects a new StructuredData component into the global <head> via BaseLayout.astro.
  • Introduces src/components/StructuredData.astro to emit an @graph containing Organization, SoftwareApplication, and either WebSite (home) or TechArticle (other pages).

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
src/layouts/BaseLayout.astro Adds the StructuredData component to the document head so JSON-LD is emitted on pages using this layout.
src/components/StructuredData.astro Defines and inlines the schema.org JSON-LD graph for Organization/Product/Page entities.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/components/StructuredData.astro
Comment thread src/components/StructuredData.astro Outdated
@jd
jd marked this pull request as ready for review August 28, 2026 14:09
@jd
jd force-pushed the devs/jd/agentic-readiness/describe-site-schema-org-json-ld--dd84bc05 branch from 53252e6 to 685d63f Compare August 28, 2026 14:37
@mergify
mergify Bot had a problem deploying to Mergify Merge Protections August 28, 2026 14:38 Failure
The docs carried no structured data, so who publishes them, how to contact
Mergify and what product they document were all inferable only from prose.
Search engines and assistants both use JSON-LD for that entity resolution.

Emit one `@graph` per page: an Organization node with the registered address,
support and sales contact points and the canonical social profiles; a
SoftwareApplication node for the product; and either a WebSite node on the
homepage or a TechArticle node for the page itself. The Organization is
declared once and referenced by `@id` from the others rather than repeated.

Every value is taken from something already published — the footer's social
links, the addresses used across the docs, the pricing page.

`<` is escaped to its `\u003c` form in the serialized graph. Page titles and
descriptions come from frontmatter in this repository, so nothing hostile is
expected there, but `JSON.stringify` leaves `</script>` intact and inlining it
would end the tag early.

Change-Id: Idd84bc050695e27d6d8a361538e2ef89da8dd32e
@jd
jd force-pushed the devs/jd/agentic-readiness/describe-site-schema-org-json-ld--dd84bc05 branch from 685d63f to c8f64c2 Compare August 28, 2026 15:09
@mergify
mergify Bot had a problem deploying to Mergify Merge Protections August 28, 2026 15:09 Failure
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants