写在前面
对于访问量低的新站来说,等待搜索引擎收录新内容比较慢,可以通过百度站长平台提供的接口向其主动推送链接,以加快收录。百度站长平台相关功能入口:登陆后点击左侧列表中的链接提交
1、主动推送:最为快速的提交方式,推荐您将站点当天新产出链接立即通过此方式推送给百度,以保证新链接可以及时被百度收录。
2、自动推送:最为便捷的提交方式,请将自动推送的JS代码部署在站点的每一个页面源代码中,部署代码的页面在每次被浏览时,链接会被自动推送给百度。可以与主动推送配合使用。
3、sitemap:您可以定期将网站链接放到sitemap中,然后将sitemap提交给百度。百度会周期性的抓取检查您提交的sitemap,对其中的链接进行处理,但收录速度慢于主动推送。
4、手动提交:一次性提交链接给百度,可以使用此种方式。
P.S.笔者的环境是PHP5.3 + WordPress4.2
一.主动推送
据说是最快的方式,WP中很容易实现,直接编辑functions.php(可以通过WP后台,外观->编辑->模板函数(functions.php)在线编辑,也可以通过FTP工具拿下来改了再放上去,路径为wordpress/wp-content/themes/[currentTheme]/functions.php),在开头注释结束的位置添上filter,如下:
/*submit url*/
function submitUrl($postID, $post) {
$url = 'www.ayqy.net/blog/'.$post->post_name.'/';
$api = 'http://data.zz.baidu.com/urls?site=www.ayqy.net&token=[yourtoken]';
$ch = curl_init();
$options = array(
CURLOPT_URL => $api,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => $url."\n",
CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
//echo $result;
if (function_exists( 'swpsmtp_test_mail' )) {
$email = 'nwujiajie@163.com';
swpsmtp_test_mail( $email, 'Submit Result', $result.'
点我查看原文
' );
}
}
add_action('publish_post', 'submitUrl', 0, 2); // submit url
/*end submit url*/
注意:把上面代码中的[yourtoken]换成从百度站长平台拿到的token
在发布博文时执行filter,拼接得到文章url,再通过curl_exec发送post请求提交url,最后把链接提交结果发送到邮箱(WP发送邮件需要配置SMTP,笔者使用的是Easy WP SMTP插件)
效果还行,每次发布博文都会自动提交链接,缺点是无法提交以前的链接,如果需要提交以前的链接,可以采用sitemap自动提交,下面详细介绍
二.自动推送
…请将自动推送的JS代码部署在站点的每一个页面源代码中…
不考虑,页面加载的JS已经够多了,越来越慢可不好,如果非要用这种方法的话,需要编辑footer.php(和改functions.php的方法一样,文件位置也一样),在