URL 迁移后,使用一份旧网址到新网址的映射表,更新公开链接、规范声明、重定向和站点地图条目。本 Mac 桌面工作流程将说明如何让这些更改保持一致,并验证已发布的结果。

此处的任务是将一小组公开 HTML 文档移至同一网站上的新路径。所有示例地址和页面名称均为虚构内容。要完成整个工作流程,你需要有权访问发布系统、其重定向设置,以及相关的 Search Console 资源。

迁移后哪些内容应保持一致?

对于每份已迁移的文档,选定一个最终目标地址。你控制的链接应直接指向该地址,目标页面应声明自身为规范页面,当前站点地图也应列出该地址。旧地址应重定向到该地址。Google 将重定向和规范注释视为强规范化信号,而将站点地图收录视为较弱的信号。这些方法可以相互强化,但最终由 Google 选择规范网址。Google 的规范化指南。

这些机制的作用各不相同。重定向负责处理对旧地址的请求。公开链接决定读者接下来会访问哪里。规范声明标识文档的首选 URL;WHATWG 对 canonical 链接类型定义了这一含义。站点地图提供首选 URL 列表,便于发现网页。更新其中一项不会修改其他项。WHATWG HTML 标准:canonical 链接类型,Google 的站点地图指南。

将此一致性表作为实际验收检查。它是根据文档整理的工作流程,并非 Google 的评分系统。

位置 虚构的 Colors 文档应达到的结果
旧地址 https://example.com/notes/colors.html 永久重定向至目标地址
目标地址 https://example.com/library/colors/ 提供 Colors 文档
导航和文档链接 直接指向 https://example.com/library/colors/
目标页面规范网址 标识 https://example.com/library/colors/
当前站点地图条目 列出 https://example.com/library/colors/

更改各项设置前先建立一份映射表

在 Mac 上打开电子表格或纯文本编辑器,将每个旧地址与其预定目标地址并列记录。Google 建议将准备旧网址到新网址的映射表作为网站迁移的一部分。保留原始列表的副本,以免替换站点地图条目时丢失仍需设置重定向的地址记录。Google 的网站迁移指南。

文档 旧路径 最终路径
Colors /notes/colors.html /library/colors/
Palette /notes/palette.html /library/palette/
Shapes /notes/shapes.html /library/shapes/

对于每一行,记录需要在哪些位置进行更改:页面编辑器、共享导航、规范网址设置、重定向设置和站点地图生成器。另设单独的检查列,用于记录公开响应和 Search Console 检查结果。这样就能将含糊的“更新 URL”要求转化为一组明确、有限的编辑和观察事项。

接受映射前,先检查目标页面内容。如果两份旧文档已合并为一份实用的整合文档,它们都可以重定向到该页面。不要将无关文档发送到通用首页;Google 警告,不相关的重定向可能被视为软 404。Google 的重定向映射建议。

更新公开链接并检查相对路径

在发布编辑器中,根据映射表更新导航、文档索引、相关文档链接和文章正文中的链接。如果系统根据页面记录生成导航,请更改底层记录或模板,而不是反复修正生成后的内容。保存前检查每处替换,尤其要留意旧路径是否也出现在说明性示例中。

即使链接文本保持不变,路径变化也可能改变相对链接的目标地址。WHATWG URL 标准会根据基准 URL 解析相对引用。以下示例假设文档没有显式的基准地址覆盖设置。WHATWG URL 标准。

文档 URL 链接值 解析后的目标地址
https://example.com/notes/colors.html palette.html https://example.com/notes/palette.html
https://example.com/library/colors/ palette.html https://example.com/library/colors/palette.html
https://example.com/library/colors/ /library/palette/ https://example.com/library/palette/

这些虚构地址的解析结果已使用 JavaScript 的 URL API 检查。未更改的 palette.html 值现在指向 Colors 目录内,因此即使其他地方的文本替换成功,也无法发现这个问题。对于这组小型文档,使用预期的根相对路径可以明确指定目标。如果要迁移到不同主机,请使用正确的绝对地址,或确认每个根相对链接仍指向预期主机。

在 Mac 浏览器中打开已发布的 Colors 文档,并点击其 Palette 链接。检查显示的文档和最终地址。对共享导航和所有分节链接重复此操作。如果链接使用 #swatches,请确认目标页面仍包含相应的分节标识符;仅凭路径映射表无法确认这一点。

在对应位置设置规范网址和永久重定向

对于每份新 HTML 文档,将其规范网址设为最终绝对 URL。Google 建议使用绝对规范 URL,并接受通过文档的 head 中的 HTML 规范元素来设置规范网址。如果发布系统设有规范网址字段,请在其中输入地址,并检查系统生成的内容。Google 的规范网址实现说明。

对于 Colors 页面,以下内容是放入现有文档 head 中的元数据片段,并非完整的 HTML 页面:

<link rel="canonical" href="https://example.com/library/colors/">

检查主机是否还通过 HTTP Link 响应头发送规范网址。Google 支持这两种方法,但建议只选择一种,因为同时维护两种方法可能导致目标地址冲突。修正生成该值的模板或设置,以免下一次发布时恢复为旧地址。Google 的规范化方法。

