Skip to content

Make /launch/usdt0 discoverable to search and AI crawlers - #2840

Open
mmazco wants to merge 1 commit into
stellar:mainfrom
mmazco:usdt0-discoverability
Open

Make /launch/usdt0 discoverable to search and AI crawlers#2840
mmazco wants to merge 1 commit into
stellar:mainfrom
mmazco:usdt0-discoverability

Conversation

@mmazco

@mmazco mmazco commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

/launch/usdt0 has been live since 1 Sep and is drawing real organic traffic — Google is already its second-largest source, and ChatGPT and Claude have both begun referring to it. Three things were limiting how findable it is. Two are mechanical; one is a bug.

The fourth issue, that nothing on the site links to the page, is handled separately in #2841 so it can land independently of the config change here.

1. The page is not in the sitemap

The generated sitemap has 960 URLs and none of them is this page. Files under static/ bypass the Docusaurus build entirely, so nothing adds them.

Fixed with the sitemap plugin's createSitemapItems hook, so the entry is generated alongside every other URL rather than maintained by hand in a second file.

⚠️ Needs CI to verify. I could not install dependencies locally, so this config change is unbuilt. It is deliberately minimal — one extra item, no changefreq or priority — but a maintainer should confirm the build passes and that /launch/usdt0 appears in sitemap.xml.

2. canonical and og:url have never shipped — a silent bug

The generator that produces static/launch/usdt0.html was written to inject both tags, anchored on:

<meta name="twitter:card" content="summary">

That string became content="summary_large_image" when the OG image was added, and str.replace fails silently when it matches nothing. Neither tag has been on the live page since.

This matters more than usual here: /launch/usdt0, /launch/usdt0.html and /docs/launch/usdt0 are all currently receiving traffic as separate URLs, with no canonical consolidating them.

3. No structured data

Added a TechArticle JSON-LD block — headline, description, canonical URL, publish date, publisher, subject. This gives search and AI systems something explicit to cite rather than inferring what the page is.

Already fine, not changed

  • robots.txt allows all crawlers and sets Content-Signal: ai-train=yes, search=yes, ai-input=yes
  • Page content is fully hard-coded in markup — nothing requires JavaScript to read
  • Clean heading hierarchy: one h1, five h2s

Content updates to the page are in progress separately.

🤖 Generated with Claude Code

Copilot AI balanced review requested due to automatic review settings September 8, 2026 23:16

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Improves search and AI discoverability for the static USDT0 launch page.

Changes:

  • Adds canonical, Open Graph, and TechArticle metadata.
  • Includes the page in the generated sitemap.
  • Adds an inbound documentation link.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
static/launch/usdt0.html Adds discovery and structured metadata.
docusaurus.config.ts Adds the USDT0 page to the sitemap.
docs/tokens/usdt0-layerzero.mdx Adds an inbound link; it should use the relative path ../../launch/usdt0.

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

Comment thread docs/tokens/usdt0-layerzero.mdx Outdated

On Stellar, USDT0 is a **classic asset with a SAC**. Classic flows use a trustline plus a payment. Soroban contracts call the SAC. See the [tokenization model comparison](./anatomy-of-an-asset.mdx#tokenization-model-comparison) for what that implies.

For an overview of what USDT0 unlocks on Stellar, the partners supporting it today, and a deployment checklist, see the [USDT0 on Stellar launch guide](/launch/usdt0).
The page has been live since 01 Sep and draws real organic traffic
(Google is already its second largest source), but three things were
working against it.

Sitemap: files under static/ bypass the Docusaurus build, so the page
never appeared in the generated sitemap - 960 URLs, none of them this
one. Added via the sitemap plugin's createSitemapItems hook rather than
hand-maintaining a second sitemap.

Canonical and og:url: these were meant to be injected when the page is
generated, but the anchor string still said twitter:card content
"summary" after that was changed to "summary_large_image". str.replace
fails silently on no match, so neither tag has ever shipped. Both matter
here because /launch/usdt0, /launch/usdt0.html and /docs/launch/usdt0
are all receiving traffic as separate URLs.

Structured data: added a TechArticle JSON-LD block so search and AI
systems have something unambiguous to cite instead of inferring what the
page is.

The missing internal link to this page is handled separately in the PR
that adds it to the USDT0 docs page.

Not changed: robots.txt already allows all crawlers and sets
Content-Signal ai-train=yes, search=yes, ai-input=yes, and the page's
content is fully hard-coded in markup, so nothing needs JavaScript to
read it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings September 8, 2026 23:21
@mmazco
mmazco force-pushed the usdt0-discoverability branch from e6aa687 to 361c35b Compare September 8, 2026 23:21

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

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

Suppressed comments (1)

static/launch/usdt0.html:7

  • The newly added about.name capitalizes “Network,” contrary to the repository terminology convention requiring “Stellar network” (CONTRIBUTING.md:86).
<script type="application/ld+json">{"@context":"https://schema.org","@type":"TechArticle","headline":"USDT0 on Stellar","description":"A guide to USDT0 on Stellar: how it arrives, what it unlocks, which partners support it, and how to integrate.","url":"https://developers.stellar.org/launch/usdt0","datePublished":"2026-09-01","inLanguage":"en","about":{"@type":"Thing","name":"USDT0 on Stellar Network"},"publisher":{"@type":"Organization","name":"Stellar Development Foundation","url":"https://stellar.org"}}</script>

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.

2 participants