玩命加载中 . . .

SEO 站点优化

一、百度收录

在这之前,需要注意:

GitHub是不允许百度的Spider(蜘蛛)爬取GitHub上的内容的,所以任何部署在GitHub上的静态博客都是不能百度爬取到的!

1.1 提交站点

刚建完站在百度上是不可能搜索到我们的网站的,我们可以先试一下:在百度上搜索 site:<你的域名>,一般是搜不到的,然后点击 提交网址 来先将自己的网站提交给百度。

1.2 添加站点

登录百度搜索资源平台, 只要是百度旗下的账号就可以, 登录成功之后在站点管理中点击添加网站,输入域名,三步走。

第三步验证网站的时候, 验证网站所有权的方式有三种:

  • 文件验证
  • HTML标签验证
  • CNAME解析验证(推荐使用)

同理,百度的spider是爬取不到GitHub的内容的,所以HTML标签验证方式也是不太可取的。

1.3 推送资源

经过以上步骤,百度已经知道有我们网站的存在了,但是百度还不知道我们的网站上有什么内容,所以要向百度推送我们的内容。

还是在百度资源搜索平台,找到数据引入->链接提交,可以看到向百度推送自己的内容有两个方式:

  1. 自动提交

    (分三种)

    • 主动推送
    • 自动推送
    • sitemap(站点地图)
  2. 手动提交

    • 即手动地将链接一次性提交给百度

一般自动提交比手动提交效果好一点,自动提交又从效率上来说:

主动推送 > 自动推送 > sitemap

自动提交的三种方式

  1. 主动推送:最为快速的提交方式。将站点当天新产出链接通过此方式推送给百度,以保证新链接可以及时被百度收录。
  2. 自动推送:最为便捷的提交方式。将自动推送的JS代码部署在站点的每一个页面源代码中,当部署代码的页面在每次被浏览时,链接就会被自动推送给百度。可以与主动推送配合使用。
  3. sitemap:您可以定期将网站链接放到sitemap文件中,然后将sitemap文件提交给百度。百度会周期性的抓取检查您提交的sitemap,对其中的链接进行处理,但收录速度慢于主动推送。

1.3.1 sitemap推送

安装sitemap插件

npm install hexo-generator-sitemap --save 
npm install hexo-generator-baidu-sitemap --save

这两个插件是用来生成 Sitemap文件 的插件,而 Sitemap 是用来告知搜索引擎我们的网站上有哪些可供抓取的网页的。

注意一点:
hexo配置文件中的url一定要改成你的域名,这两个插件是根据你的url生成站点地图的。

安装后直接执行hexo cl&&hexo g命令,然后就会在网站根目录生成sitemap.xml文件和baidusitemap.xml文件,其中sitemap.xml文件是搜索引擎通用的文件,baidusitemap.xml是百度专用的sitemap文件。

sitemap文件之后,再将生成的sitemap文件提交给百度或者其他搜索引擎

百度方式:在自动提交的sitemap那里填写自己sitemap文件的URL地址即可

https://你的域名/baidusitemap.xml

提交后会有状态提示等待,这里需要注意严格区分http和https:

http和https是不一样的,刚添加的站点是HTTP协议的,如果你网站开启了 强制https,是会报301重定向错误的,也就是百度不能抓取到你的sitemap

如果想用https,可以在数据监控->HTTPS认证进行认证

这个认证有时会很慢,可以在你的站点只留一个首页的简单HTML,然后再去百度认证,这样应该会快一点。

如果是其他的搜索引擎,一般是在填写sitemap的地方,填写以下内容即可:

https://你的域名/sitemap.xml

1.3.2 自动推送

只要每个需要被百度爬取的HTML页面中加入一段JS代码即可:

<script>
(function(){
    var bp = document.createElement('script');
    var curProtocol = window.location.protocol.split(':')[0];
    if (curProtocol === 'https') {
        bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
    }
    else {
        bp.src = 'http://push.zhanzhang.baidu.com/push.js';
    }
    var s = document.getElementsByTagName("script")[0];
    s.parentNode.insertBefore(bp, s);
})();
</script>

我所使用的matery主题可以自动给每个页面加上这段代码,只需在主题配置文件中配置:

# 百度搜索资源平台提交链接
baiduPush: true

其他主题一般都有这个功能的实现,如果没有的话,想办法在每个页面加入以上JS代码即可,原理是一样。

1.3.3 主动推送

安装主动推送插件:hexo-baidu-url-submit

npm install hexo-baidu-url-submit --save

然后打开hexo配置文件,在末尾加入以下配置:

# hexo-baidu-url-submit  百度主动推送
baidu_url_submit:
  count: 80 # 提交最新的一个链接
  host: adaichan.com # 在百度站长平台中注册的域名
  token: xxxxxxx # 请注意这是您的秘钥, 所以请不要把博客源代码发布在公众仓库里!
  path: baidu_urls.txt # 文本文档的地址, 新链接会保存在此文本文档里

