diff --git a/docs/baidu-indexing-deployment.md b/docs/baidu-indexing-deployment.md new file mode 100644 index 0000000..0d06ef1 --- /dev/null +++ b/docs/baidu-indexing-deployment.md @@ -0,0 +1,71 @@ +# 百度收录部署交接说明 + +本文档说明 `www.scs8888.cn` 的线上部署要求。当前前端仓库不包含生产 Nginx 配置和后端应用,因此部署负责人需要根据实际目录结构实现这些规则,不能直接照抄未经验证的配置片段。 + +## 公开 URL 合同 + +- 首页唯一地址:`https://www.scs8888.cn/` +- 免费文章唯一地址:`https://www.scs8888.cn/mianfei/{id}.html` +- `https://www.scs8888.cn/sitemap.xml` 是百度提交入口。 +- `/html/mianfei.html?id={id}` 仅作为前端源文件入口或本地兼容地址,不应提交给搜索引擎。 + +## 伪静态与状态码 + +服务器应将 `/mianfei/{id}.html` 映射到免费文章详情前端入口,并把 `{id}` 传给现有页面逻辑。映射后必须检查 CSS、JavaScript 和图片的相对路径仍能正常加载。 + +文章不存在、已删除或不可公开时必须返回真实 HTTP `404`,不能返回状态码 200 的“文章不存在”页面。否则百度可能把大量无效地址识别为软 404。 + +以下地址应使用永久 `301` 跳转到唯一首页: + +- `http://scs8888.cn/` +- `http://www.scs8888.cn/` +- `https://scs8888.cn/` +- 对外可访问的 `/html/index.html` 或 `/index.html` + +## 动态 sitemap + +当前仓库中的静态 sitemap 只包含首页。部署侧需要根据“公开且未删除”的免费文章数据生成动态 sitemap,至少输出: + +```xml + + https://www.scs8888.cn/mianfei/123.html + 2026-07-20 + +``` + +sitemap 的数据所有者应是后端免费文章数据源。文章发布、修改、删除或公开状态变化后都要更新 sitemap;不可加入付费文章、草稿、用户中心、登录、发布或财务地址。 + +## 正文预渲染边界 + +前端已经在 JavaScript 获取文章后更新 title、description、canonical 和 h1,但首次 HTTP 响应中的具体文章正文仍需要部署或后端预渲染才能提供。若要求不执行 JavaScript 的蜘蛛直接读取正文,应由部署流程定时生成文章 HTML,或由后端按文章 ID 输出完整 HTML。 + +预渲染输出必须使用与用户页面相同的公开内容,不得只针对 Baiduspider 返回不同正文。 + +## 上线检查 + +分别使用普通浏览器 UA 和 `Baiduspider` UA 检查以下地址: + +```text +https://www.scs8888.cn/ +https://www.scs8888.cn/robots.txt +https://www.scs8888.cn/sitemap.xml +https://www.scs8888.cn/mianfei/{真实文章ID}.html +https://www.scs8888.cn/mianfei/{不存在ID}.html +``` + +确认: + +- 首页、robots、sitemap 和真实文章均返回 200。 +- 不存在文章返回 404。 +- 普通 UA 与 Baiduspider 获得相同状态码和主体内容。 +- 没有防火墙、CDN 或安全策略拦截百度蜘蛛。 +- robots 和 sitemap 中不再出现 `3d.3dyjs.cn`。 +- HTTP、裸域名和旧首页地址只发生一次 301,不形成跳转链或循环。 + +## 百度提交 + +1. 在百度搜索资源平台添加并验证 `https://www.scs8888.cn`。 +2. 在普通收录中提交 `https://www.scs8888.cn/sitemap.xml`。 +3. 使用抓取诊断分别测试首页和一篇真实免费文章。 +4. 先提交少量真实文章 URL,观察抓取异常和索引量,再接入新增文章的主动推送。 +5. 提交成功只代表百度发现 URL,不保证收录;仍需关注页面内容质量和服务器抓取稳定性。