Fork me on GitHub

Hexo博客优化配置之--为自己博客添加搜索引擎网页收录

目录

  1. 1. 前言
  2. 2. 百度
    1. 2.1. 链接提交方式实测
      1. 2.1.1. sitemap
      2. 2.1.2. 自动推送
      3. 2.1.3. 手动提交
    2. 2.2. 主动推送
  3. 3. 谷歌
    1. 3.1. 添加一个资源站
    2. 3.2. 添加站点地图

前言

从今年的一月七号开始,这个 Hexo 博客折腾了差不多十天,在使用 Yilia 这个主题过程中,发现有些地方不太满意,就把源码 fork
下来一版本自己进行折腾。 在折腾这个站内搜索的功能时间最长, 看了网上的一些教程,没有一个搞的顺的。最后自己看着官方文档进行
了尝试,将就着搞的差不多了:
Hexo博客优化配置之–为自己博客添加站内搜索
为了让博客内容尽可能的被百度或者谷歌搜索到,需要将自己的博客上的博客链接添加到搜索引擎收录中。
提醒: 如果你的博客在 github.io 或者 gitcafe.io 上,想添加百度收录的直接 pass 吧。

百度

注意: 经过测试发现 gitcafe 也不能够进行抓取了,以下内容仅是记录当时的尝试过程。

链接提交方式实测

如何选择链接提交方式
1、主动推送:最为快速的提交方式,推荐您将站点当天新产出链接立即通过此方式推送给百度,以保证新链接可以及时被百度收录。
2、自动推送:最为便捷的提交方式,请将自动推送的JS代码部署在站点的每一个页面源代码中,部署代码的页面在每次被浏览时,链接会被自动推送给百度。可以与主动推送配合使用。
3、sitemap:您可以定期将网站链接放到sitemap中,然后将sitemap提交给百度。百度会周期性的抓取检查您提交的sitemap,对其中的链接进行处理,但收录速度慢于主动推送。
4、手动提交:一次性提交链接给百度,可以使用此种方式。
百度站长平台为站长提供链接提交通道,您可以提交想被百度收录的链接,百度搜索引擎会按照标准处理,但不保证一定能够收录您提交的链接。

最新的链接提交入口在百度站长平台>>工具板块左侧菜单栏下选择:网页抓取>>链接提交:
链接提交

sitemap

因为图个方便,在安装了百度 sitemap后直接生成了适合百度的 sitemap ,所以就最先尝试了这个sitemap方式.
结果等了两天也没看状态更新过,一直是等待状态,太2了,是不是故意的.
等待

自动推送

这个简单,直接拷贝代码,放到网页中. 然并卵(笑哭)

1
2
3
4
5
6
7
8
<script>
(function(){
var bp = document.createElement('script');
bp.src = '//push.zhanzhang.baidu.com/push.js';
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(bp, s);
})();
</script>

手动提交

这个简单直接把sitemap里的网址整理出来按照要求上传即可

主动推送

最后试试看主动推送这里参考lovenight 的向百度推送 hexo 博客所有链接的 Python 脚本
不太懂 python ,试着在 mac 下对 python 脚本进行了简单的修改:


#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author: LoveNight
# @Date:   2015-11-16 20:45:59
# @Last Modified by:   lulee007
# @Last Modified time: 2016-01-16 21:06:50
import os
import sys
import json
from bs4 import BeautifulSoup as BS
import requests
import codecs

"""
hexo 博客专用,向百度站长平台提交所有网址

本脚本必须放在 hexo 博客的根目录下执行!需要已安装生成百度站点地图的插件。
百度站长平台提交链接:http://zhanzhang.baidu.com/linksubmit/index
主动推送:最为快速的提交方式,推荐您将站点当天新产出链接立即通过此方式推送给百度,以保证新链接可以及时被百度收录。
从中找到自己的接口调用地址
"""

url = 'http://data.zz.baidu.com/urls?site=YOUR_BLOG_HOST&token=YOUR_TOKEN'
baidu_sitemap = os.path.join(sys.path[0], 'public', 'baidusitemap.xml')
google_sitemap = os.path.join(sys.path[0], 'public', 'sitemap.xml')
# sitemap = [baidu_sitemap, google_sitemap]
sitemap = [baidu_sitemap]

# assert (os.path.exists(baidu_sitemap) or os.path.exists(
#     google_sitemap)), "没找到任何网站地图,请检查!"
assert os.path.exists(baidu_sitemap) , "没找到任何网站地图,请检查!"

# 从站点地图中读取网址列表
def getUrls():
    urls = []
    for _ in sitemap:
        if os.path.exists(_):
            with codecs.open(_, "r", "utf-8") as f:
                xml = f.read()
            soup = BS(xml, "xml")
            tags = soup.find_all("loc")
            urls += [x.string for x in tags]
            if _ == baidu_sitemap:
                tags = soup.find_all("breadCrumb", url=True)
                print("")
                urls += [x["url"] for x in tags]
    return urls

# POST提交网址列表
def postUrls(urls):
    urls = set(urls)  # 先去重
    print("一共提取出 %s 个网址" % len(urls))
    data = "\n".join(urls)
    return requests.post(url, data=data).text

if __name__ == '__main__':

    urls = getUrls()
    result = postUrls(urls)
    print("提交结果:")
    print(result)

如果你也是在 mac 下配置, 直接替换其中的YOUR_BLOG_HOSTYOUR_TOKEN然后运行此脚本即可得到类似的结果:

一共提取出 11 个网址, 提交结果:{'remain':'478','success':'11'}

第二天看一下提交情况:
提交结果
但是在百度进行搜索时site:lulee007.gitcafe.io,还是只能看到一条。
最后想想是不是也不能抓取gitcafe了,进行了诊断。
诊断:然后看到侧边栏还提供了抓取诊断工具,然后进行诊断一下吧,就输入了博客的其中一个链接:
呵呵了:
诊断结果
dns 解析失败,这也抓不了 gitcafe ?

白忙活了(无耐啊)

谷歌

添加一个资源站

打开google console然后右上角有个添加属性按钮。
添加属性
输入博客地址lulee007.github.io,我这里用 github 的地址测试。
点击继续后,会提示验证网站的所有权,
推荐方法
这里采用备用的方法:HTML标记
HTML标记
验证成功后结果:
验证通过结果

添加站点地图

这时打开上面的链接Search Console,或者通过资源列表页查看刚才添加的资源:
资源列表项
点击lulee007.github.io标题就可以进入管理页。
管理概览
在左边的侧边栏依次选择抓取>>站点地图,然后选择右边的添加/测试站点地图:
添加站点地图
添加后:
已添加站点一览
这就完成了,等待一段时间后待谷歌进行抓取就可以,一般第二天看到结果了。
这时我第二天在谷歌搜索得到的结果:
搜索结果
搜索的结果很准确,比百度强很多。

本文总阅读量