利用vercel让百度收录 GitHub Pages 个人博客

很多程序员朋友都有在 GitHub Pages 上搭建自己的个人博客,对于个人博客,没有被搜索引擎收录的话,别人基本是是看不到的,再好的技术文无法被分享也是白搭。
基于 GitHub Pages 的个人博客, Google 收录非常及时全面。然而,到目前为止,GitHub 还是拒绝百度爬虫的访问,直接返回 403。
官方给出原因是,百度爬虫爬得太狠,影响了 Github Pages 服务的正常使用。这就导致了,但凡在 Github Pages 搭建的个人博客,都无法被百度收录。

现有的解决办法

  • 使用 http://coding.net 建立镜像网站
    我之前使用过 http://coding.net,在本地 repo 的配置文件中同时添加 GitHub 和 http://coding.net 远程 repo 地址,发布时,两边都会部署到,加上域名智能解析,对于国内的请求,转发到 Coding Page 即可。
    但是通过 http://coding.net 访问个人主页时会先出现跳转页面,导致百度无法正确爬取。
  • 利用 CDN
    这个没试过,理论上来说,百度在第一次爬取时,CDN 上必须要已经有相应页面的缓存,否则,爬取的请求会被转发到 GitHub 源站,GitHub 还是会拒绝。
  • 使用 Nginx 反向代理
    Nginx 做反向代理,直接代理百度爬虫,去 GitHub Pages 请求,然后将结果返回给百度爬虫。
    这种方式可行,只不过,这些方法都需要一定的定制能力,对于个人开发者,还得买一台 VPS 或者云服务器。

可靠、免费还简单的方法

Guillermo Rauch 大神创业搞了一个静态站 hosting 服务 https://vercel.com,可以通过 GitHub Hooks 实现自动部署,vercel提供 存储 + CDN + DNS 一套完整的服务。
我给个人网站配置完成后,去百度站长试了一下,发现抓取成功了,sitemap 也提交成功了,坐等百度收录。

zeit 网站主要就三个步骤:

  • Github 账户登陆 https://vercel.com,授予 zeit repo 的 read 权限;
    导入 GitHub 博客 repo;
    img
  • 稍等片刻,部署成功。
    img
  • 项目名中的 . 自动替换成 -,生成了一个类似于 xxxx.now.sh 的链接,点击可以访问你的博客主页,这时候静态资源已经部署到 zeit 的边缘 CDN 节点上了,下次你 GitHub 项目的任何更新会触发 zeit 项目更新。
    接下来的就是切换域名,通过智能 DNS 将国内流量切过去。通过 http://zeit.co 提供的 DNS 解析服务配置自己的域名,然后在百度站长里配置信息。
    在 Domains 下为项目添加你的个人域名。
    img
  • 有两张配置方式,一种是改 nameserver,我用的是这种,权威 dns 服务器改成左边那些,我看到你还是用的 dnspod 来解析的。另一种方式,就是保留 dnspod 作为权威 dns 服务器,但是要添加一条 ANAME 记录。

回到 vercel,刷新下,等待一会,等他自动导向,这里是给你签发 https 证书,免费的。

img

本文转载于知乎贾小昆

posted @ 2021-02-09 07:43  chainsR  阅读(965)  评论(0编辑  收藏  举报