Wicket有状态页面导致Googlebot蠕变的过载

时间:2019-01-04 10:59:50

标签: wicket wicket-6

从1.5版开始,我们一直在将Wicket用于多个不同的项目。我们最近将Wicket 8(从6和7升级到了Wicket 8),并且遇到了Google的抓取工具问题。我不确定,当我们使用Wicket 6时,它可能已经开始了,因为它开始潜伏在我们身上...

问题与Wicket在有状态页面的网址中添加pageId(版本)有关,并且该页面上的所有链接都使用相同的ID(ajax链接)。

我们有一个包含许多ajax链接的单页应用程序,并且我们看到googlebot流量每天都在增加。查看访问日志,我发现Google尝试使用pageid大于4 500 000的URL(至少,这只是一个随机样本)(?4529280-1.0-xxxx)。将其乘以每页大约100个链接(如果不是更多的话),您就会发现问题所在。 我们还看到google尝试在pageid仍为0的情况下尝试链接,但rendercount很大(?0-4534543.0-xxxx)。

为什么要打apping?我不认为它曾经发生过,但是在那种情况下,我不知道Wicket是否更改了某些内容,或者Google是否更改了某些内容。

(使用setVersioned(false)没有帮助,因为据我所知,Wicket仍会添加和增加pageId)

我们很幸运地将另一个应用程序更改为使用无状态页面,但是我不确定我们可以用这个应用程序来做到这一点,无论如何,这是相当多的工作...

1 个答案:

答案 0 :(得分:1)

从1.5.0开始,Wicket在URL中对页面ID进行编码的方式没有任何变化,因此对于所有应用程序,它都必须相同。

您可以告诉漫游器不要索引或不跟随页面中包含元元素的链接:

<meta name="robots" content="noindex, nofollow">
<meta name="googlebot" content="noindex, nofollow">

或者您可以使用robots.txt来达到相同的目的。

您还可以将rel="nofollow"用于页面中的特定链接:

<a href="https://www.example.com" rel="nofollow">example</a>

是的,通常建议对公共页面使用无状态页面。对于某些身份验证/授权背后的页面,应使用有状态的页面。