引言
建了博客,部署到网上,肯定也都希望各大搜索引擎能够收录我们的文章,然后别人通过搜索的时候能展示我们的文章,今天就介绍一些如何进行SEO优化。
什么是SEO
通俗的说,就是为了让搜索引擎收录,而做的一些优化策略,这些策略可以统称为SEO。
环境
1 | OS: Windows |
百度收录
百度收录的速度比较慢,但是却是国内的第一大搜索引擎,再苦再累再坑爹,也要做一做嘛~
提交站点
先到这里,登录账号之后:右上角用户中心 -> 然后左侧站点管理 -> 添加网站。
然后就输入你的站点网址,选择一个协议头。我的coding的选择的协议头是http。然后在选择站点属性,自己看着选。
验证站点
提交站点的第三步,单独拿出来说。
这一步,如果是你自己的服务器和域名,选哪一个其实都好说。但是会出现这几种情况:
- 部署到coding,域名用的是coding给的。
- 部署到coding,域名用的是自己的。
- 部署到自己的服务器,自己的域名。
上述三种情况,第三种你选哪个都行,按照教程来都可以。
部署到coding,域名用的是coding给的
这种情况,最好是选择HTML标签验证,文件验证和CNAME验证都不是很好使。
点击HTML标签验证之后,在下面的content
后面的引号内容复制下来:
在站点配置文件中,添加这样一个配置项:1
baidu_site_verification: 刚刚复制的一串字符
注意是下划线_
,不是-
。
再重新生成一下页面,然后同步到coding上。等一会儿在点完成验证。
添加成功之后,就可以在刚刚的站点管理里面看到你的网站了。
部署到coding,域名用的是自己的
这种情况,也推荐是用HEML标签验证,如上。
但是有可能会出现验证不成功,因为绑定自己域名之后,实际上是通过一次跳转进入自己的域名(反正我google验证的时候不能成功)。
sitemap
sitemap是一种用来描述网站的文件,告诉搜索引擎你的网站有哪些网址可以被爬取。
生成sitemap
先安装生成sitemap的插件,在站点的根目录下执行:1
npm install hexo-generator-sitemap --save
不用安装hexo-generator-baidu-sitemap
,有的教程会告诉你,这个是专门针对百度的sitemap,其实根本不是。这个插件本身最开始只是为了本地搜索做的,用的时候,如果标题里面带有&
这种本身有预定义的符号,后续提交的时候会出现解析出错,所以不用安装。
安装好了之后,再生成一次网页,也就是执行一次hexo clean
和hexo g -d
。
然后会在/yoursite/public/
下面看到sitemap.xml
文件。
提交sitemap
打开百度站长平台,进入你刚刚添加的站点。
先点击左侧链接提交:
然后点击sitemap:
填入你的站点名称/sitemap.xml
,或者你有自己的域名,只是在coding
上托管代码,就填入域名/sitemap.xml
(此处感谢Spr_Chan的提醒)。如果不确定的话,可以先把这个链接在浏览器中打开试试,如果打得开而且类似这样就是对的:
然后提交上去,下面会有结果,要不了几秒钟,刷新之后会显示状态正常,后面还有提取的链接数量。
sitemap会定期自动更新。如果添加了新页面,想快速收录的话,可以手动更新文件:
自动推送
自动退送的话,我倒是发现Hexo框架已经给我们集成好了,只需要修改主题配置文件:1
baidu_push: true
将这个改成true
,在你每次执行hexo d
的时候就会自动推送到百度。
手动推送
说是手动推送,肯定不会真的用手去推送啦,肯定是用代码啦~
安装插件
在站点的根目录下执行:1
npm install hexo-baidu-url-submit --save
这个插件的配置文件中包含秘钥,记得把博客源文件托管到私有仓库里。
提取主动推送Key
在刚刚的sitemap旁边有一个主动推送:
点击这个修改准入秘钥
,打开之后将秘钥复制,不修改,下面配置文件中会用到这个秘钥。
修改配置文件
在站点配置文件中添加如下配置项:1
2
3
4
5baidu_url_submit:
count: 100 ## 比如100,代表提交最新的一百个链接
host: guoyanjun.top ## 在百度站长平台中注册的域名
token: your_token ## 刚刚复制的秘钥,不要公布到任何地方。
path: baidu_urls.txt ## 文本文档的地址,新链接会保存在此文本文档里
然后还要在deploy
里面添加新的配置项:1
2
3
4
5
6
7deploy:
- type: git # 原来就有的
repo: 巴拉巴拉
branch: master
message: blog update
- type: baidu_url_submitter # 注意,这个为新增的
记得改成上面那种形式,type
前面有一个-
,然后下面的配置项和type
对齐。
然后在执行hexo generate
的时候就会生成新链接的文本文件。
在执行hexo deploy
的时候会主动提交新链接。
谷歌收录
谷歌收录点这里,步骤和上述的百度收录差不多,所以就不赘述了。
谷歌收录的话,只用sitemap提交就可以很快的收录啦~
百度收录真的慢,我的到现在一个星期,主页都没收进去,谷歌收录提交,两三天都收了几面了
添加蜘蛛协议
蜘蛛协议就是告诉爬虫,你的哪些文件爬虫可以爬取,哪些不能的文件。
新建一个robots.txt
文件,添加以下内容,然后放到/yoursite/source/
文件夹下面:1
2
3
4
5
6
7
8
9
10
11
12User-agent: *
Allow: /
Allow: /archives/
Allow: /tags/
Allow: /categories/
Allow: /about/
Disallow: /js/
Disallow: /css/
Disallow: /lib/
Sitemap: 刚刚sitemap的地址
执行hexo clean
,hexo g -d
,就同步到了coding上了。
在百度站长平台,左侧,Robots
里面可以检测你写的是否正确:
优化URL
优化RUL的话,就是减少URL的层数,也就是/
的数量。具体的可以看我另一篇关于写作的文章。
禁止爬虫跟踪外链
当你提交了链接,写好了蜘蛛爬取协议之后,搜索引擎的蜘蛛就会来爬取你的文章内容。但是,如果你的文章中有外链,蜘蛛就会通过这个链接到别人的站点去。如果这个站点是友情链接还好,如果是非友链,就回严重影响网站的爬取。
为了避免蜘蛛进入非友情链接,需要为非友链添加上nofollow
属性。推荐使用hexo-autonofollow
插件。
在站点根目录下执行:1
npm install hexo-autonofollow --save
修改站点配置文件,添加如下内容:1
2
3
4
5nofollow:
enable: true
exclude: # 例外链接
- 你自己的站点地址
- 友链地址
这样,例外的链接就不会被加上nofollow
属性。
插件自动添加的属性为external nofollow noopener noreferrer
。一般来说标准的nofollow
属性只需要external nofollow
即可,noopener noreferrer
估计是新闻上说的钓鱼漏洞的补救方法,不过这条属性会影响站长工具的友链检测。
如果想要去掉noopener noreferrer
,修改/yoursite/node_modules/hexo-autonofollowlib/filter.js
:1
rel: 'external nofollow noopener noreferrer'
去掉其中的noopener noreferrer
,再生成即可。