docs: define baidu indexing frontend scope

This commit is contained in:
rain
2026-07-20 10:50:20 +08:00
parent 8f0e38ad51
commit 6963ff3b7d
@@ -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 的蜘蛛直接读取正文,在部署流程或后端增加文章预渲染;这不属于本轮前端修改。