搜索引擎禁止的方式优化网站(谷歌及百度两大搜索引擎分别使用两种不同的方法介绍介绍)
优采云 发布时间: 2022-03-27 15:03搜索引擎禁止的方式优化网站(谷歌及百度两大搜索引擎分别使用两种不同的方法介绍介绍)
网站SEO优化前言
SEO是英文Search Engine Optimization的缩写,中文翻译为“搜索引擎优化”。
建站之初,各个搜索引擎都搜不到我们的网站,首先要做的是让各大搜索引擎收录我们的网站,爬虫去爬网站@ >,为了通过搜索引擎找到我们的网站。对于 Hexo 博客,如果你部署在 GitHub Pages 上,那么你就不能是百度 收录,因为 GitHub 禁止百度爬虫,最常见的解决方案是部署到 Coding Pages 和 GitHub Pages,这样百度爬虫可以爬取Coding上的内容,从而实现百度收录。另外百度收录时间比较长,半个月左右才能看到效果!
判断你的站点是否是收录: 在搜索引擎中输入site:,如果如下图所示,说明我们的网站不是百度收录。
下面用两种不同的方法来介绍如何借助谷歌和百度两大搜索引擎收录网站。
一、百度收录(1),验证网站所有权
登录百度站长搜索资源平台,登录成功后点击站点管理中的添加网站。
注意这里需要输入我们购买的域名,不能使用xxx.github.io等域名。因为github不允许百度的蜘蛛(spider)爬取github上的内容,所以如果你想让你的网站被百度收录使用,只能使用你购买的域名。
填写URL后,需要验证网站的所有权。验证网站所有权的三种方式:
这里我们以使用文件验证的第一种方式介绍网站收录。
将验证文件下载到根目录下的源文件夹中。
使用 vi 命令写入验证文件。为防止文件Hexo被解析,将验证文件上方的布局设置为layout: false:
---
layout: false
---
如图所示:
收录网站需要放在目录根文件下的验证文件是指部署生成后文件夹的根目录,即需要生成到本地公用文件夹中,或者部署到远程仓库的根目录。所以我们直接把验证文件放在本地博客的根目录下,无法部署生成到远程仓库。
根目录下的源文件夹:除了_posts文件夹外,以_(下划线)开头的文件/文件夹和隐藏文件都将被忽略。Markdown 和 HTML 文件被解析并放置在公共文件夹中,而其他文件则被复制到那里。
因此,将验证文件放在源文件夹中,并设置 layout: false 以防止被解析。为了将原创验证文件正确部署到远程仓库的根目录。
重新部署到远程存储库后,单击验证。
(2), 生成 网站 地图
站点地图的作用是告诉搜索引擎你的 网站 结构和其他信息,以便搜索引擎可以更智能地抓取内容。我们需要使用npm自动生成网站的sitemap,然后将生成的sitemap提交给百度等搜索引擎。
安装站点地图插件
npm install hexo-generator-sitemap --save
npm install hexo-generator-baidu-sitemap --save
修改博客配置文件
修改根目录配置文件.yml中的url为你的站点地址
执行hexo g命令后,会在网站根目录下生成sitemap.xml文件和baidusitemap.xml文件。你可以通过:你的域名/baidusitemap.xml查看文件是否生成,其中sitemap.xml文件是搜索引擎常用的文件,baidusitemap.xml是百度专用的sitemap文件。
提交百度链接
然后我们可以将我们生成的sitemap文件提交给百度,或者在百度站长平台上找到链接提交。在这里我们可以看到有三种提交方式,API提交和sitemap,手动提交。另一种方式是添加自动提交JS代码。
如何选择链接提交方式
API提交:最快的提交方式。建议您立即通过此方式将站点的新输出链接推送至百度,以保证百度收录能够及时提交新链接。
自动推送:最便捷的提交方式。请在本站各页面源码中部署自动推送的JS代码。每次浏览部署代码的页面,链接都会自动推送到百度。可以与主动推送一起使用。
**sitemap**:您可以定期将网站链接放入sitemap,然后将sitemap提交给百度。百度会定期爬取检查你提交的站点地图,并处理里面的链接,但是收录速度比主动推送慢。
手动提交:一次性提交链接到百度,可以使用这种方式。
一般来说,主动提交优于手动提交。下面介绍三种主动提交的方法。
在效率方面:
API 提交 > 自动提交 > 站点地图
API 提交
安装插件 hexo-baidu-url-submit
npm install hexo-baidu-url-submit --save
baidu_url_submit:
count: 80 # 提交最新的多少个链接
host: www.sunhwee.com # 在百度站长平台中添加的域名
token: xxxxxxxxxxxxxx # 请注意这是您的秘钥, 所以请不要把博客源代码发布在公众仓库里!
path: baidu_urls.txt # 文本文档的地址, 新链接会保存在此文本文档里
然后添加一个新的部署部署:
deploy:
- type: baidu_url_submitter
如图所示:
获取key的位置在网页抓取中的链接提交块中,如下:
执行 hexo deploy 会推送新的链接。
API 提交
在主题配置文件设置下,将baidupush设置为true:
# 百度搜索资源平台提交链接
baiduPush: true
然后在主题文件目录下添加如下代码,一般在/themes/matery/layout/_partial目录下的head.ejs中添加如下JS代码(可能你的目录不是这样的,原理差不多),这样整个网站有:
(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);
})();
这将在您每次访问博客中的页面时自动向百度提交站点地图。
站点地图法
只需将我们上一步生成的sitemap文件提交到百度即可~
让我们看看到目前为止的结果:
看了之后,收录结果还没出来。太慢了。
二、谷歌收录
与百度相比,谷歌的效率再快不过了。似乎该站点将在大约一天后变为 收录。其实方法和百度一样。
(1),验证 网站 所有权
谷歌收录用别的方法收录,不用下载验证文件放到根目录下,加个DNS解析记录就好了~
登录:
添加您自己的域名:
验证所有权
复制生成的记录:
登录自己域名的provider网站添加解析记录:
然后点击验证
(2),生成一个站点地图到谷歌的搜索控制台,添加你自己的站点地图地址
使用之前生成的sitemap,部署完成后可以直接进入:
收录成功
接下来,您只需要等待。与百度相比,谷歌的时间会非常快。
三、其他SEO优化(1),提交robots.txt:
等谷歌收录后,发现搜索结果中有一些我们不需要在搜索结果中显示的页面:
面对这样的问题,我可以在网站的根目录下添加robots.txt文件。robots.txt 是一个 ASCII 编码的文本文件,存储在 网站 的根目录中。它的作用就是告诉这个网站里面哪些内容可以被搜索引擎抓取,哪些内容是禁止抓取的。
robots.txt 放在博客目录下的源文件夹中,博客是在站点目录/public/ 下生成的。
每个人的内容都不一样,给个参考:
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/
写完上面的内容,重新部署一遍,然后去百度资源平台的数据监控->机器人点击检测更新看看能不能检测到。
也可以进入Google Search Console-crawl-robots.txt测试工具进行测试。
(2),网址优化
一般来说,SEO搜索引擎优化认为网站的最佳结构是用户从首页点击三下就可以到达任意页面,但是我们用Hexo编译的站点结构的URL是:域名/年份/月/日/文章标题的四层结构,这样的URL结构不利于SEO,爬虫往往会爬不到我们的文章,所以需要优化< @网站文章@的 URL>
直接改成域名/文章标题的形式,修改Hexo配置文件中的permalink如下:
# URL
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: https://blog.sky03.cn
root: /
permalink: :title.html
permalink_defaults:
这种方法有一个缺点:
直接用文章的标题作为URL,而我们写的文章的标题一般都是中文的,但是URL只能用字母数字和标点符号表示,所以中文URL只能转义成一堆符号,而且也很长。
安装永久链接插件:hexo-abbrlink
插件功能:自动为每篇文章文章生成一串数字作为每篇文章文章的URI地址。每个文章的Front-matter会自动添加一个配置项:abbrlink:xxxxx,该项的值为当前文章的URI地址。
Hexo 根目录执行:
npm install hexo-abbrlink --save
在 Hexo 配置文件末尾添加如下配置:
# hexo-abbrlink config 、固定文章地址插件
abbrlink:
alg: crc16 #算法选项:crc16、crc32,区别见之前的文章,这里默认为crc16丨crc32比crc16复杂一点,长一点
rep: dec #输出进制:十进制和十六进制,默认为10进制。丨dec为十进制,hex为十六进制
Hexo配置文件中修改permalink如下:
# URL
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: https://blog.sky03.cn
root: /
permalink: posts/:abbrlink.html
permalink_defaults:
这样,网站结构就变成了:域名/posts/xxx.html