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/
如果网站已生成 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 的迁移指南。
来源
- 如何迁移网站 — Google Search Central。
- 如何使用 rel="canonical" 和其他方法指定规范 URL — Google Search Central。
- 重定向与 Google 搜索 — Google Search Central。
- 创建并提交站点地图 — Google Search Central。
- RFC 9110:HTTP 语义 — RFC 编辑委员会 / IETF。
- URL 标准 — WHATWG。
- HTML 标准:canonical 链接类型 — WHATWG。
- curl — 使用方法 — curl 项目。
- URL 检查工具 — Google Search Console 帮助。
- 地址变更工具 — Google Search Console 帮助。