Skip to content

fix: point docs site_url at the brand domain for correct canonicals - #175

Merged
capotej merged 1 commit into
boldblackai:mainfrom
BoldBlackBot:fix/docs-canonical-brand-domain
Sep 2, 2026
Merged

fix: point docs site_url at the brand domain for correct canonicals#175
capotej merged 1 commit into
boldblackai:mainfrom
BoldBlackBot:fix/docs-canonical-brand-domain

Conversation

@BoldBlackBot

Copy link
Copy Markdown
Contributor

Summary

  • zensical.toml: site_url https://boldblackai.github.io/harness/https://harness.boldblack.ai/docs/.
  • README.md: docs link → https://harness.boldblack.ai/docs/.

Why

Google Search Console flags every harness.boldblack.ai/docs/* page ("Duplicate, Google chose different canonical"). All 12 mirrored docs pages declare a cross-domain canonical to boldblackai.github.io/harness/, and /docs/sitemap.xml (submitted via robots.txt) lists cross-origin URLs. site_url is the single knob that drives both canonicals and sitemap locs; pointing it at the serving domain makes them self-referencing. Same fix already shipped for dispatch (create-dispatch #43).

Relative links stay relative (zensical design; relocatability), so the GitHub Pages deploy and the Amplify mirror keep working. Verified locally: zensical build --clean with the new site_url emits all 12 locs + canonicals on the brand domain, no other diffs.

Deployment order

Merge + Amplify-deploy boldblackai/harness-site#20 (fetch-docs sitemap-loc rewrite) first. After this PR merges and Pages redeploys, upstream sitemap locs carry the brand domain; the mirror rewrites them back to the Pages origin it fetches from.

Test plan

  • Local zensical build --clean: sitemap = 12 brand-domain locs; site/index.html canonical = https://harness.boldblack.ai/docs/.
  • Rewritten fetch-docs.py mirrors the flipped tree end-to-end (18 files, 0 failures against a brand-domain-loc sitemap).
  • CI docs build-only check passes.
  • After deploy: curl -s https://harness.boldblack.ai/docs/ | grep canonical → brand domain.

The docs are mirrored onto harness.boldblack.ai/docs/ by the harness-site
Amplify build, but zensical.toml site_url still named the GitHub Pages
origin, so every mirrored page carried a cross-domain canonical to
boldblackai.github.io and the sitemap listed cross-origin URLs. Google
Search Console flags every /docs/* page as a duplicate for this reason.

Set site_url to https://harness.boldblack.ai/docs/ so canonicals and
sitemap locs are self-referencing on the serving domain; link the README
docs pointer at the brand domain too. Relative links are unchanged
(zensical emits them relative by design), so the tree stays relocatable
and the Pages deploy keeps working.

Requires the harness-site fetch-docs sitemap-loc rewrite (PR boldblackai#20) to be
merged and deployed first: after this change the upstream sitemap lists
brand-domain URLs, which the mirror must rewrite back to the Pages
origin it fetches from.

Co-Authored-By: Enrique Canals <84596+EnriqueCanals@users.noreply.github.com>
@BoldBlackBot
BoldBlackBot force-pushed the fix/docs-canonical-brand-domain branch from 5c025b0 to 40f8f42 Compare September 2, 2026 02:38
@capotej
capotej merged commit 92268d8 into boldblackai:main Sep 2, 2026
7 checks passed
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