在Django中,禁用搜索引擎蜘蛛的@login_required

时间:2011-04-11 20:28:55

标签: django seo web-crawler googlebot login-required

我正在寻找一种干净的方式让搜索引擎蜘蛛绕过@login_required,查看通常需要登录用户的页面。我可以编写自动将搜索引擎记录到虚拟帐户的中间件,但这并不是我所谓的干净。有关更好解决方案的任何建议吗感谢。

3 个答案:

答案 0 :(得分:2)

你为什么要这样做?如果搜索引擎可以看到这些页面,那么任何人都可以在不登录的情况下看到它们,因为这些信息会显示在搜索引擎的结果页面上。在任何情况下,识别蜘蛛或机器人的唯一方法是使用其用户代理字符串,这对欺骗来说是微不足道的。

答案 1 :(得分:2)

不要这样做。这是“隐形”,可以让你被谷歌的索引禁止。

  

隐藏真实内容是指向用户和搜索引擎展示不同内容或网址的做法。根据用户代理提供不同的结果可能会导致您的网站被视为具有欺骗性并从Google索引中移除。

相反,您需要实施Google的首次点击免费解决方案。在此设置中,Google搜索结果中的第一次点击可以查看完整内容,后续点击会被捕获。这可以在引荐者或cookie的基础上完成。您可以在此处阅读有关First Click Free的更多信息:

答案 2 :(得分:0)

我不明白。在“@login_required”中你有一个重要的词:“必需”。如果它是“必需的”,这是有充分理由的。这意味着,为了查看网页,您的凭据是必需的。因为内容是私密的,秘密的等等。

如果您希望通过搜索引擎使您的网页可用,则必须将其公开,因此,登录 不再需要。因此,您的视图不应受@login_required装饰器的保护。

也许您的问题超出了网页的可用性。也许你的内容实际是公开的,你的观点不应受这个装饰者的保护。也许您唯一需要的是为每个用户(已记录或匿名)加载公共部分,并最终加载私有位(如果您的用户已被识别)。

否则,为蜘蛛留下后门绝对是一个坏主意,因为您的私人内容将不再是私人内容。