diff --git a/docs/superpowers/specs/2026-07-20-baidu-indexing-frontend-design.md b/docs/superpowers/specs/2026-07-20-baidu-indexing-frontend-design.md new file mode 100644 index 0000000..08dd018 --- /dev/null +++ b/docs/superpowers/specs/2026-07-20-baidu-indexing-frontend-design.md @@ -0,0 +1,63 @@ +# 百度收录前端修复设计 + +## 目标 + +在不修改后端业务和现有 JavaScript 数据渲染逻辑的前提下,让百度能够正确发现 `https://www.scs8888.cn/` 首页和公开免费文章页面,并消除当前旧域名、错误 URL 与基础 SEO 信息缺失的问题。 + +## 范围 + +本轮只修改当前前端仓库: + +- `robots.txt` 使用新域名的 sitemap,并按线上公开 URL 规则屏蔽登录、用户、发布和财务页面。 +- `sitemap.xml` 只保留当前确定存在且需要收录的首页 URL,不再提交旧域名或不存在的页面。 +- 首页补充静态 `description`、`canonical`、有效 `h1` 和无需 JavaScript 即可读取的站点说明。 +- 免费文章详情模板提供稳定的默认元信息,并在文章 API 返回后同步更新唯一的 title、description、canonical 和 h1。 +- 免费文章的公开唯一 URL 采用 `/mianfei/{id}.html`;现有 `CommonUtil.freeArticleHref` 继续作为该 URL 规则的前端唯一所有者。 +- 增加一份后端部署说明,明确 Nginx 伪静态、动态 sitemap 和预渲染属于部署侧后续工作。 + +本轮不包含: + +- 后端应用代码、数据库或 API 修改。 +- Nginx 线上配置修改。 +- 免费文章正文的服务端渲染或静态文件生成。 +- 付费文章、专家详情、登录及用户中心页面的收录。 + +## URL 与索引规则 + +- 首页唯一地址:`https://www.scs8888.cn/` +- 免费文章唯一地址:`https://www.scs8888.cn/mianfei/{id}.html` +- 查询参数形式 `/html/mianfei.html?id={id}` 仅用于本地开发或内部兼容,不写入 sitemap,也不作为 canonical。 +- 当前静态 sitemap 只提交首页。免费文章无法从纯前端仓库完整枚举,因此部署侧必须通过后端数据生成动态 sitemap 后,才能提交全部文章 URL。 + +## 页面数据流 + +首页首次 HTML 响应直接包含站点主题、描述和 h1。JavaScript 加载后继续请求公告、开奖和文章 API,并填充现有容器,现有交互不变。 + +免费文章页首次 HTML 响应包含通用且可读的默认元信息。取得文章详情后,前端以文章标题和纯文本摘要更新 `document.title`、description、canonical 和页面 h1。该方式改善已执行 JavaScript 的抓取结果,但不声称替代服务端预渲染。 + +## 错误处理 + +- 无文章 ID 时不生成伪造 canonical,沿用页面错误提示流程。 +- API 请求失败时保留默认标题和描述,不把 `undefined`、HTML 标签或空字符串写入元信息。 +- 摘要从正文提取时去除 HTML 标签并限制长度,避免搜索摘要过长。 + +## 验证 + +增加一个无第三方依赖的 Node 检查脚本,验证: + +- robots 和 sitemap 不再包含 `3d.3dyjs.cn`。 +- sitemap 只包含 `www.scs8888.cn` 下允许收录的 URL。 +- 首页存在 description、canonical、有效 h1 和静态说明。 +- 免费文章模板包含默认 description、canonical 更新逻辑及 `/mianfei/{id}.html` 规则。 +- 登录、用户、发布和财务页面不会出现在 sitemap。 + +同时运行现有相关回归脚本,确保首页导航和免费文章链接规则没有被破坏。 + +## 后端部署边界 + +部署方后续需要负责: + +1. 将 `/mianfei/{id}.html` 重写到免费文章详情入口,且对不存在文章返回真实 404。 +2. 将 HTTP、裸域名及其他首页形式 301 到 `https://www.scs8888.cn/`。 +3. 根据公开免费文章数据生成包含全部文章 URL 的 sitemap,并在文章新增、修改或删除后更新。 +4. 如需让不执行 JavaScript 的蜘蛛直接读取正文,在部署流程或后端增加文章预渲染;这不属于本轮前端修改。