虽然查询参数深受开发人员和数据分析者的喜爱,但它们通常是 SEO 的噩梦。在网址(URL)后面的查询参数不仅会让搜索引擎创建重复的内容,还会浪费其抓取资源,进而影响排名。
URL 的定义
URL 是统一资源定位符,俗称 Web 上的地址,是对资源的引用,指定其在网络上的位置以及检索该资源的机制。
示例1:https://yousite.com/a.html,这是一个 URL 。
示例2:https://yousite.com/a.html?a=123,这是另一个 URL 。
为什么 URL 后面的参数会影响 SEO
上面的示例1和示例2,也许内容相同,也许内容不同,但这确实是两个不同的 URL 。
如果内容相同,这意味着搜索引擎会抓取两次,且获得的内容是完全相同的,这对于 SEO 来说是一个负面影响,也就是大家常说的网站中存在重复内容。
如果内容不同,搜索引擎也会更青睐不带参数的URL,因为 https://yousite.com/size-xl.html 看起来比 https://yousite.com/?size=xl 更可靠。
谷歌(Google)早已清晰的总结了这个观点:“过于复杂的 URL,尤其是包含多个参数的 URL,可能会创建不必要的大量指向网站上相同或相似内容的 URL,从而给爬虫带来麻烦。因此,Googlebot 可能会消耗比必要的更多的带宽,或者可能无法索引您网站上的所有内容。”
WordPress 中 URL 的查询参数怎么来的?哪些可以去除?
WordPress 在进行正确的“固定链接(Permalink)”设置后,除了自带的站内搜索结果页与静态文件资源外,仅留下简洁而精致的 URL 展示在前台。
WordPress 前台需保留的查询参数:
站内搜索 URL 示例:https://yousite.com/?s=关键词
静态资源 URL 示例:https://yousite.com/wp-includes/css/dist/block-library/style.min.css?ver=6.3.2
一般会将站内搜索结果页的 URL 通过 robots.txt 或使用 排除索引,而静态资源不会被搜索引擎当成网页内容抓取,故而这两个 WordPress 默认情况不会对 SEO 带来负面影响。
如果在前端(后台页面的查询参数不影响SEO)出现上述情况外的 URL 参数,都要尽量消除掉,否则可能会对 SEO 造成影响。
提示:后台页面的查询参数不会影响 SEO,例如:插件设置页面、帖子编辑页面等。此类 URL 因需要登录用户才能访问,所以搜索引擎是抓取不到的。
那些多余的 URL 参数一般是一些设计不佳的主题或插件带来的,因为优秀的开发者会采用 cookie 或 Ajax 技术替代查询参数。确实需要使用参数的URL,也应尽量让其静态化。
例如:Filter Everything PRO 前端内容过滤器插件将前端 URL 优化成:
https://yousite.com/brand-apple/color-blue/
而不是像一些劣质主题/插件弄成这样:
https://yousite.com/?brand=apple&color=blue
在选用 WordPress 主题或插件的时候应尽量避免存在此类问题的。
警惕被人恶意添加无效参数
最后介绍的这种情况比较特殊,可能是一些别有用心的人故意在网站的 URL 后面加上一些无效的参数。当网站使用百度统计或 Google Analytics 等的时候,这些带参数的URL只要被访问,就会投递至搜索引擎,可能被抓取。
如果网站未做特殊处理,这些带参数的 URL 在WordPress 默认情况下是可以被访问的。
例如:https://yousite.com/?a=发p
甚至参数的值里包含违规字词。
一旦搜索引擎抓取了一定数量的此类 URL 后,网站排名会受到严重打击。还有一些 更损的招,这里就不作介绍了,以免被别有用心的人利用。
如何消除 URL 中的无效参数
通过 Yoast SEO Premium 插件移除 URL 参数
Yoast SEO Premium 插件的 Crawl optimization 选项中,可设置指定参数有效,其它参数则重定向至原 URL。
Yoast SEO > 设置 > 高级 > Crawl optimization:
Yoast SEO Premium Crawl optimization 设置示例
如上图,’s’ 是wordpress-url-remove-parameters.html
location / {
error_page 417 = @noparameters;
recursive_error_pages on;
if ($request_method = POST) { return 417; }
if ($arg_s != “”) { return 417; }
if ($arg_p != “”) { return 417; }
if ($arg_ver != “”) { return 417; }
if ($args ~ “amp”) { return 417; }
if ($arg_preview = “true”) { return 417; }
if ($http_cookie ~* “wordpress_logged_in_”) { return 417; }
if ($http_cookie ~* “comment_author_”) { return 417; }
if ($http_cookie ~* “wp_postpass_”) { return 417; }
if ($is_args){
rewrite ^/(.*)$ /$1? redirect;
}
# BEGIN 安全标头
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options SAMEORIGIN;
add_header X-XSS-Protection “1; mode=block”;
add_header Referrer-Policy “no-referrer-when-downgrade”;
# END 安全标头
try_files $uri $uri/ /index.php?$args;
}
location @noparameters {
# BEGIN 安全标头
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options SAMEORIGIN;
add_header X-XSS-Protection “1; mode=block”;
add_header Referrer-Policy “no-referrer-when-downgrade”;
# END 安全标头
try_files $uri $uri/ /index.php?$args;
}









暂无评论内容