56 lines
10 KiB
Markdown
56 lines
10 KiB
Markdown
# 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。
|