WordPress 网站 SEO:优化 URL 查询参数以避免重复内容
如果 SEO 中某个 URL 后面带有搜索参数,搜索引擎会将其定义为不同的 URL。例如:www.zhangzhangb.com 和 www.zhangzhangb.com/?from=seo 是两个不同的 URL。即使对应页面的内容完全相同,搜索引擎也会单独索引,导致内容重复。
什么是查询参数?例如,您可以将 ?source=email 或 ?from=example.com 添加到活动页面 URL,以了解您的网站流量来自何处。此功能在 Google Analytics 等跟踪系统中很常见。
您还可以使用参数来支持某些功能。例如,日历插件可以通过将参数 ?year=2023&month=01&day=01
附加到 URL 来浏览到特定日期。这种做法在 Woocommerce 电子商务网站上也很常见,用于过滤类别和产品。
所以带有查询参数的URL会因为参数不同而导致页面内容发生变化。因此,搜索引擎爬虫会区别对待每个查询参数,并分别对其进行索引。
查询参数可能会导致 SEO 问题
当内容相同但附加不同的查询参数时,URL 参数可能会导致 SEO 问题。这是因为 www.zhangzhangb.com 和 www.zhangzhangb.com/?from=seo 在技术上是不同的 URL,但页面内容是相同的。因此,抓取 URL 和链接的搜索引擎必须抓取多个 URL,并且可能会将这些页面视为重复内容。
即使在 HTML 中使用主 URL 标签,如 也会导致搜索引擎爬虫失败。 。额外的抓取会影响网站收录并浪费额外的托管资源。 ——事实上,百度可能会忽略
规范的
标签。
用301过滤无效参数
无效参数表示粘贴查询参数不匹配任何有效函数,显示页面内容不变。此类参数只会导致网站被错误抓取,并会被搜索引擎视为重复内容。
符合条件的参数是指网站所必需的功能查询参数,例如WordPress自带的文章搜索功能,通常是?s=搜索关键词;或者一些必要的Woocommerce需求查询参数等,这些参数必须保留,否则对应的功能无法正常使用。
Nginx 过滤 URL 无效参数
if ($query_string !~* "(s=|ver=)") {
rewrite ^/(.*)$ /$1? permanent;
}
如果上例中的查询参数不包含“s=”或“ver=”等问号(不区分大小写),则所有 URL 参数都会被删除。您可以根据自己网站的实际情况修改"(s=|ver=)"
中的规则。 |
符号对应于单词“或”的含义,例如:
if ($query_string !~* "(条件1|条件2|条件3|……)") {
rewrite ^/(.*)$ /$1? permanent;
}
但是与目标匹配的Nginx URL是与上下文交互的。如果与Nginx配置中的其他指令冲突,则必须进行相应的调整以确保指令生效。
使用Yoast SEO Premium插件过滤无效URL参数
以上方法不建议初学者使用,因为使用Yoast SEO Premium插件更方便、更安全,不会出现因网站错误访问的问题错误的设置。
在 Yoast SEO Premium 插件 > 设置 > 索引优化页面中找到“删除未注册的 URL 参数”选项并启用它。如下图: 删除未注册的URL参数
设置完成后,一定要点击“保存更改”按钮。现在就可以去前端测试一下了。向 URL 添加查询参数将重定向到不带参数的 301 URL。需要注意的是,Yoast SEO 插件仅过滤非登录用户使用的 URL 查询参数,不会影响登录用户。
未来风险
无论上述 URL 查询参数删除方法如何,如果站点依赖查询参数进行关键操作(或跟踪),自动删除这些参数显然会导致问题。因此,安装后,建议执行彻底的测试,以确保有效的查询参数不会被意外删除。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。