WordPress忽略爬网程序的初始化

时间:2017-02-07 作者:Lucas Bustamante

我刚刚意识到,像google这样的爬虫程序正在从绑定到“init”的所有add\\u操作触发大量活动。

这是正常行为吗?是否可以仅为合法访客触发“init”?

3 个回复
SO网友:Lucas Bustamante

刚刚将其添加到函数中。php:

// Returns TRUE if it\'s a crawler
function check_is_crawler() {
    if (isset($_SERVER[\'HTTP_USER_AGENT\']) && preg_match(\'/bot|wget|crawl|google|slurp|spider/i\', $_SERVER[\'HTTP_USER_AGENT\'])) {
        return true;
    } else {
        return false;
    }
}
我正在关键功能上使用它,以降低资源使用率。

还创造了一个机器人。包含以下内容的txt:

User-agent: *
Crawl-delay: 10
它会阻止爬虫,这样它们就不会“垃圾邮件”你的网站并消耗你所有的资源

请注意!然而,谷歌根本不喜欢这一点。当访问你的页面时,如果谷歌注意到爬虫和访问者在你的网站上的不同行为,它可能会认为你的网站是垃圾邮件。

谢谢杰克·约翰逊的提示,我将只在内部函数上使用它。这是一个广告网站,有很多东西隐藏起来,无法向用户输出。

SO网友:Marc-Antoine Parent

如果您的网站在每次页面加载时都会消耗大量资源,那么您还应该研究一种缓存解决方案,以帮助您更快地加载页面并减少总体服务器使用率。

如果无法进行缓存,则使用延迟的Cronjobs(即不是WordPress cron,而是好的旧服务器cron)将是一件好事,这样您的访问者就可以随时准备好数据,而不必等待数据编译/刷新。

SO网友:Johansson

对你们两个问题的简短回答是:是的。

谷歌爬虫机器人应该能抓取你网站的每一页并为内容编制索引。因此,当一个来自谷歌的爬虫访问你的网站时,它是合法的。如果您只是想从google中排除一些页面,请使用google webmasters控制台进行操作add_action 对于爬虫。您需要获取用户代理,然后使用if() 在您的主题中functions.php 为爬虫禁用它。网上有很多指南可以帮助你做到这一点Be warned ! 然而,谷歌根本不喜欢这一点。当访问你的页面时,如果谷歌注意到爬虫和访问者在你的网站上的不同行为,它可能会认为你的网站是垃圾邮件。

您可能已经注意到,中有2个渲染输出Fetch as google, 在谷歌网站管理员控制台中。一个是访问者的渲染输出,一个是由google bot渲染的。这两个必须尽可能接近。即使是一个简单的CSS缺失也可能会导致你的网站被google机器人弄得一团糟,随着时间的推移,google会认为你的网站外观是垃圾。

许多网站试图通过为访问者和爬虫提供不同的输出来愚弄搜索引擎。至少谷歌不理解这一点,你的网站有可能因此受到处罚。

相关推荐

CUSTOMIZE_PREVIEW_INIT:监听来自Customizer预览区域的任何更改

我知道我可以通过将以下JS添加到customize_preview_init 挂钩:wp.customize( \'setting-ID\', function ( value ) { value.bind( function( val ) { // things go here } ); } ); 但我能轻松地听到任何变化吗?还是一组变化?例如,我有大量的设置,它们的名称如下:my_settings[setting_a], m