一、写在前面

我的网站已经顺利地从部署在 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),它是这样回答的:

百度站点验证完成后,网站的收录时间会因多种因素而有所不同。通常情况下,收录时间可以从几天到几周不等。以下是一些可以影响百度收录时间的因素和一些加快收录的方法:

一、影响收录时间的因素

  1. 网站质量:

    • 网站内容的质量和原创性是百度搜索引擎最看重的因素。高质量、原创的内容更容易被收录。
  2. 网站结构:

    • 清晰、逻辑性强的网站结构有助于搜索引擎更好地抓取和理解您的网站。确保使用合理的 HTML 标记和结构。
  3. 站点更新频率:

    • 经常更新内容的网站更容易被搜索引擎爬虫光顾,从而加快收录速度。
  4. 外部链接:

    • 其他高质量网站链接到您的网站,有助于提升网站的权重,从而加快收录速度。

二、加快百度收录的方法

  1. 提交站点地图 (Sitemap):

    • 在百度搜索资源平台中,提交您的站点地图(sitemap.xml)。站点地图可以帮助搜索引擎更快地找到和抓取您的网页。
    • 可以在百度搜索资源平台的“数据提交” > “链接提交” > “Sitemap 提交”中添加您的站点地图 URL。
  2. 主动提交 URL:

    • 可以通过百度搜索资源平台的“数据提交” > “链接提交” > “手动提交”和“自动提交”功能,主动提交新发布的 URL。
  3. 建立优质外链:

    • 在其他高权重、高相关性的网站上建立链接指向您的网站,这有助于提升网站的权重和曝光度。
  4. 定期更新内容:

    • 保持网站内容的更新频率,尽量定期发布高质量的原创内容,吸引搜索引擎爬虫经常光顾。
  5. 优化站点速度:

    • 优化网站的加载速度,包括图片压缩、代码优化、使用 CDN 等,提高用户体验,从而有助于搜索引擎的收录。
  6. 检查网站健康状态:

    • 确保网站没有死链、错误页面等问题,使用百度搜索资源平台的“抓取诊断”工具,检查和修复潜在问题。

三、总结

百度完成站点验证后,通常需要几天到几周的时间才会开始收录您的网站。在此期间,您可以通过提交站点地图、主动提交 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

# 定义站点 URL 的前缀
SITE_URL="https://www.wuxx.top"

# 输出文件
OUTPUT_FILE="urls.txt"

# 清空或创建输出文件
> $OUTPUT_FILE

# 遍历 public 目录,生成所有 URL
find public -type f \( -name "*.html" -o -name "*.htm" \) | while read file; do
# 获取相对路径并转换为 URL
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

# 百度 API 提交链接
BAIDU_API_URL="http://data.zz.baidu.com/urls?site=https://you.website.com&token=youtoken"

# URLs 文件
URL_FILE="urls.txt"

# 提交 URLs
curl -H 'Content-Type:text/plain' --data-binary @$URL_FILE $BAIDU_API_URL

终端下进入该目录,赋予脚本文件运行权限

1
chmod +x submit_urls.sh

执行脚本,进行API提交

1
./submit_urls.sh

报错,意思是超过限额了。

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

# 定义站点 URL 的前缀
SITE_URL="https://www.wuxx.top"

# 输出文件
OUTPUT_FILE="urls.txt"

# 清空或创建输出文件
> $OUTPUT_FILE

# 遍历 public 目录,生成所有 URL
find public -type f \( -name "*.html" -o -name "*.htm" \) | while read file; do
# 获取相对路径并转换为 URL
relative_path=$(echo $file | sed 's/^public\///')

# 过滤不必要的 URL
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 会自动生成。
测试一下

1
hexo clean && hexo g

可以看到站点地图文件 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 就开始抓取了。

同样现在也能搜到我的网站了。

六、参考链接