讓GitHub Pages博客支持百度搜索引擎收錄

原文連接:http://tabalt.net/blog/make-b...node

GitHub Pages搭建的網站,在百度搜索引擎訪問的時候,常常性的會返回 403 forbidden,從而百度會認爲網站訪問不穩定,對網站降權,甚至K站。c++

要想解決這個問題,只有買個VPS本身撘一個jekyll解析博客了。可是個人域名沒有備案,單純用國外的VPS,用戶訪問起來也會有慢的問題,畢竟Github Pages的CDN仍是很牛逼的(頁面響應時間200ms左右)。那有沒有什麼辦法,讓百度爬蟲去抓國外VPS上的內容,普通用戶直接訪問Github Pages呢?git

如今科技這麼發達,這玩意固然是小Case啦。通常大公司內的域名解析是能夠按省、運營商等來作的;你們經常使用的DNSPOD也支持這麼牛逼的功能,免費用戶能夠 按電信、聯通、教育網、百度、搜索引擎等分別設置解析,付費用戶能夠分省、分國家、分大洲等等。對於個人小博客來講,免費的就很是夠用了。github

下面是個人折騰過程,記錄下來備忘。web

安裝Jekyll

  • 編譯安裝Node.jsnpm

Jekyll是基於Ruby開發的,用到了Ruby的execjs方法來執行JavaScript代碼,而這須要本身指定一個JavaScript runtime;這裏咱們選擇安裝Node.js。ruby

sudo yum install libtool automake autoconf gcc-c++ openssl-devel wget

mkdir ~/soft/
cd ~/soft/

wget http://nodejs.org/dist/v0.12.4/node-v0.12.4.tar.gz
tar -zxvf node-v0.12.4.tar.gz
cd node-v0.12.4

./configure --prefix=/usr 
make && sudo make install

node -v
npm -v
  • 安裝Ruby、RubyGems服務器

sudo yum install ruby ruby-devel gem
  • 使用RubyGems安裝Jekylldom

gem install jekyll

搭建博客站點

  • 克隆博客代碼工具

sudo yum install git
sudo mkdir -p ~/mydomain.com/

git clone https://github.com/username/username.github.io.git ./
  • 定時更新博客代碼

配置crontab 2分鐘pull一下代碼:

crontab -e 

# 添加下面的代碼:
*/2 * * * * cd ~/mydomain.com/; git pull >> /tmp/github_blog_pull_record.log 2>&1;
  • 啓動博客站點

Jekyll 2.4 版本以後,會關注文件的變更,自動從新生成靜態文件。使用--detach參數指定在後臺執行,--port指定端口,--host指定當前機器的外網ip。

cd ~/mydomain.com/
jekyll serve --port 80 --host 192.168.1.101 --detach

綁host 測試,能正常訪問則搭建完成。更多Jekyll的用法能夠參考文檔: http://jekyllrb.com/docs/usage/

  • 使用web服務器Nginx

使用前述方式啓動的http服務,會獨佔這臺服務器的 80 端口,若是這臺機器還需部署其餘的web站點,則不得不使用其餘非80的端口。

使用Nginx能夠解決這個問題,配置一個Nginx的vhost,可使用jekyll build --watch &生成博客的靜態內容,並將站點根目錄設置爲 ~/mydomain.com/_site/,這裏不作具體介紹了。

配置智能dns

登陸DNSPOD,進入域名解析的設置頁面,添加一條針對百度的解析:

DNSPOD DNS智能解析設置

後記

以上步驟作完後,再用百度的抓取工具測試,就能正常抓取到內容了。

我作完後次日,本來剩下的8條收錄,立馬變成了1條。固然這個是能夠理解的,畢竟是忽然換了個ip,多發發文章和外鏈,恢復收錄和權重是遲早的事。另外我這個vps在國內訪問仍是有點慢,首次請求返回要500ms左右,仍是得把域名備案了,在國內弄個雲主機才行。

打賞做者

原文連接:http://tabalt.net/blog/make-b...

相關文章
相關標籤/搜索