Discoverability strategy

Discoverability stack for research.chrisjunlee.com

Hetzner-hosted static artifact shelf · synthesized from parallel Claude Opus 4.7 and Codex GPT-5.5 research · Generated 2026-05-28

Report-only · no installs or DNS changes
Recommendation. Keep research.chrisjunlee.com as the canonical home on Hetzner. Treat Medium, dev.to, Hashnode, Substack as amplifiers, not hosts — and only when they let you set canonical_url back to your domain. Ship the boring static SEO stack on day one (sitemap, RSS, JSON-LD Article, OpenGraph, canonical, GSC + Bing + IndexNow), then run the Willison-canon flywheel: own-domain → full-content RSS → email mirror → selective HN/lobste.rs submissions. Long-tail organic search dominates over time.

Minimum SEO stack — both reports converge

Bake every item into the per-artifact HTML template before publishing the first piece. Retrofitting later loses search-cycle value.

ItemWhy it mattersLeverageStatus
sitemap.xml + robots.txt
Sitemap: directive in robots.txt
Submit in GSC + Bing Webmaster
Canonical discovery surface for Google and Bing. robots.txt Sitemap directive is the cheapest cross-engine signal.FoundationalNot built
Self-referencing on every page
Pre-emptive even without cross-posts
Fences off scrapers and makes future cross-post canonicalization correct by default. Google treats canonical as dedup hint, not command — set it consistently.FoundationalNot built
OpenGraph + Twitter card
summary_large_image
Per-artifact OG image auto-gen
Single biggest determinant of click-through on HN, X, LinkedIn, Bluesky. Per-artifact image is the largest delta.HighNot built
JSON-LD Article + Person
Rendered in initial HTML, not via JS
sameAs[] on Person
Person.sameAs (GitHub, Scholar, ORCID, LinkedIn, HN, Bluesky) is the largest signal for Google entity consolidation around your name.HighNot built
Full-content RSS/Atom
Not summary feeds
Required for HN/lobste.rs auto-mirroring, Feedbin/NetNewsWire, and Substack/Buttondown ingestion. Willison notes email subscribers vastly outnumber RSS readers — but RSS is the input pipe.FoundationalNot built
Google Search Console + Bing Webmaster
Verify; submit sitemap
Verification + sitemap submission accelerates indexing. Without it, indexing latency can run weeks.FoundationalPending
IndexNow ping on publish
Bing / Yandex / ChatGPT search
Google ignores it, but everyone else uses it. Trivial to add; one HTTP POST on publish.Easy winNot built

Publishing platforms — canonical friendliness

Use as amplifiers, not hosts. Cross-post only when canonical_url back to your domain is supported and respected.

PlatformCanonical handlingOut-of-box SEONetwork effectVerdict
Medium
medium.com
Yes — Import tool auto-sets canonical to source URL. Manual canonical also supported.Limited metadata control; no plugin or sitemap edits. Strong topic recommendation engine.Large but deprioritizes outbound clicks.Mirror only
dev.to
dev.to
Yes — explicit canonical_url field in front matter / RSS import. Respected.Auto sitemap, OG, structured data. Tag-based feed; "Top of week" newsletters.Biggest dev community after HN.Mirror selectively
Hashnode
hashnode.com
Feb 2026 SEO/perf changelog
Yes — and publishes under your own domain at no cost (doubles as host).Auto sitemap, RSS, JSON-LD, AMP, headless API. Recently improved.Smaller but high developer-intent traffic.Mirror selectively
Substack
substack.com
$50 custom domain
Awkward — content hosted there, external canonical not load-bearing.Decent OG/cards; weak schema control. Recommendations + Notes drive discovery.Strong email + Notes graph.Email mirror
Ghost (self-hosted)
ghost.org
N/A — could replace your static stack entirely.Best of any platform here: auto canonical, JSON-LD, sitemap, robots, semantic markup, RSS, AMP, native newsletter.None inherent — you supply it.Overkill
Mirror.xyz
mirror.xyz
Limited; weak external canonical control.Minimal mainstream SEO. Crypto/web3 audience.Low for non-crypto.Skip

What HN-canon technical writers actually do

The same stack across Willison, Evans, Luu, Gwern, Sanglard — own-domain canonical, RSS, email, occasional HN hit.

Email-led

Simon Willison

simonwillison.net
Long-lived personal domain, Atom feeds, link-blog format. Runs Substack as free email distributor by copy-pasting blog posts. Notes email subscribers vastly outnumber RSS readers.
Zine flywheel

Julia Evans

jvns.ca
Simple categorized archive, popular-posts page, weekly digest, memorable explainer/zine backlinks. Niche depth around systems debugging.
Pure static

Dan Luu

danluu.com
Almost pure static-site authority. Deep evergreen essays, stable URLs, dense citations from technical discussions over the years.
Maximalist

