做SEO时间久了,几乎一定会遇到URL标准化问题:
同一篇内容为什么出现两个网址?
HTTP和HTTPS都能打开怎么办?
带参数的URL要不要收录?
旧文章改了网址应该301还是Canonical?
两个相似页面能不能互相Canonical?
Canonical写了以后,Google为什么还是选择另一个URL?
Sitemap里应该放旧URL还是规范URL?
这些问题看起来都在讨论URL,实际核心只有一个:
当相同或高度相似的内容可以通过多个URL访问时,要尽量让搜索引擎明确知道哪个URL才是主要版本。
Google把这个过程称为Canonicalization,也就是URL规范化。Google会把重复或高度相似的页面聚成一组,再从中选择一个代表性的Canonical URL用于搜索结果和主要内容评估。网站可以通过301重定向、rel="canonical"、Sitemap等信号告诉Google自己的偏好,但Google仍然会综合其他信号自行判断。
对于SEO来说,301和Canonical经常一起出现,但它们解决的问题并不完全相同。
如果先记住最核心的一句话:
旧URL已经不需要继续给用户访问,优先考虑301;多个URL仍然需要正常存在,但希望搜索引擎集中到其中一个主要版本,考虑Canonical。
下面用FAQ的方式把常见问题一次讲清楚。
问题一:什么叫URL标准化?
URL标准化,就是确定一份内容最主要、最希望搜索引擎采用的URL。
例如下面几个网址可能最终都显示同一个页面:
http://example.com/product/
https://example.com/product/
https://www.example.com/product/
https://www.example.com/product/?utm_source=test
对于用户来说,内容可能没有区别。
对于搜索系统来说,它们却是不同URL。
如果没有进行规范化,就可能产生:
重复抓取;
数据分散;
外链分散到不同URL;
搜索结果展示版本不统一;
站长数据难以统计。
Google明确表示,URL规范化的一个重要作用就是把相似或重复页面的信号整合到主要URL,同时减少重复页面带来的不必要抓取。
所以SEO中的URL标准化,本质上是在解决:
同一份内容到底应该由哪个地址代表。
问题二:301是什么?
301是HTTP状态码:
301 Moved Permanently
也就是:
永久重定向。
例如旧地址:
https://example.com/old-seo-page/
已经永久迁移到:
https://example.com/seo/
访问旧地址时,服务器直接把用户和搜索爬虫跳转到新地址。
Google目前明确把301、308等永久重定向视为一个强烈信号,表示新的目标URL应该成为规范URL。如果确定页面以后不会迁回旧地址,Google建议优先使用服务器端永久重定向。
所以301适合的场景通常是:
页面改URL;
网站改版;
HTTP迁移HTTPS;
www和非www统一;
旧域名迁移新域名;
两个页面合并;
旧页面已经有新的替代页面。
用户以后已经没有必要继续停留在旧URL。
问题三:Canonical是什么?
Canonical通常指:
<link rel="canonical" href="https://example.com/page/">
它一般放在HTML的<head>中。
作用是告诉搜索引擎:
当前这个页面和另一个URL内容相同或高度相似,我更希望你把后者当成规范版本。
例如商品页:
/product/shoes/
还可能因为广告参数形成:
/product/shoes/?utm_source=google
/product/shoes/?utm_source=email
这些带参数URL可能都需要正常访问。
但内容主体没有变化。
这时候可以让不同参数页面Canonical到:
/product/shoes/
Google目前将rel="canonical"同样视为较强的规范化信号。
百度也公开支持Canonical标签,用于告诉搜索系统一组相同或高度相似页面中的首选规范网页。
问题四:301和Canonical到底有什么区别?
可以直接看这张表。
| 对比 | 301 | Canonical |
|---|---|---|
| 用户是否跳转 | 会 | 不会 |
| 原URL是否继续正常展示 | 不再作为独立页面使用 | 可以继续访问 |
| 主要场景 | 页面永久迁移 | 重复/相似URL整合 |
| 搜索引擎信号 | 强 | 强 |
| 是否改变浏览器地址 | 会 | 不会 |
| 常见用途 | 改URL、换域名、合并页面 | 参数页、筛选页、重复版本 |
Google当前对规范化信号的强度说明也比较明确:
重定向:强信号。
rel="canonical":强信号。
Sitemap:较弱信号。
所以选择方式时,不要只考虑SEO。
还要考虑:
旧URL以后还有没有独立给用户访问的必要。
问题五:什么时候应该用301?
一个很好判断的方法是:
用户打开旧URL以后,还有必要继续留在旧页面吗?
如果答案是没有,通常更适合301。
例如网站改版:
/services/seo-old/
已经被:
/services/seo/
完全替代。
那旧页面继续存在的意义很低。
直接:
旧URL
301
↓
新URL
更加明确。
Google明确建议,在页面永久移动时使用301或308等永久服务器端重定向。
百度针对网站改版也长期建议,通过301把旧版对应内容跳转到新版页面,再结合网站改版工具帮助搜索系统完成新旧URL替换。
问题六:什么时候应该用Canonical?
Canonical更适合:
多个URL都有存在价值,但搜索结果只需要一个主要版本。
比如电商网站:
/category/shoes/?sort=price
/category/shoes/?sort=sales
/category/shoes/
排序方式不同。
页面仍然需要让用户正常访问。
但如果主体内容高度相似,可以根据实际网站设计确定一个规范版本。
再比如广告参数:
/article/seo/?utm_source=wechat
/article/seo/?utm_source=douyin
这些URL可能只是流量追踪参数。
没有必要在搜索结果中分别出现。
这时候Canonical比把所有参数URL强制301更加灵活。
问题七:每个正常页面都需要Self Canonical吗?
通常可以设置。
所谓Self Canonical,就是页面把自己声明成规范URL。
比如页面:
https://example.com/seo/
HTML里写:
<link rel="canonical"
href="https://example.com/seo/">
它表达的是:
这个页面自己的规范版本就是这个地址。
很多CMS和SEO插件都会默认这样做。
对于正常网站来说,这有助于保持信号一致,也可以减少某些参数或者URL变体带来的混乱。
但仍然需要定期检查。
因为插件配置错误以后,也可能出现:
所有文章Canonical到首页;
A页面Canonical到完全无关的B页面;
这种严重错误。
问题八:Canonical写了以后,搜索引擎就一定采用吗?
不一定。
这是Canonical最容易被误解的一点。
Google明确表示:
Canonical属于信号,并非强制命令。
Google会综合:
重定向;
Canonical标签;
Sitemap;
HTTPS;
页面内容;
内部链接;
其他技术信号;
自行选择最终规范URL。
所以可能出现:
你声明A是Canonical。
Google最后选择B。
如果遇到这种情况,不应该不断重复加入Canonical。
应该检查:
A和B到底有什么关系;
内部链接主要指向谁;
Sitemap放的是谁;
有没有重定向冲突;
页面内容是不是高度重复。
Google目前建议直接通过Search Console的URL Inspection查看Google实际选择的Canonical。
问题九:301和Canonical可以同时使用吗?
技术上会出现这种组合。
但一定要让它们表达:
同一个方向。
例如:
A
301 → B
同时B:
<link rel="canonical" href="https://example.com/b/">
这种信号一致。
问题在于:
A
301 → B
B却Canonical:
B → A
这就产生冲突。
搜索引擎需要自己重新判断。
所以URL标准化最重要的原则之一就是:
所有信号尽量统一。
301指向B;
Canonical指向B;
Sitemap放B;
内部链接也尽量使用B。
Google明确指出,不同规范化信号可以叠加使用,多个一致信号会增加首选URL被采用的机会。
问题十:Sitemap里应该放Canonical URL还是所有URL?
优先放:
规范URL。
Google明确说明,Sitemap中列出的页面会被视作网站推荐的Canonical候选,但Sitemap本身属于较弱信号。
所以如果:
A页面Canonical到B。
Sitemap最好放:
B。
不要同时:
Sitemap提交A;
Canonical又告诉Google应该选择B;
这样会制造矛盾信号。
一份健康的Sitemap最好主要包含:
200状态;
允许索引;
真正希望进入搜索结果;
Canonical一致;
的重要URL。
问题十一:内部链接应该链接Canonical版本吗?
应该尽量统一。
例如网站规范URL已经确定:
https://www.example.com/seo/
内部文章却长期使用:
http://example.com/seo
https://www.example.com/seo/?source=blog
虽然最后可能都会跳到正确页面,但搜索系统会不断接触不同URL版本。
所以:
导航;
正文内链;
面包屑;
相关文章;
最好统一指向规范URL。
URL标准化真正成熟的状态是:
网站内部自己先统一。
不要让搜索引擎每天替网站猜哪个版本最重要。
问题十二:HTTP和HTTPS怎么处理?
如果网站已经全面启用HTTPS,一般应该把HTTP永久重定向到HTTPS。
例如:
http://example.com/page/
301:
https://example.com/page/
同时:
Canonical使用HTTPS;
Sitemap放HTTPS;
内部链接使用HTTPS。
Google本身也会优先考虑HTTPS版本,但如果存在错误证书、冲突Canonical或HTTPS重新跳回HTTP等问题,仍然可能造成规范化混乱。
所以最稳妥的方法是:
301 + Canonical + Sitemap + 内链全部统一HTTPS。
问题十三:www和非www怎么处理?
例如:
https://example.com/
和:
https://www.example.com/
两者都可以正常使用。
SEO重点不在于:
哪个排名更好。
而在于:
选择一个并统一。
比如决定使用:
https://www.example.com/
那就让:
https://example.com/
301到www版本。
同时Canonical、Sitemap和站内链接统一使用www。
不要今天文章使用www。
明天产品页又全部使用非www。
问题十四:URL最后有斜杠和没有斜杠怎么办?
例如:
https://example.com/seo
和:
https://example.com/seo/
从URL层面看,它们属于不同地址。
如果服务器两个版本都返回200且内容完全相同,就可能形成重复URL。
所以建议确定网站统一规则。
例如全部采用:
/seo/
然后:
/seo
301到:
/seo/
或者反过来。
重点仍然是:
稳定一致。
问题十五:带UTM参数的URL需要做301吗?
通常没必要因为UTM追踪参数全部301。
例如:
/page/?utm_source=wechat
/page/?utm_source=email
这些参数本来就是为了统计来源。
如果强制301掉参数,可能影响你的数据追踪。
更常见的处理方式是:
参数URL仍然正常访问。
同时Canonical指向干净版本:
/page/
再保证内部链接主要使用规范URL。
当然,不同网站参数逻辑不同。
如果参数真正改变了页面内容,就不能机械地全部Canonical到同一个地址。
问题十六:分页页面应该全部Canonical到第一页吗?
不要形成这种机械规则。
例如:
/category/page/2/
/category/page/3/
如果每一页都展示不同内容,它们本身并不完全重复。
把所有分页全部Canonical到第一页,可能导致搜索系统误判这些分页内容。
Canonical主要用于:
重复或高度相似页面。
不是:
“我不希望这个页面排名,就Canonical到首页”。
如果某类页面完全不希望进入索引,还应该根据实际场景考虑页面结构、内部链接、noindex等其他方式。
问题十七:两篇不同文章可以Canonical到其中一篇吗?
如果主体内容真的高度重复,可以考虑。
但如果只是:
主题类似。
内容实际不同。
不建议为了集中所谓“权重”随意Canonical。
例如:
A:
SEO和GEO有什么区别?
B:
企业怎么做GEO?
虽然都讨论GEO,但用户搜索意图不同。
两个页面都应该独立存在。
Canonical不是:
给我认为更重要的页面传权重的工具。
它解决的是:
重复或高度相似URL的规范化。
问题十八:文章更新后换了URL,应该Canonical还是301?
如果旧URL以后已经不用:
301更加合适。
比如:
/blog/seo-old/
改成:
/blog/seo-guide/
旧地址没有继续存在的必要。
那么:
/blog/seo-old/
301
→
/blog/seo-guide/
更符合永久迁移的含义。
不要让旧页面继续200返回,再只加Canonical。
用户访问旧URL以后仍然看到旧页面,也会增加维护复杂度。
Google目前明确建议页面永久移动时使用服务器端永久重定向。
问题十九:删除页面以后是不是全部301到首页?
不建议。
比如网站删除一篇:
2020年某场已经结束的活动。
又没有任何对应的新内容。
这时候正常返回:
404或410
完全合理。
如果把几十万个无关旧页面全部301到首页,用户本来寻找具体内容,最后全部落到首页,体验并不好。
301应该存在:
合理的新旧内容对应关系。
例如:
旧SEO服务页 → 新SEO服务页。
旧产品A → 新的替代产品A。
两个高度重叠文章合并 → 合并后的主文章。
真正没有替代内容的页面,可以正常失效。
问题二十:302和301有什么区别?
简单来说:
301
永久移动。
搜索系统通常倾向让新地址成为规范URL。
302
临时移动。
表示:
这个跳转以后可能还会恢复。
Google明确说明,永久重定向会作为让目标URL成为Canonical的信号;临时重定向通常不会直接作为同样的Canonical信号,源URL更可能继续保留在搜索结果中。
所以如果网站页面已经确定永久迁移:
优先301或308。
临时维护、短期活动切换等情况:
才考虑302、307等临时重定向。
问题二十一:301会不会导致SEO权重全部丢失?
不要把301理解成:
一跳转,旧页面所有SEO全部清零。
Google官方明确表示,永久重定向会作为URL迁移和Canonical选择的重要信号,并用于帮助把旧URL转移到新位置。其抓取索引FAQ也说明,301可以适当地传递相关排名信号和外部链接信号。
但这不代表:
任意两个不相关页面301以后,原来的排名全部复制过去。
页面主题、新旧对应关系、内容以及其他信号仍然重要。
所以301真正应该做的是:
一对一合理迁移。
问题二十二:301跳转多久以后可以删除?
网站迁移阶段,不建议过早撤掉。
比如旧域名迁新域名。
搜索系统需要时间重新:
抓取;
识别301;
替换索引;
处理外链;
更新搜索结果。
百度在网站改版说明中也建议旧域名和新版保持一段时间,并持续观察新网站索引和展现情况,再完成迁移。
对于长期有外链、收藏和历史访问的旧URL,永久301本身完全可以长期保留。
没必要只放一个月以后就删除。
问题二十三:Canonical页面本身应该可以索引吗?
通常希望作为规范URL的页面应该:
返回200;
允许抓取;
允许索引;
内容完整。
例如:
A Canonical到B。
结果B:
404。
或者:
B本身noindex。
就制造了互相冲突的信号。
所以规范URL最好是真正健康的主要页面。
问题二十四:可以把所有低质量页面Canonical到首页吗?
不要这么做。
Canonical要求页面之间具有:
相同或者高度相似的主体内容。
例如:
一篇完全不同的文章Canonical到首页。
搜索系统没有充分理由接受。
Google明确会自己判断重复页面聚类,并可能因为技术信号或内容差异选择与你指定不同的Canonical。
所以Canonical不能拿来:
批量隐藏低质量页面。
如果页面没有价值,应该研究:
更新;
合并;
删除;
noindex;
而不是全部Canonical首页。
问题二十五:怎么检查Google最终选择了哪个Canonical?
最直接的方法:
进入Google Search Console。
使用:
URL Inspection / 网址检查。
输入目标URL。
查看:
用户声明的Canonical;
Google选择的Canonical。
如果两者一致,通常说明规范化方向比较清楚。
如果不一致,就继续检查:
301;
Sitemap;
内部链接;
页面内容;
Canonical;
HTTPS;
是否存在重复版本。
Google当前的Canonical故障排查指南同样建议首先通过URL Inspection确认Google实际选择的规范URL。
问题二十六:Bing里怎么排查URL规范化?
Bing Webmaster Tools目前的Site Explorer可以按多种URL状态筛选,其中直接包括:
Redirecting URLs;
Canonical Source;
noindex;
robots禁止;
404/410;
服务器错误。
所以如果网站URL比较多,可以通过Site Explorer快速判断:
哪些地址正在跳转;
哪些页面存在Canonical关系;
哪些页面根本没有进入正常索引链路。
这对于:
电商;
大量参数网站;
内容量几千页以上的网站;
尤其有价值。
问题二十七:URL标准化到底应该怎么做最稳?
可以建立一套简单规则。
假设最终确定规范页面:
https://www.example.com/seo/
那么尽量做到:
HTTP
301 → HTTPS
非www
301 → www
无斜杠版本
301 → 统一版本
Canonical
→ https://www.example.com/seo/
Sitemap
→ https://www.example.com/seo/
内部链接
→ https://www.example.com/seo/
也就是说:
所有信号尽量指向同一个URL。
这才是真正完整的URL标准化。
最后:301和Canonical不要死记,用“用户还需不需要访问旧URL”来判断
如果把整篇FAQ压缩成最简单的判断方法,可以先问一句:
这个旧URL还需要继续正常提供给用户吗?
如果:
不需要。
例如:
URL永久修改;
旧页面被新页面完全替代;
HTTP统一到HTTPS;
旧域名迁新域名;
通常优先:
301。
如果:
还需要。
例如:
追踪参数;
排序参数;
某些重复页面版本;
多个URL需要同时正常访问;
但搜索结果希望集中在一个主要版本,
可以考虑:
Canonical。
Google目前对URL规范化的信号强度已经说明得很清楚:
301等重定向是强信号。
rel="canonical"是强信号。
Sitemap属于较弱信号。
真正成熟的网站最好让这些信号保持一致:
301
+
Canonical
+
Sitemap
+
内部链接
+
HTTPS
=
统一规范URL
百度也已经支持Canonical,并在网站改版场景持续建议使用301完成新旧URL对应迁移。
所以URL标准化真正想解决的,从来都不复杂:
同一份内容,不要让搜索引擎长期面对五六个不同地址,再猜哪个才是你真正想要的页面。
网站自己先把URL关系说清楚。
搜索引擎处理起来才会更加稳定。
对于已经有几百、几千甚至更多URL的网站,这项工作尤其值得定期检查,因为URL规范化问题一旦批量出现,影响的往往已经不只是一篇文章,而可能是整个网站的抓取、索引、排名和搜索数据。
评论
欢迎留下你的看法,评论会按站点设置审核展示。
0 条评论
还没有评论,来写下第一条吧。
请先登录后即可评论
登录评论已关闭