一、写在前面
我的网站已经顺利地从部署在 GitHub Pages 转移部署到 Vercel。具体可以看我上一篇文章 使用 Vercel 部署 Hexo 博客。这一篇来说说如何让搜索引擎(如百度、谷歌)收录我的网站。
如何知道自己的网站是否被搜索引擎收录?在搜索引擎搜:site:你的网站域名
,如果搜不到,说明未被收录。
二、关键概念
1、站点所有权
搜索引擎需要验证你所提交的网址是真正属于你的。
确保你对你的网站拥有完整的控制权,并能够利用搜索引擎工具来监控,管理和优化你的网站在搜索结果中的表现。
2、站点地图 Sitemap
站点地图 Sitemap 是一个 XML 文件,列出了你网站上所有页面以及页面的重要信息,比如最后更新时间、更新频率和优先级等。
它的作用有几个方面:
1、帮助搜索引擎了解网站结构:站点地图提供了网站的全貌,让搜索引擎能够更有效地发现和理解你的网站上的所有页面,而不仅仅依靠爬虫来跟随内部链接。
2、改善网站索引效率:有了站点地图,搜索引擎可以更快速地发现新的页面和更新的内容,并及时更新索引。这对于大型网站或频繁更新内容的网站尤为重要。
3、指导搜索引擎爬虫:站点地图中的信息可以告诉搜索引擎哪些页面是最重要的,以及这些页面的更新频率。这有助于搜索引擎优先爬取重要页面,提高它们被收录的速度和机会。
4、排除不需要被索引的页面:你可以在站点地图中排除一些不希望被搜索引擎索引的页面,比如登录页面、支付页面等,以确保搜索引擎专注于索引你希望被用户查找的内容。
三、百度收录
打开 百度资源平台,点击 用户中心 - 站点管理 进入站点管理页面。
如果未登录,需要先登录。登录完成,可以看到 添加网站 的入口。
添加站点前要求完善个人信息
填写个人网站
勾选网站属性
网站验证,这一步的步骤主要是为了证明网站是你的。百度提供了两种验证方式。
1、文件验证:
2、HTML标签验证
1、文件验证
写在前面:Hexo + Butterfly 生成的站点无法使用 文件验证
,详见下文。
如果选择文件验证,下载百度提供的 HTML 文件,放在 /站点根目录/source/ 下,
执行 hexo generate
查看文件已经复制到 /站点根目录/public/ 中。
当然这里只是检查生成后文件是否正常复制到网站根目录下,正常 hexo generate
这个步骤是更新 GitHub 仓库后,Vercel 会自动部署。
部署完成后,验证文件是否能够正常打开
可以正常打开,点击 完成验证
一开始我以为这就万事大吉了。不出意外,要出意外了。
果然 hexo generate
之后修改了文件。看来只能用 HTML标签验证 了。
2、HTML标签验证
将以下代码添加到您的网站首页 HTML 代码的
标签与标签之间.1
| <meta name="baidu-site-verification" content="xxxxx" />
|
对于 Butterfly 主题来说,则是在主题配置文件 _config.butterfly.yml 中配置。
配置完成需要重新部署到线上,然后点击 完成验证。
验证成功,接下来就是等百度主动爬取我们的网站。它这里还建议向百度搜索主动推送资源,缩短爬虫发现网页链接时间。
点击 提交资源,是跳转到一个文档链接 普通收录。
关闭提示弹窗后,跳转到 站点属性 设置页面。这里我暂时不做配置,后面再看看。
3、普通收录
至于网站多久能够被百度收录,我问了下 ChatGPT (GPT-4o),它是这样回答的:
百度站点验证完成后,网站的收录时间会因多种因素而有所不同。通常情况下,收录时间可以从几天到几周不等。以下是一些可以影响百度收录时间的因素和一些加快收录的方法:
一、影响收录时间的因素
网站质量:
- 网站内容的质量和原创性是百度搜索引擎最看重的因素。高质量、原创的内容更容易被收录。
网站结构:
- 清晰、逻辑性强的网站结构有助于搜索引擎更好地抓取和理解您的网站。确保使用合理的 HTML 标记和结构。
站点更新频率:
- 经常更新内容的网站更容易被搜索引擎爬虫光顾,从而加快收录速度。
外部链接:
- 其他高质量网站链接到您的网站,有助于提升网站的权重,从而加快收录速度。
二、加快百度收录的方法
提交站点地图 (Sitemap):
- 在百度搜索资源平台中,提交您的站点地图(sitemap.xml)。站点地图可以帮助搜索引擎更快地找到和抓取您的网页。
- 可以在百度搜索资源平台的“数据提交” > “链接提交” > “Sitemap 提交”中添加您的站点地图 URL。
主动提交 URL:
- 可以通过百度搜索资源平台的“数据提交” > “链接提交” > “手动提交”和“自动提交”功能,主动提交新发布的 URL。
建立优质外链:
- 在其他高权重、高相关性的网站上建立链接指向您的网站,这有助于提升网站的权重和曝光度。
定期更新内容:
- 保持网站内容的更新频率,尽量定期发布高质量的原创内容,吸引搜索引擎爬虫经常光顾。
优化站点速度:
- 优化网站的加载速度,包括图片压缩、代码优化、使用 CDN 等,提高用户体验,从而有助于搜索引擎的收录。
检查网站健康状态:
- 确保网站没有死链、错误页面等问题,使用百度搜索资源平台的“抓取诊断”工具,检查和修复潜在问题。
三、总结
百度完成站点验证后,通常需要几天到几周的时间才会开始收录您的网站。在此期间,您可以通过提交站点地图、主动提交 URL、定期更新内容等方式来加快收录过程。同时,确保您的网站结构清晰、内容高质量,并建立一些优质的外部链接,可以有效提升网站的权重和收录速度。
在 站点管理 - 普通收录 中,可以找到 提交URL 和 提交sitemap 的方式。
其中 提交URL 有两种方式,分别是 API提交 和 手动提交,这两种实际上是一样的。
这几种方式,也有对应的文档说明。
- API推送:最为快速的提交方式,建议您将站点当天新产出链接立即通过此方式推送给百度,以保证新链接可以及时被百度收录。
- sitemap:您可以定期将网站链接放到Sitemap中,然后将Sitemap提交给百度。百度会周期性的抓取检查您提交的Sitemap,对其中的链接进行处理,但收录速度慢于API推送。
- 手动提交:如果您不想通过程序提交,那么可以采用此种方式,手动将链接提交给百度。
不清楚什么原因,我的站点 sitemap 提交的额度为 0。有可能是刚验证通过的原因?
这里我先测试下 API推送。
4、API推送
API推送 首先得有要推送的网站链接吧,当然我们也不可能一条一条去整理出来.
hexo generate
生成的站点,都在 /项目根目录/public/ 下面,因此可以通过写脚本的方式,遍历扫描出所有链接。
在 /项目根目录/ 下新建一个文件 generate_urls.sh 内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| #!/bin/bash
SITE_URL="https://www.wuxx.top"
OUTPUT_FILE="urls.txt"
> $OUTPUT_FILE
find public -type f \( -name "*.html" -o -name "*.htm" \) | while read file; do relative_path=$(echo $file | sed 's/^public\///') url="$SITE_URL/$relative_path" echo $url >> $OUTPUT_FILE done
echo "URLs have been saved to $OUTPUT_FILE"
|
终端下进入该目录,赋予脚本文件运行权限
1
| chmod +x generate_urls.sh
|
执行后即可在同目录下得到 urls.txt 文件,存放了所有链接。
内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| https://www.wuxx.top/page/2/index.html https://www.wuxx.top/2024/04/17/hexo-new-page/index.html https://www.wuxx.top/2024/04/17/build-my-blog/index.html https://www.wuxx.top/2024/04/24/modify-git-remote/index.html https://www.wuxx.top/2024/04/25/github-pages-slow/index.html https://www.wuxx.top/2024/04/25/about-hexo-theme/index.html https://www.wuxx.top/2024/05/20/gulp-compresses-the-website/index.html https://www.wuxx.top/2024/05/27/algolia-use/index.html https://www.wuxx.top/2024/05/28/site-chat-online/index.html https://www.wuxx.top/2024/05/07/image-compression-tools/index.html https://www.wuxx.top/2024/05/30/butterfly-icon/index.html https://www.wuxx.top/2024/05/08/hk-one-day-travel/index.html https://www.wuxx.top/2024/05/14/openai-api/index.html https://www.wuxx.top/2024/05/22/twikoo-use/index.html https://www.wuxx.top/2024/06/03/vercel-deploy/index.html https://www.wuxx.top/2024/06/04/website-search/index.html https://www.wuxx.top/index.html https://www.wuxx.top/gallery/index.html https://www.wuxx.top/gallery/hk20240405/index.html https://www.wuxx.top/gallery/hk20181005/index.html https://www.wuxx.top/archives/page/2/index.html https://www.wuxx.top/archives/2024/04/index.html https://www.wuxx.top/archives/2024/page/2/index.html https://www.wuxx.top/archives/2024/05/index.html https://www.wuxx.top/archives/2024/index.html https://www.wuxx.top/archives/2024/06/index.html https://www.wuxx.top/archives/index.html https://www.wuxx.top/about/index.html https://www.wuxx.top/tags/GitHub-Pages/index.html https://www.wuxx.top/tags/Butterfly/index.html https://www.wuxx.top/tags/Hexo主题/index.html https://www.wuxx.top/tags/TinyPNG/index.html https://www.wuxx.top/tags/index.html https://www.wuxx.top/tags/Vercel/index.html https://www.wuxx.top/tags/Baidu/index.html https://www.wuxx.top/tags/Gulp/index.html https://www.wuxx.top/tags/Twikoo/index.html https://www.wuxx.top/tags/chatra/index.html https://www.wuxx.top/tags/ImageOptim/index.html https://www.wuxx.top/tags/个人博客/index.html https://www.wuxx.top/tags/iconfont/index.html https://www.wuxx.top/tags/Qmsg/index.html https://www.wuxx.top/tags/Netlify/index.html https://www.wuxx.top/tags/Algolia/index.html https://www.wuxx.top/tags/CDN/index.html https://www.wuxx.top/tags/AI/index.html https://www.wuxx.top/tags/SMTP/index.html https://www.wuxx.top/tags/HongKong/index.html https://www.wuxx.top/tags/Icon/index.html https://www.wuxx.top/tags/Hexo/page/2/index.html https://www.wuxx.top/tags/Hexo/index.html https://www.wuxx.top/tags/travel/index.html https://www.wuxx.top/tags/Font-Awesome/index.html https://www.wuxx.top/tags/Imagine/index.html https://www.wuxx.top/tags/OpenAI/index.html https://www.wuxx.top/baidu_verify_codeva-RKh0f3mouv.html https://www.wuxx.top/categories/index.html https://www.wuxx.top/categories/旅行/index.html https://www.wuxx.top/categories/AI/index.html https://www.wuxx.top/categories/工具/index.html https://www.wuxx.top/categories/Hexo/page/2/index.html https://www.wuxx.top/categories/Hexo/index.html
|
为了将 urls.txt 内容进行提交,在同个目录下写一个 API 调用脚本 submit_urls.sh
注意替换成你自己的站点和秘钥
1 2 3 4 5 6 7 8 9 10
| #!/bin/bash
BAIDU_API_URL="http://data.zz.baidu.com/urls?site=https://you.website.com&token=youtoken"
URL_FILE="urls.txt"
curl -H 'Content-Type:text/plain' --data-binary @$URL_FILE $BAIDU_API_URL
|
终端下进入该目录,赋予脚本文件运行权限
执行脚本,进行API提交
报错,意思是超过限额了。
1
| {"error":400,"message":"over quota"}
|
将 urls.txt 移除到剩下一条,再次提交,成功了。
泪目啊,一天只能提交 10 条。只能分天进行提交了。
当然,这里的提交,还不能说明立马就被收录了,只能说可以缩短百度的收录时长。
1
| {"remain":9,"success":1}
|
5、排除非必要链接
当然,并不是站点的所有的链接都需要被搜索引擎收录。比如临时页面、系统页面、管理页面、搜索页面、标签页、分类页,相册页等都没必要让搜索引擎收录。
这里我们需要分两步处理,一是在主动提交URL时进行排除,二是在根目录放置 robots.txt 文件 来告诉搜索引擎哪些页面可以抓取,哪些页面不要抓取。
这里优化下 URL 提取脚本 generate_urls.sh,过滤不必要的 URL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| #!/bin/bash
SITE_URL="https://www.wuxx.top"
OUTPUT_FILE="urls.txt"
> $OUTPUT_FILE
find public -type f \( -name "*.html" -o -name "*.htm" \) | while read file; do relative_path=$(echo $file | sed 's/^public\///')
if [[ $relative_path == tags/* ]] || [[ $relative_path == categories/* ]] || [[ $relative_path == archives/* ]] || [[ $relative_path == page/* ]] || [[ $relative_path == search/* ]] || [[ $relative_path == gallery/* ]]; then continue fi
url="$SITE_URL/$relative_path" echo $url >> $OUTPUT_FILE done
echo "URLs have been saved to $OUTPUT_FILE"
|
这时候提取出来的链接就只剩下这些,主要都是文章页面:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| https://www.wuxx.top/2024/04/17/hexo-new-page/index.html https://www.wuxx.top/2024/04/17/build-my-blog/index.html https://www.wuxx.top/2024/04/24/modify-git-remote/index.html https://www.wuxx.top/2024/04/25/github-pages-slow/index.html https://www.wuxx.top/2024/04/25/about-hexo-theme/index.html https://www.wuxx.top/2024/05/20/gulp-compresses-the-website/index.html https://www.wuxx.top/2024/05/27/algolia-use/index.html https://www.wuxx.top/2024/05/28/site-chat-online/index.html https://www.wuxx.top/2024/05/07/image-compression-tools/index.html https://www.wuxx.top/2024/05/30/butterfly-icon/index.html https://www.wuxx.top/2024/05/08/hk-one-day-travel/index.html https://www.wuxx.top/2024/05/14/openai-api/index.html https://www.wuxx.top/2024/05/22/twikoo-use/index.html https://www.wuxx.top/2024/06/03/vercel-deploy/index.html https://www.wuxx.top/2024/06/04/website-search/index.html https://www.wuxx.top/index.html https://www.wuxx.top/about/index.html
|
robots.txt 放置在 /Hexo项目根目录/source 下。
重新生成并部署到线上,以确保该文件被生成。内容如下
1 2 3 4 5 6 7
| User-agent: * Disallow: /tags/ Disallow: /categories/ Disallow: /archives/ Disallow: /page/ Disallow: /search/ Disallow: /gallery/
|
检测 robots.txt 文件是否生效
6、手动提交
上面实测了 API提交 限额是10条/天,这就没意思了,还不如直接在这里手动提交。
不过,在我 API提交 提交了10条之后,这里再提交会提示:您今日的链接提交量已达上限,请改天提交。
就。。。额,这很难评。
接下来就是等待啦,别无他法。
四、谷歌收录
1、添加域名
打开 Google Search Console,需要科学上网。
点击 立即使用 ,如果未登录则需要先登录。
添加域名,这里分两种。
具体区别如下:
1、域名(Domain)
- 适用于包含所有子域和协议的所有 URL,例如 m.example.com、www.example.com、http 和 https。
- 需要进行 DNS 验证。
- 如果你希望全面跟踪整个域名下的所有内容,这个选项更适合你。
2、网址前缀(URL Prefix)
- 仅包含特定协议和路径下的 URL,例如 https://www.example.com。
- 支持多种验证方法,包括 HTML 文件、HTML 标记、Google Analytics 等。
- 如果你只想跟踪特定路径或协议下的内容(例如只跟踪 HTTPS 协议下的内容),这个选项更适合你。
2、站点验证
这里我选择第一种,填入 wuxx.top,点击 继续。
进行 DNS记录验证域名所有权
因为我是阿里云购买的域名,因此需要到阿里云平台上进行配置
配置完成后,稍等一会,点击 验证,验证通过后提示如下
控制面板查看数据,似乎只能查看往前推两天的。目前还没有数据。
3、站点地图
Hexo 博客使用 hexo-generator-sitemap 这个插件来生成站点地图。
首先在站点根目录下执行以下命令,以安装该插件
1
| npm install hexo-generator-sitemap --save
|
在配置文件 _config.yml 中对该插件进行配置
配置参数:
参数 | 说明 |
---|
path | 站点地图的路径。 |
template | 自定义模板路径。此文件将用于生成sitemap.xml(参见默认的XML模板)。 |
template_txt | 自定义模板路径。此文件将用于生成sitemap.txt(参见默认的TXT模板)。 |
rel | 是否在网站的头部添加 rel-sitemap。作用是帮助搜索引擎爬虫更有效地索引网站内容(默认:false) |
tags | 是否添加站点的标签。 |
categories | 是否添加站点的分类。 |
我的配置:
1 2 3 4 5 6
| sitemap: path: - sitemap.xml rel: true tages: false categories: false
|
执行 hexo generate
会自动生成。
测试一下
可以看到站点地图文件 sitemap.xml 已经生成。
部署到线上后,https://www.wuxx.top/sitemap.xml 可以直接访问到这个文件。
填写到 Google Search Console 平台上
如果状态显示 抓取失败,等待一段时间后再刷新看看
五、收录结果
1、百度
我在 2024-06-04 进行配置的,在 2024-06-08 就有抓取数据了。
但是我并不确定是否在 2024-06-08 就能搜索到我的网站。
我在 2024-06-17 是能搜索到的,但是在 2024-06-18 号又搜索不到了。很奇怪。
2、谷歌
谷歌的效率比价高,隔了两天,也就是在 2024-06-06 就开始抓取了。
同样现在也能搜到我的网站了。
六、参考链接