Repository navigation
SEO:建立 wuh.site 的搜索增长与技术 SEO 优化体系 #233
Copy link
Copy link
Closed
Labels
chore项目架构调整优化项目架构调整优化
Description
Activity
P0 implementation status
已在隔离分支
codex/seo-p0完成第一阶段 SEO 基础修复,提交:d9eb5a1。已完成
- 统一文章 canonical URL 与 sitemap URL,sitemap 现在输出
/post/{number}-{slug}。 - 增加错误 slug、数字 URL 到 canonical URL 的永久重定向。
- 文章页移除匿名 Cookie 读取,公共文章内容改为
revalidate: 3600。 - 首页移除
force-dynamic,保留各数据请求的 ISR revalidate。 - Sitemap 改为分页读取,每页 100 条,使用真实 GitHub 更新时间。
- Sitemap 异常时显式抛错,避免静默返回不完整 sitemap。
- 移除
/design/system-colorsitemap 条目,并设置noindex, nofollow。 - 增加全局 title template、description、author、creator、publisher。
- 调整已有页面 title,避免启用 title template 后出现重复的
· wuh.site。 - 新增 SEO P0 回归测试。
验证结果
- 前端测试:3 个测试文件、17 个测试用例全部通过(分文件串行执行)。
- Oxlint:通过。
- TypeScript:通过。
git diff --check:通过。- Next.js production build:当前环境的 Next build worker 在编译阶段发生 SIGSEGV,原工作区基线也可复现,暂未判断为本次代码错误;需要在 CI 或完整依赖环境再次验证。
分支已推送:
codex/seo-p0。- 统一文章 canonical URL 与 sitemap URL,sitemap 现在输出
- added a commit that references this issue
on Aug 22, 2026 SEO Phase 2 提案
shadow-docs/changes/20260823-P-seo-phase2/brief.md当前状态审计
对比 Issue #233 的 checklist,P0 索引与规范化已全部完成 ✅。剩余未完成项:
P0 缓存策略:
- 首页仍有
force-dynamic,需改为 ISR - 文章详情页已改为
revalidate: 3600✅
P0 低价值页面:
/design/system-color是客户端组件,无显式 noindex metadata/weread、/footprint、/guestbook缺少 robots 策略
P1 结构化数据:
- BlogPosting 缺少
wordCount - 缺少年份归档页(
/blog/[year])
本轮计划
- 首页移除
force-dynamic,依赖数据层 ISR - 四个低价值页面添加明确的 robots 策略
- 文章 JSON-LD 补充 wordCount
- 新增年份归档页形成内部链接网络
具体见 brief 文件。
- 首页仍有
- added 4 commits that reference this issue
on Sep 30, 2026
Metadata
Metadata
Assignees
Labels
chore项目架构调整优化项目架构调整优化
Projects
- StatusShow more project fieldsDone
背景
wuh.site已具备 Next.js SSR、页面 metadata、robots、sitemap、RSS 和文章 JSON-LD 等基础能力,但目前整体更接近“GitHub Issues 内容展示站”,尚未形成独立的搜索内容资产。对比
surmon.me,主要差距不在前端框架,而在:本 Issue 作为后续 SEO 优化总任务,后续可按 P0/P1/P2 拆分子 Issue 或 PR。
当前已发现的问题
P0:索引与规范化
/post/{number},但文章 canonical 和站内链接使用/post/{number}-{slug},存在 sitemap/canonical 不一致。/post/[number]当前通过raw.split('-')[0]解析文章编号,错误 slug 也可能返回同一篇文章,形成重复 URL。limit=9999一次性查询全部文章,改为分页或专用轻量接口。lastModified使用真实内容更新时间,不使用每次生成时的new Date()。robots.txt、sitemap.xml返回 200,并在 Google Search Console/Bing Webmaster Tools 提交。P0:缓存与抓取效率
revalidate: 0调整为 ISR;发布/修改时通过 webhook 或 revalidateTag 触发失效。force-dynamic重新评估,尽可能改为可缓存的 ISR 页面。P0:低价值页面
/design/system-color从 sitemap 移除,并设置noindex。/weread、/footprint等个人数据页面是否具备独立搜索价值。labels筛选组合设置noindex, follow,仅为有独立介绍和内容价值的主题页开放索引。P1:页面理解与站内结构
title.template、description、author、creator、publisher、默认 Open Graph 图片。BlogPosting:mainEntityOfPage、publisher、inLanguage、articleSection、keywords、wordCount等。Person、WebSite、ProfilePage和BreadcrumbList结构化数据。authors、keywords、category、publishedTime、modifiedTime。P2:内容与权威建设
验收指标
技术指标
Search Console 指标
相关代码位置
packages/wuh.site.next/app/sitemap.tspackages/wuh.site.next/app/robots.tspackages/wuh.site.next/app/layout.tsxpackages/wuh.site.next/app/page.tsxpackages/wuh.site.next/app/post/[number]/page.tsxpackages/wuh.site.next/app/lib/slug.tspackages/wuh.site.next/app/components/JsonLd.tsxpackages/wuh.site.nest/src/modules/content/content.controller.tspackages/wuh.site.nest/src/modules/content/content.service.tspackages/wuh.site.nest/src/modules/content/dto/content.dto.ts建议执行顺序