feat(seo): foundations — sitemap, robots, metadataBase, branded titles#109
Merged
Conversation
…go Mind - Add app/sitemap.ts and app/robots.ts (both emit as static files under output: 'export'), 43 routes with hreflang en/zh/x-default and per-content lastmod. - Add metadataBase via SITE_URL constant (NEXT_PUBLIC_SITE_URL with https://www.feitong.phd default). Fixes broken relative OG URLs. - Brand titles: "Algo Mind — Essays on AI, Product, Engineering" and "思算 — 关于 AI、产品与工程的随笔"; templates "%s | Algo Mind" / "%s | 思算". - Author: Feitong Yang with /about URL on both locales. - Add canonical and x-default hreflang on root + zh layouts; override zh homepage title with absolute so EN parent template doesn't apply. - Fix CNAME: replace ftvision.github.io with www.feitong.phd, and add apps/blog/public/CNAME so the file ends up in the deployed artifact (the workflow uploads apps/blog/out only; the root CNAME was inert). - Mark seven empty-description essays as draft: agent-skills-richness, evolution-cc-prompt, learning-frontend, a-few-mindset-towards-llm{,-zh}, make-ai-speak-zh, my-honest-opinion-mcp. Also set lang: zh on make-ai-speak-zh which had an empty lang field. - Add plan/docs/seo/ audit + remaining-work docs. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This was referenced May 14, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Foundations PR from the SEO audit at
plan/docs/seo/. Lands 6 of 7 P0 items; defers the<html lang>per-locale fix to a follow-up route-group restructure.app/sitemap.tsandapp/robots.ts(both emit as static files underoutput: 'export'). Sitemap has 43 URLs withen/zh/x-defaulthreflang and per-contentlastmod.metadataBase:SITE_URLconstant (defaults tohttps://www.feitong.phd, overridable viaNEXT_PUBLIC_SITE_URL). Fixes broken relative OG URLs that previously made social previews silently fail.Algo Mind/思算. Author isFeitong Yangwith/aboutURL on both locales.og:site_name,publisher, and canonical link set.x-defaultadded to all locale alternates. Canonical link added.app/zh/page.tsxoverrides title withabsoluteso the EN parent template (%s | Algo Mind) doesn't get appended to the Chinese landing page title.ftvision.github.io→www.feitong.phd. Also addedapps/blog/public/CNAMEso the file lands insideapps/blog/out/, which is what the deploy workflow uploads (the rootCNAMEwas inert before).description:markeddraft: true:agent-skills-richness,evolution-cc-prompt,learning-frontend,a-few-mindset-towards-llm{,-zh},make-ai-speak-zh,my-honest-opinion-mcp. Also fixedmake-ai-speak-zhwhich had an emptylang:field.plan/docs/seo/{README,p0-critical,p1-high-impact,p2-polish,order-of-operations}.md.Verified in built output
<title>Algo Mind — Essays on AI, Product, Engineering</title>on/<title>思算 — 关于 AI、产品与工程的随笔</title>on/zh/(no English tail)<title>文章 | 思算</title>on/zh/essays/(child template applied correctly)<link rel="canonical" href="https://www.feitong.phd/"><link rel="alternate" hrefLang="x-default" href="https://www.feitong.phd/"><meta property="og:site_name" content="Algo Mind">(en) /思算(zh)out/CNAMEcontainswww.feitong.phdout/robots.txtvalid, points at/sitemap.xmlout/sitemap.xmlhas 43 URLs; none of the 7 drafted slugs appearFollow-ups (not in this PR)
<html lang>per-locale — Chinese pages still ship with<html lang="en">server-side. Fixing requires moving routes intoapp/(en)/...andapp/(zh)/zh/...route groups with separate root layouts. Mechanical but touches every page file, so deserves its own PR.plan/docs/seo/p1-high-impact.md.plan/docs/seo/p2-polish.md.www.feitong.phdneeds a DNS CNAME pointing toftvision.github.ioat your registrar; out of scope here.a-few-mindset-towards-llm-zh.mdxhaslang: eneven though the content is Chinese. Left as-is in this PR (the user told me to draft it); flagging here for a future content fix.Test plan
https://www.feitong.phd/sitemap.xmlreturns valid XMLhttps://www.feitong.phd/robots.txtlists the sitemaphttps://search.google.com/test/rich-resultsand the Open Graph debugger🤖 Generated with Claude Code