Gwern

gwern.net
Backlinks, annotations, bibliographies, traffic notes, RSS-oriented publishing. Ranks for very specific niche queries because no better resource exists.
Niche depth

Fabien Sanglard

fabiensanglard.net
Simple archive + RSS. Niche-query dominance around game engines, graphics, Doom rendering. Long-tail organic search compounds over time.
Replicate this

Common pattern

what the stack actually is
Own-domain static + full-content RSS + email (Substack/Buttondown copy-paste) + selective HN/lobste.rs/Reddit submissions. Cross-post only with canonical. HN is biggest single-event traffic source; lobste.rs is smaller but higher-signal.

Employer + researcher discoverability

TacticWhat to doPayoff
Rank for your own name + nicheHiring managers Google "" + topic. Use your name in title tags; Person JSON-LD on home page. Site should be result #1-3 for both name and niche.Direct conversion of inbound interest
Identity graph via sameAsPerson JSON-LD sameAs[] = GitHub, LinkedIn, Scholar, ORCID, X/Bluesky, HN profile. Single biggest signal for entity consolidation in Google knowledge graph.Google builds knowledge-panel-like identity
GitHub README backlinksAdd research.chrisjunlee.com to profile README, pinned-repo READMEs, repo descriptions. Mirror the academic GitHub-to-paper pattern.Cross-platform authority transfer
Google Scholar + ORCID + arXivPublic Scholar profile with site as homepage. ORCID profile with site URL. arXiv "Comments" field if you publish there.Researcher-side discoverability
Niche-query title patternTitle artifacts after exact searched problems: "Benchmarking X on Hetzner ARM VPS" — not "Notes on X".High-leverage long-tail SEO
Permanent slug, no date prefixEach artifact gets a sluggable URL with no date prefix so it ages well and accumulates inbound links (Gwern/Sanglard model).Compounding link equity
About page named nichesAbout lists niches in plain prose ("research notes on X, Y, Z") so long-tail queries match. Include name, role, location/timezone, GitHub, LinkedIn, Scholar, resume.Hiring-manager trust signal

Prioritized punchlist

In leverage order. The first three are the floor — everything else compounds on top.

#ActionDetailEffort
1Build artifact HTML templatesitemap.xml, robots.txt, full-content RSS, self-canonical, OG + Twitter card, JSON-LD Article — all baked into a single per-artifact template before publishing anything.1-2 hr
2Build /about with Person JSON-LDsameAs[] = GitHub, Scholar, ORCID, LinkedIn, HN, Bluesky. Plain-prose niche list. Email + resume + selected projects.30 min
3Verify GSC + Bing; submit sitemapWire IndexNow ping into the publish step. Google ignores IndexNow but Bing/Yandex/ChatGPT search use it.30 min
4Auto-generate per-artifact OG imageSmall script (e.g. satori/og-image, or imagemagick). Largest social CTR lever; commonly skipped.1 hr
5GitHub identity backlinksProfile README + pinned-repo READMEs link research.chrisjunlee.com. Add URL to Scholar/ORCID profiles.15 min
6Email mirror via Substack or ButtondownWillison copy-paste pattern. Single-field subscribe form on site. Distribution > authoring.30 min
7Title artifacts for niche queriesPattern: " on " not "Notes on ". Editorial discipline, not infra.Ongoing
8Selective cross-post + community submitTop ~25% of artifacts → dev.to + Hashnode with canonical_url back to home; never without it. Reserve HN/lobste.rs submissions for the same tier. Engage in comments within first hour.Per artifact

Notes and caveats

Where the two source reports disagreed

Ghost as platform: Codex framed it as a CMS alternative; Claude flagged it as the best out-of-box SEO of any platform and a potential static-stack replacement if native newsletter becomes a goal. Verdict: stay static given the "upload HTML artifacts" framing — Ghost is overkill.

Canonical guarantees: Codex more skeptical — cites Google's "canonicalization is dedup, not a command" rule (Search Engine Land 2026). Claude treats canonical as load-bearing. Verdict: ship canonical anyway, but expect imperfect duplicate shielding. Prefer excerpt-with-link to full mirror when possible.

Source attribution

Synthesized from two parallel research passes, both 2026-05-28:

  • Claude Opus 4.7 (general-purpose subagent, 9 web searches) — Hashnode/dev.to comparison, Willison email-mirror pattern, per-artifact OG image leverage, IndexNow non-Google reach, GitHub-to-paper academic linking pattern.
  • Codex GPT-5.5 (sibling tmux pane %326) — Hashnode Feb 2026 SEO changelog, Mirror.xyz Arweave framing, Medium import canonical mechanism, lobste.rs self-promotion 25% cap, niche-query title pattern ("Benchmarking X on Hetzner ARM VPS").

High-confidence items appear in both reports. Single-source items are flagged in the bullets above.