Nginx 301重定向核心是精准收敛非规范URL至唯一canonical地址:统一主域(www/裸域归一)、清除低价值参数(如page=1)、旧路径逐页映射、避免首页兜底,并通过curl和GSC验证闭环。

搜索引擎降权恢复期,Nginx 301 重定向的核心任务是快速收敛所有非规范 URL 到唯一 canonical 地址,切断权重分散路径,让爬虫只抓取、只索引一个版本。关键不是“加跳转”,而是“精准拦截+无损映射+全量覆盖”。
统一主域入口:www 与裸域名二选一
降权期间最常见问题是同一内容被 example.com 和 www.example.com 同时索引。必须强制归一:
- HTTP 流量(80 端口)全部跳转到目标 HTTPS 主域,例如:
return 301 https://www.example.com$request_uri; - HTTPS 下的裸域名(
example.com:443)单独配置 server 块,再 301 跳到www.example.com,不能只靠 HTTP 跳转兜底 - server_name 必须显式列出所有变体,如
server_name example.com www.example.com;,避免漏配导致部分请求未跳转
清除低价值参数,保留业务必需参数
像 ?page=1、?ref=abc 这类易被外链带入但无实质区分的参数,会制造大量重复页面。需在 Nginx 层直接干预:
- 用
if ($args ~* "(^|&)page=1(&|$)") { return 301 $scheme://$host$uri?; }精准匹配并清除 page=1,不误伤page=2或category=tech&page=1 - 不要全局清空
$args,否则?utm_source=email等追踪参数也会丢失,影响归因分析 - 该规则应放在 HTTPS server 块顶部,确保早于 location 匹配执行
旧路径结构迁移:逐页映射,拒绝首页兜底
改版后若目录调整(如 /products/ → /shop/),必须保持路径语义延续:
- 单页精确跳转用
location = /old.html { return 301 /new-page/; },效率最高 - 目录批量迁移用
location ^~/old-path/ { rewrite ^/old-path/(.*)$ /new-path/$1 permanent; },保留子路径和参数 - 绝对避免写成
return 301 /;——这会让所有旧链接跳首页,造成大量 404 和权重断层
验证与闭环:确保跳转可被爬虫识别
配置生效后,要确认三件事:
- 用 curl -I 检查响应头是否为
HTTP/2 301,且Location值完整、无拼写错误 - 在 Google Search Console 的“URL 检查”工具中测试典型旧 URL,看是否显示“已重定向至规范网址”
- 配合
<link rel="canonical">标签使用,形成服务端(301)+ 客户端(canonical)双保险


















