URL 末尾是否使用斜杠没有通用的“更好”答案,重要的是同一资源只保留一个 canonical 形式,并让站内链接、重定向、站点地图、缓存和搜索引擎信号保持一致。
先使用固定链接设置
WordPress 后台“设置 → 固定链接”的结构决定文章与页面 URL。主题和插件输出链接时,应调用:
get_permalink()get_term_link()get_post_type_archive_link()home_url()
这些 API 会结合站点地址和重写规则生成链接。不要读取当前 URL 后手工补 /,也不要对所有字符串简单调用 trailingslashit():资源文件、带查询参数的链接和外部 URL 可能因此损坏。
为自定义内部路径遵循站点规则
<?php
$docs_url = user_trailingslashit(
home_url( '/docs/getting-started' ),
'page'
);
echo esc_url( $docs_url );
user_trailingslashit() 根据固定链接设置和 URL 类型决定是否保留结尾斜杠。它适合 WordPress 生成的站内内容路径;文件 URL 和 API URL 应遵循各自协议。
不要只改输出,不做重定向
如果一个页面同时能以 /about 和 /about/ 返回 200,会形成重复内容和缓存分裂。WordPress 通常会通过 canonical 重定向统一形式,但反向代理、缓存插件、自定义路由或多语言插件可能改变行为。
验证时检查:
curl -I https://example.com/about
curl -I https://example.com/about/
期望只有一种形式返回 200,另一种用单次 301/308 跳转到 canonical。还要测试查询参数是否保留,以及 HTTP 到 HTTPS、www、语言前缀和末尾斜杠是否没有组成多段重定向链。
已上线站点改规则的风险
修改固定链接属于 URL 迁移:
- 导出当前 URL 清单和流量较高页面。
- 在暂存环境生成旧 URL 到新 URL 的映射。
- 配置 301 重定向并避免循环。
- 更新站内链接、canonical、hreflang 和 XML Sitemap。
- 发布后检查 404、重定向链、缓存和搜索控制台。
- 长期保留仍有外链和索引的旧地址重定向。
不要为了视觉统一直接批量改线上 URL。SEO 风险来自没有迁移计划,不来自斜杠本身。