我正在努力使我们的(很大程度上基于 AJAX 的)网站对搜索引擎更加友好。
我们有一个系统,在设置会话变量以更改主页的行为后,某些网址会重定向到主页。这是使用 Controller.Redirect 方法创建 ActionResult 来实现的。
例如,主页是:
http://radiotuna.com http://radiotuna.com
但如果我们想链接到广播电台,我们使用:
http://radiotuna.com/s/66258 http://radiotuna.com/s/66258
它重定向到主页。但在这种情况下,由于重定向之前设置的会话变量,显示的内容会有所不同。
当出现此重定向时,网络爬虫将索引哪些内容?
这种情况下Session会被保留吗?
据我所知,有几种可能的结果:
- 爬虫遵循重定向,保留会话信息,爬取数据关联http://radiotuna.com/s/66258 http://radiotuna.com/s/66258(期望的结果)
- 爬虫不遵循重定向。如果我们可以发送带有 302 的页面,那就没问题了。这是允许的吗?
- 爬虫遵循重定向,保留会话信息,爬取数据关联http://radiotuna.com/ http://radiotuna.com/ (bad)
- 爬虫遵循重定向,但会话信息被丢弃,因此主(未修改的页面)与http://radiotuna.com/s/66258 http://radiotuna.com/s/66258 (bad)
也许 302 是发回的错误状态。也许在这种情况下使用重定向的想法是有缺陷的。谁能启发我吗?
编辑:我们为什么要这样做?理想情况下,我们希望地址栏中只显示一个 URL,因此我们希望始终重定向到主页。当来自重定向时,这将导致不同的标题和元描述,我们希望爬虫程序拾取这些内容并将其与重定向前的 URL 关联起来。
EDIT2:在这种情况下,检测我们是否被爬虫攻击并在不重定向的情况下交付页面会更好吗?如何检测爬虫客户端?
您确实应该考虑创建一个 xml 站点地图并将其提交给主要搜索引擎。您可以创建像 radiotuna.com/kmtt (我的本地电台)这样的 url,这样对于在结果中看到该 url 的人来说这将意味着一些东西。很容易在您的控制器中处理。
至于索引什么,搜索引擎很挑剔。如果您发送“永久移动”,那么大多数引擎都会记下它们找到的 URL,并在内部使用您的新地址进行更新。但为什么要依赖他们呢?最好自己去做并控制它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)