实现重定向的方式有很多种,使用 Javascript 重定向也是比较常见的一种方式。理想情况下,应该使用服务器端的 301、302 或 307 的重定向来实施,这是标准做法。但在没有该级别的访问权限下,那么其它的重定向方式也是可选的。
什么是 JavaScript 重定向?
从本质上讲,JavaScript 重定向是通知用户和网络爬虫某个页面在另一个位置可用的几种方法之一。
它们通常用于通知用户有关 URL 结构的更改,然后,每当有人访问原始 URL 时,浏览器就会加载 JavaScript 文件并执行其中的任何代码。如果脚本包含打开不同 URL 的指令,它会自动执行此操作。
以这种方式进行重定向有多种用途。
例如,您可以切换 URL 而无需手动更新您网站上的每个 URL。此外,JavaScript 重定向可以让搜索引擎更容易找到您自己的内容。
重定向类型的简单概述
服务器端重定向
理想情况下,大多数重定向都是服务器端重定向。
这些类型的重定向源自服务器,这是服务器决定在页面加载时将用户或搜索引擎重定向到哪个位置的地方。服务器通过返回 3xx HTTP 状态代码来执行此操作。
出于 SEO 的原因,大多数时候您可能会使用服务器端重定向。客户端重定向有一些缺点,它们通常适用于更具体的情况。
客户端重定向
客户端重定向是浏览器决定将用户发送到的位置的重定向。除非没有任何其他选择,否则建议使用这些。
JavaScript 重定向
然而,JavaScript 重定向利用 JavaScript 语言向浏览器发送指令以将用户重定向到另一个 URL。大家普遍认为 JavaScript 重定向会导致 SEO 出现问题。
尽管搜索引擎如今确实拥有良好的 JavaScript 渲染能力,但 JavaScript 仍然会出现问题。其他类型的平台也是如此,例如 Spotify 和其他电子商务平台。
但是,如果处于只能使用 JavaScript 重定向作为唯一选择的情况,那么只能使用 JavaScript。
此外,谷歌的 Gary Illyes 在 2020 年表示,JavaScript 重定向“可能不是一个好主意”。
SEO 友好的 JavaScript 重定向
无论使用的是传统重定向还是 JavaScript 重定向,都必须遵循一些最佳方式,以免将 SEO 搞砸。
这些最佳实践包括避免重定向链和重定向循环。
避免重定向链
重定向链是一长串重定向跃点,指的是链中有多个重定向的情况。
重定向链示例:
重定向 1 > 重定向 2 > 重定向 3 > 重定向 4 > 重定向 5
为什么这些不好?谷歌最多只能处理三个重定向,尽管众所周知它们可以处理更多。
Google 的 John Mueller 建议每次重定向少于 5 跳。
理想情况下,重定向目标不要超过一跳。
避免重定向循环
相比之下,重定向循环本质上是重定向的无限循环。当将 URL 重定向到自身时,就会发生这些循环。或者,不小心将重定向链中的 URL 重定向到链中较早出现的 URL。
重定向循环示例:重定向 1 > 重定向 2 > 重定向 3 > 重定向 2
这些循环是灾难性的有几个原因:
对于用户,重定向循环会删除对位于 URL 上的特定资源的所有访问,最终会导致浏览器显示“此页面有太多重定向”错误。
对于搜索引擎,重定向循环可能会严重浪费抓取预算。它们还会给机器人造成混淆。
这会产生所谓的爬虫陷阱,爬虫无法轻易摆脱陷阱,除非手动将其指向其他地方。
修复重定向循环非常简单:要做的就是删除导致链循环的重定向,并将其替换为 200 OK 正常运行的 URL。
总结
如果能设置服务器端的重定向,尽量不要使用 JavaScript 重定向。另外重定向不建议超过1跳。
原文地址:https://www.zhanzhangb.com/5956.html