密匙的获取是在百度的自动提交的主动推送那里。

再加入新的deploy

deploy:
- type: baidu_url_submitter

这样每次执行 hexo d 的时候,新的链接就会被推送了。
推送成功时,会有deploy done!终端提示。

各种不同的推送反馈字段说明点我查看,一般来说,推送失败基本都是地址不相符造成的,我们只需对比baidu_url_submitpublic中生成的baidu_urls.txt的地址,与自己填写在host字段中的地址对比看是否一样即可。

二、谷歌收录

相比于百度,google 的效率实在不能更快,貌似一天左右站点就被收录了,其实方法是和百度是一样的。

2.1 具体步骤

  • 首先登录谷歌站长平台,添加好自己的域名
  • DNS验证(就是验证下网站是不是你的)就是域名解析那里添加一条TXT解析记录
  • 然后点击验证即可
  • 进入谷歌的Search Console,添加自己的sitemap地址
  • 接下来,等就完事嘞

2.2 提交 robots.txt

robots.txt是干嘛的?

robots.txt 是一种存放于网站根目录下的 ASCII 编码的文本文件,它的作用是告诉搜索引擎此网站中哪些内容是可以被爬取的,哪些是禁止爬取的。
robots.txt 要放在 Hexo根目录 下的 source 文件夹中。

每个人站点目录可能不太一样,可以参考下我的 robots.txt 文件,内容如下:

User-agent: *
Allow: /
Allow: /posts/
Disallow: /about/
Disallow: /archives/
Disallow: /js/
Disallow: /css/
Disallow: /contact/
Disallow: /fonts/
Disallow: /friends/
Disallow: /libs/
Disallow: /medias/
Disallow: /page/
Disallow: /tags/
Disallow: /categories/

更多关于 robots.txt 的写法参见 https://blog.csdn.net/fanghua_vip/article/details/79535639

编写完以上内容再重新部署一下,然后到百度资源平台的数据监控->Robots点击检测并更新 看能不能检测到。
同样注意:刚添加的站点没有进行 HTTPS认证,直接检测有可能会报301错误。

2.3 配置 Nofollow

  • nofollow 是HTML页面中 a标签 的 属性值。
  • 这个属性的作用是:告诉搜索引擎的爬虫不要追踪该链接,为了对抗博客垃圾留言信息

三、URL 优化

一般来说,SEO搜索引擎优化认为,网站的最佳结构是 用户从首页点击三次就可以到达任何一个页面,但是我们使用Hexo编译的站点结构的URL是:域名/年/月/日/文章标题四层的结构,这样的URL结构很不利于SEO,爬虫就会经常爬不到我们的文章,于是,我们需要优化一下网站文章的URL

3.1 方案一

直接改成域名/文章标题的形式,在Hexo配置文件中修改permalink如下:

# URL
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: http://adaichan.com
root: /
permalink: :title.html
permalink_defaults:

这个方式有个不好的地方:

直接以文章的标题作为URL,而我们所写的文章的标题一般都是中文,但是URL只能用字母数字和标点符号表示,所以中文的URL只能被转义成一堆符号,而且还特别长。

3.2 方案二

安装固定链接插件:hexo-abbrlink

插件作用:自动为每篇文章生成一串数字作每篇文章的URI地址。每篇文章的Front-matter中会自动增加一个配置项:abbrlink: xxxxx,该项的值就是当前文章的URI地址。

  1. Hexo根目录执行:

    npm install hexo-abbrlink --save
    
  2. Hexo配置文件末尾加入以下配置:

    # hexo-abbrlink config 、固定文章地址插件
    abbrlink:
      alg: crc16  #算法选项:crc16、crc32,区别见之前的文章,这里默认为crc16丨crc32比crc16复杂一点,长一点
      rep: dec    #输出进制:十进制和十六进制,默认为10进制。丨dec为十进制,hex为十六进制
    
  3. Hexo配置文件中修改permalink如下:

    # URL
    ## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
    url: http://adaichan.com
    root: /
    permalink: posts/:abbrlink.html
    permalink_defaults:
    

这样站点结构就变成了:域名/posts/xxx.html


 上一篇
Sass 基础学习 Sass 基础学习
我们知道 CSS 不是编程语言,它没有变量、条件语句,只是单纯一行行的描述,于是很自然的有人就开始为 CSS 加入编程元素,即预处理器。Sass 是门成熟专业的 CSS 扩展语言,相比 Less、Stylus 窝还是撅腚学习这个。
2023-03-06
下一篇 
Gulp 快速入门 Gulp 快速入门
Gulp 是一个用来打包项目的自动化构建工具,主要用来设定程序自动处理静态资源的工作。前端的构建工具有Grunt、Gulp、Webpack、Parcel等,今天的主角相对其他比较简单方便人性化,下面就来介绍一下基础用法。
2023-01-09
  目录