配置旧地址,使其通过服务器端永久重定向指向目标地址。RFC 9110 将 301 和 308 定义为永久重定向,并说明 Location 标头中包含目标地址。两者的区别包括对请求方法的处理:308 会保留请求方法,而 301 允许沿用历史上的 POST 转 GET 行为。对于普通文档请求,Google 将两者都视为永久重定向信号。RFC 9110:HTTP 语义,Google 的重定向文档。

具体配置取决于你的主机或发布系统。仅通过浏览器编辑无法创建 HTTP 响应规则。如果平台无法配置服务器端重定向,请使用其文档说明的托管配置,或请托管服务运营方实施映射。Google 说明,在无法使用服务器端重定向时,可将即时 meta refresh 作为后备方案;只有无法采用其他方法时,才建议使用 JavaScript 重定向。单靠规范声明不会将访客带到新地址。Google 支持的重定向方式。

根据相同的目标地址重新生成站点地图

更新站点地图的源数据,然后重新生成站点地图。手动修正生成后的文件很容易在下次构建时丢失。本次迁移的当前站点地图应包含最终的 Colors、Palette 和 Shapes URL,而不是它们的旧路径。

Google 要求站点地图使用完全限定的绝对 URL 和 UTF-8 编码。如果只需列出网页,可以使用纯文本站点地图:每行一个 URL,不要添加标题或说明文字。包含全部三个虚构页面的示例如下:

https://example.com/library/colors/
https://example.com/library/palette/
https://example.com/library/shapes/

Google 的站点地图格式和要求。

如果网站已生成 XML 站点地图,请保留受支持的格式,并更新其中的 URL 条目。提供 lastmod 时,请使用准确的修改日期;Google 表示,该值应反映页面的重要更新。不要为了让站点地图看起来较新,就自动替换所有日期。Google 的 XML 站点地图指南。

在 Mac 上验证公开结果

检查已部署的输出,因为编辑器预览无法证明公开地址返回了怎样的 HTTP 响应。在 Mac 上打开终端。以下诊断命令使用虚构地址:运行前请替换为你自己映射表中的相应公开 URL。这些示例并不表示任何实际迁移结果。

old_url='https://example.com/notes/colors.html'
new_url='https://example.com/library/colors/'

curl --silent --show-error --connect-timeout 10 --max-time 30 \
  --dump-header - --output /dev/null "$old_url"

curl --silent --show-error --connect-timeout 10 --max-time 30 \
  --location --max-redirs 5 --output /dev/null \
  --write-out 'status=%{http_code}\nfinal=%{url_effective}\nredirects=%{num_redirects}\n' \
  "$old_url"

curl --silent --show-error --connect-timeout 10 --max-time 30 \
  "$new_url"

第一条命令显示初始响应标头,但不跟随重定向。第二条命令跟随重定向,并报告最终状态、地址和重定向次数。第三条命令获取目标页面的标记内容以供检查。相关选项见 curl 手册。

对于映射明确的页面,预期初始响应为 301 或 308,并带有预期的 Location,之后最终地址应成功提供文档。检查返回的标记内容中的规范网址。还要在浏览器中阅读文档:HTTP 成功响应本身并不能证明返回了正确内容。Google 建议直接重定向到最终目标地址,避免形成重定向链。RFC 9110:状态码,Google 的网站迁移指南。

如果某一行未通过检查,请按下表的顺序诊断。这样可以让修复依据可观察到的输出进行。

观察结果 后续操作
旧 URL 重定向到非预期页面 修正映射或重定向规则
重定向后又到达另一条重定向 将旧地址直接指向最终目标地址
正确页面仍带有旧规范网址 修正元数据源并重新发布
导航仍会访问旧路径 更新源链接或共享模板
站点地图仍列出旧路径 修正生成器输入并重新生成
终端报告超时 解决连接问题后重新检查;将此项测试记录为未完成

提交站点地图并区分实时检查与编入索引

在 Search Console 中,选择覆盖新 URL 的资源,并使用 Sitemaps 报告提交公开站点地图地址。Google 说明,此报告可用于提交站点地图,也会显示处理错误。提交只是帮助发现网页的提示,并不保证网页会被编入索引。Google 的站点地图提交说明。

在 Search Console 的检查栏中输入新文档的完整 URL,以检查该文档。使用实时测试调查当前的可访问性和潜在的可编入索引性。要查看 Google 选择的规范网址,请检查已编入索引的结果及其 Google-selected canonical 字段。实时测试无法预测规范网址的选择结果。Search Console URL 检查工具。

此示例是在同一主机内更改路径,因此不适用 Change of Address 工具。Google 指示进行路径迁移的网站发布者实施重定向并更新站点地图。该工具适用于网站迁移并设置好重定向后的域名或子域名迁移。Search Console 地址变更工具。

保留映射表作为维护记录。只有在公开重定向、目标页面内容、链接、规范网址和站点地图都保持一致后,才将某一行标记为完成;Google 之后的编入索引情况应单独记录。尽可能长时间保留重定向——Google 的一般迁移指南建议至少保留一年——并在今后的文档编辑中继续使用最终地址。Google 的迁移指南。

来源