fn_b/docs/maintenance/SEO_IMPLEMENTATION_2026-10-31.md

56 lines
10 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# FNA_V3 SEO 实施与发布 · 2026-10-31
用户授权:落实已讨论方案,并全权优化 FNA_V3 SEO。范围为正式 cfn 的增量;开发初始基线 `77f9b09c58b46ef2bbe0882ec89194bf25aa82cd`;上线前发现HN广告并行发布,最终基线改为 `a820755e7e914180178e6928f73d5b42b0b24c86`,4个并行文件均不在本批覆盖范围,经白色机到 VPS-003 `/www/wwwroot/clashfreenode-new.com`。本地隔离工作副本 `output/seo-20261031/stage`。本文件是实现和本批验收唯一正文,36项总状态仍在 [SEO_PLAN](SEO_PLAN.md)。
搜索渠道按用户此前与雷欧确认的 Yandex / Bing 优先,保留通用搜索兼容;两者均支持本批采用的规范URL、sitemap与IndexNow。依据:[Bing指南](https://www.bing.com/webmasters/help/webmaster-guidelines-30fba23a)、[Yandex IndexNow](https://www.yandex.com/support/webmaster/en/indexing-options/index-now.html)、[IndexNow协议](https://www.indexnow.org/documentation)(2026-10-31核对)。
> 用户于本批上线后明确纠正:只做内部SEO,界面必须与优化前一致。可见布局、说明、分页、标题和图片呈现已恢复到优化前,修复已上线;现行约束及验证以[界面保留修复](SEO_UI_RESTORE_2026-10-31.md)为准,下面保留首批发布历史。
## 首批实现记录
- 首页 `/` 使用稳定标题/H1、WebSite、独立 canonical,显示最近可用记录全文及真实记录时间;明确零结果或失败不顶替上次记录,无可展示记录返回503/Retry-After。`/freenode` 是带历史说明的分页归档。旧的 `/?page=N` 定向到对应归档页;首页不是分页第一页。
- 新免费节点记录创建即 `sSeoPolicy=archive`,可浏览、noindex、退出sitemap;已有资源仍保留分类7天策略,教程不继承资源期限。没有批量删除、合并、301到首页或恢复历史收录。取消 ClearDb 的180天正文删除,30天点赞明细清理保留。
- `Seo` + `Articles::publicVisible` 统一公开、索引、URL、元信息。草稿、未来文章、隐藏分类或父分类在详情、列表、标签、搜索、推荐、sitemap中一致排除。已知平级子栏目一跳到真实父路径,错误父路径404,旧文章路径不变。Android/iOS纠正显示名称,保留原andorid路径。
- 合法分页每页20条、自引用canonical带页码,移除跟踪参数;page=1归一,0/负数/非数字/数组/重复/越界404。HTML上一页下一页,JS读取实际下一页链接,追加去重、更新末页导航。robots放行查询参数,保留非内容路径限制。
- 搜索使用当前站点数据库公开查询,转义LIKE通配字符,支持中文、空结果、无JS GET表单;不依赖过期的Meilisearch结果,也不删除/重建共享索引。现有发布索引副作用保留。普通浏览标签noindex,不做无流量证据的同义合并。
- 去掉全局“今天”简介;纯文本实体解码、空白清洗、标题转义。首页、栏目、标签、搜索和文章各有主题。分享复制当前规范文章URL,OG一致,绝对图片URL,增加Twitter和真实Article/BreadcrumbList/CollectionPage结构;不输出评分或伪造作者资历。
- 新增nullable `sContentUpdatedAt`:仅有实质内容变动时写入,点赞不改变。旧数据未知修改时间省略lastmod,不以updated_at冒充。新sitemap包含非空有效栏目、首页及可索引文章,排除日更新快照;栏目未建立可信历史时钟时不输出lastmod。
- 免费节点接收校验字段与结果,失败、零节点、空正文拒绝并保留旧文。兼容旧摘要中的明确数量,状态默认unknown;数量不等于客户端连接实测,未向上游伪造check字段。已被编辑API接管的教程拒绝旧接口覆盖。
- 原编辑API的持久IndexNow回执继续使用,实质更新通知文章与相关栏目;日更通知首页/栏目,取消无差别直接推送快照。新增 `seo_notifications` 出站表及业务服务器 `seo:indexnow-retry` 每5分钟最多10条、去重、5分钟到24小时退避;删除事件可以通知404地址,日志不含密钥。既有回执不自动补推,200/202仅代表接收。
- HTML包含会话/点赞和随时间变化策略,因此关闭整页响应缓存路径(原生产也已关闭);静态资源缓存继续使用。GET点赞不再写数据,改POST+CSRF。非内容请求输出noindex头,旧/test路由仅local注册。
- 保留教程横幅和既有广告;封面从CSS背景改为可发现img且保持原卡片比例,本地图片取真实尺寸;确认的福云/Hardnerd推广链接补sponsored,普通引用不一律nofollow。移动菜单增加可访问名称、展开状态、Escape关闭与焦点返回;无JS有导航和搜索后备。
- 不新增后台:本次设置由现有应用配置维护,后续若做可视管理沿ATOM规范。域名不变无需DomainHub变更;未新增TeleHub消息,原日更通知调用保持。
## 验证
- 独立SQLite、冻结时钟和HTTP替身,62项业务测试523断言通过,无警告(APP_URL显式提供)。包含原编辑发布/重试、插画交付与独立副本、年度点赞、新URL/可见性/时间/清理/IndexNow合同。未往业务库插入测试文章。
- 本地工作区最终整套64项/527断言通过,无警告。旧Laravel示例测试在未建表时访问首页,修正为独立健康入口启动及noindex检查;首页内容已有完整隔离数据测试。生产派生版本原62项/523断言通过,且本地/生产广告差异分别保留。
- Vite正式构建通过;JS gzip约80.25KB,主题CSS gzip141.79KB。仅性能体积基线,不是线上CWV成绩;未重写框架。
- 临时回环合成数据浏览器:从第2页滚动到第3页,26条且26个唯一ID、末页无next;390/320宽无横向溢出,菜单展开/键盘Escape;禁用JS仍有下一页链接。临时浏览器设置已复原。该验收不是生产页面验收。
- 本地固定入口 `fna-v3.loc` 首页、免费节点第2页、Windows栏目均200,canonical使用本地域名,非生产统一noindex/nofollow。生产验收与精确提交、恢复点见下节。
## 保留边界与后续证据
历史正文、ID、URL、发布时间、插画关联和现有点赞设置不批量改动。旧资源7天noindex是过渡保留规则,不是给首页“转权重”的工具;未来按真实流量/外链与独立价值逐条处理。旧账号重复组保留既有noindex,不机械删文。既有客户端教程已经上线,本批不重写正文,未做客户端实机联网验证。
旧文章接收接口缺少入站认证;master01 `FnSitePublish::fn_b` 当前本地调用实现不带token,Nginx也未发现该路径专门认证。不得单方面启用token导致日更中断;需要在master01/FNA共同核对真实调用方并完成有兼容期的认证切换。当前编辑API认证保持,公网默认关闭。本批不把SEO发布宣称为旧接口安全问题全部解决。
未获取Search Console/Bing/Yandex的查询、外链、索引报告,不能据此承诺排名或声称历史URL没有流量;搜索平台效果、真实用户CWV、全部设备体验仍须后续数据观察。作者/运营反馈资料不虚构,现有点赞业务按用户此前明确设定保留,未作为搜索结构化评分。
## 回滚合同
代码回到本批base;只恢复本批覆盖的构建文件及缓存。新增列/出站表可保留,不还原整库覆盖发布后新文章。若需要撤销迁移,先确认无新写入并导出出站状态;默认不执行down。保留并行generated-tags-cloud、data.ms和public/images/editorial,禁止reset --hard/clean。不重启共享PHP-FPM;只定点失效本站变更文件OPcache。
## 发布记录
状态:**本批技术优化已Git提交、推送并部署正式cfn,服务器侧验收通过**。功能提交 `7c11ca77bcad5880ee0d50610f05419d40e18d46`,分支 `codex/fna-seo-20261031`,最终基线 `a820755e7e914180178e6928f73d5b42b0b24c86`;后续只同步本批文档与健康检查测试,不改运行代码。脱敏证据见 [发布回执](SEO_RELEASE_2026-10-31.json)。
- 189篇文章逐项HTTP200、规范地址、index/noindex、Article结构化数据及OG地址通过;全部核心字段、ID、日期、配图和旧编辑发布回执哈希保持。35个sitemap目标逐项200、自引用canonical、index/follow,无重复。原28项中的首页仅统一尾斜杠,原文章地址无移除,新增7个有效栏目。
- 正式首页独立WebSite身份与最近可用文章一致;合法第2页及实际第3页HTML链接通过,非法父路径、无效/越界/重复分页均404。HTTP首页一跳301到HTTPS,HTTPS证书校验成功;XML、robots、CSS/JS状态及MIME通过。只存在已登记主域Nginx server_name,未为验收猜测www别名。
- 编辑公网API保持关闭,调试路由404;原和新增IndexNow调度均在业务服务器存在。2026-10-31 15:52:55北京时间,由新持久队列通知首页及9个栏目共10个URL,回执done、1次、HTTP200;仅证明已接收,不代表已抓取、已收录或排名提升。未修改旧发布回执或补推历史文章。
- 保留刚上线的HN广告调整、生产生成标签模板及data.ms、public/images/editorial并行目录。未改变DNS、邮件、Resource或其他实例;本地保留其DPL/FUC/HN组合广告差异,没有将本地其他未发布修改带上线。
- 第一次切换因验收把首页尾斜杠变化当成URL丢失而自动回滚,已核实只有该等价变化;严格保留其他URL差异检查后再次切换成功。最终维护窗口1.34秒,维护标记已撤。未重启共享FPM,只定点失效本站PHP文件OPcache。
- 私有恢复点:VPS-003 `/root/backups/cfn-seo-20261031/`,包含Git bundle、整库一致性备份、环境、Nginx、旧构建、前后状态、回滚失败原因与实际验收。新增SEO列与出站表为追加迁移,本地171篇原行旧字段保持;生产不回灌整库。
已完成服务器侧验收,未做线上页面验收。搜索平台报告、设备实机和真实用户性能不因这次技术发布自动完成;分项状态在SEO_PLAN。