解决Github Pages不被百度收录问题

Posted by Ray on November 3, 2018

查看之前的文章 — 如何使用Jekyll+github搭建博客

使用jekyll+Github搭建博客很久了,一直没管百度收录,刚好就做一下。

一、Netlify Pages

原理:先创建Netlify镜像再通过DNSPOD设定解析线路让百度爬取

1、选择理由

  • 关联GitHub可以实现仓库自动同步部署
  • 与Github一样可以支持自定义域名使用HTTPS
  • 操作简单不复杂

缺点:国内速度还不如Github

2、创建镜像

  1. 注册Netlify账号

  2. 创建一个新站点

  3. 连接到Git提供商(选择github)

  4. 选择一个存储库(选择Github Pages仓库)

  5. 构建选项,并进行部署!

  6. 在GitHub repo中创建一个Gemfile名称的新文件,并向其添加以下内容:

    1
    2
    
    source "https://rubygems.org"
    gem 'github-pages'
    

3、DNSPOD解析

我之前使用的是cloudflare,使用ssl很方便但是不能选择解析线路所以只好用DNSPOD

  1. 添加Github Pages地址记录
    1
    2
    
     @ A记录 默认线路 185.199.*.153  //*处填108、109、110或111
     www CNAMRE 默认线路 username.github.io
    
  2. 添加netlify Pages地址记录
    1
    2
    
     @ A记录 百度线路 104.198.14.52
     www CNAMRE 百度线路 username.netlify.com
    
  3. 等DNS生效后开启Github Pages和netlify Pages的HTTPS

二、Gitlab Pages

原理和操作与Netlify Pages基本相同

1、创建镜像

注册Gitlab账号

中间 2~5 的操作步骤和上面Netlify的一样

然后在GitHub repo中创建一个.gitlab-ci.yml名称的新文件,其添加内容需要参考官方示例

最后到GitLab CI/CD流水线查看或手动运行,等待完成

2、DNSPOD解析和https

Gitlab Pages开启HTTPS需要进行DNS TXT记录验证,并且要自备证书(不友好)

添加Gitlab Pages地址记录

1
2
3
 @ A记录 百度线路 35.185.44.232
 www CNAMRE 百度线路 username.gitlab.io
 XXX TXT 默认线路 XXX  //xxx根据实际替换

等DNS生效,TXT验证成功后,填入证书(PEM格式)密钥(KEY)即可开启Gitlab Pages的HTTPS

三、使用Nginx反代

前提:要有服务器

新的方法具体参见我的另外一篇教程VPS上用Nginx反代给网站做CDN加速

以下为旧内容,不好用

首先在nginx配置目录下,新建一个username.conf的文件,输入以下Nginx的配置内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
server{
      listen 80;
      #替换成自己的域名
      server_name username.com; 
      location / {
          #替换成自己的github pages主页
          proxy_pass         https://username.github.io; 
          proxy_redirect     off;
          proxy_set_header   User-Agent "Mozilla/5.0";
          proxy_set_header   Host               $host;
          proxy_set_header   X-Real-IP          $remote_addr;
          proxy_set_header   X-Forwarded-For    $proxy_add_x_forwarded_for;
       }
 }
 

然后重载Nginx配置

最后去DNS中添加一条线路类型为百度的指向到VPS的ip就行了。

参考文章

[1].Netlify官方文档 — A Step-by-Step Guide: Jekyll 3.0 on Netlify

[2].Netlify官方文档 — Migrating your Jekyll site to Netlify

[3].GitLab官方文档 — GitLab Pages

[4].Github Pages百度索引收录