如何把網站從http轉換成https

如何把網站從http轉換成https

近兩年的情況表明,網站啟用https已是大勢所趨。使用https加密目前看有利有弊。利,首先是安全,減少被劫持、篡改的機會。弊,主要是速度上的,由於證書驗證、多次握手、CPU消耗等原因,https頁面速度會被拖慢一點。但https無疑是未來趨勢。

 

改為https對SEO按說應該有好處,不過實際情況如何還有待驗證。Google方面早就表明https是排名因素之一,雖然只是個很小因素。百度以前曾經提到過,百度不會主動抓取https頁面,但2015年百度站長平台發布消息,百度對https頁面優先收錄、優先排名:

 

從相關性的角度,百度搜尋引擎認為權值相同的站點,採用https協議的頁面更加安全,排名上會優先對待。

 

此次技術升級之後,百度搜尋將同一個域名的http版和https版作為一個站點來處理,優先收錄https頁面;

 

從http改到https後的一段時間,搜尋引擎需要重新抓取、判斷、計算,收錄,排名和流量都可能有起伏。說是起伏,恐怕主要是下降。雖然從http版本全站做了301轉向到https版本,我們都知道,百度對301轉向處理很慢、很保守,需要持續觀察什麼時候能完成正確判斷並傳遞權重。Google也表明過,301轉向不能完全傳遞權重,是有損耗的。

 

就SEO每天一貼來說,另一個可能造成麻煩的是,這個網站以前做過多次URL路徑變化和301轉向,還換過域名,現在再多加一次301轉向,多層轉向有可能造成搜尋引擎不願意跟踪,不能完全傳遞權重。本網站外鏈增加最多的時候還是剛剛開博的頭兩年,那時候的鏈接都是指向最早的URL的,到現在的https新URL,經過了3-4次轉向,這恐怕是搜尋引擎會跟踪的轉向數的上限了。所以,可能會丟失一部分無法挽回的外鏈效果。

 

接下來,本網站的主要關鍵詞排名可能會下降甚至消失一段時間,能不能恢復也是未知之數。但長痛不如短痛,既然是趨勢,無論如何,也得跟進。

 

簡單說一下把網站從http轉換到https的過程,也許對讀者有借鑒意義。下面只是我做轉換的過程,並不是最優方法,按說應該先在單獨的服務器上測試https版本,我並沒有。公司網站最好更謹慎點。

 

1.購買SSL證書

 

這個是必須的,現在價格並不貴。到David Yin文章看一下,便宜的3年只是幾十塊錢。安裝SSL證書的技術問題,無法在這討論了,不明白的問技術人員吧。

 

2.備份、備份

 

這個也是必須的。對SSL安裝、服務器配置不熟悉的站長來說,轉換過程不一定是那麼順利的。

 

3.新版本代碼改動

 

SSL證書安裝後,https版本就可以訪問了。原來網站上的所有URL都需要改到https版本,包括鏈接、圖片、JS等,所以可能需要修改文章資料庫、模板、插件等。

 

本網站使用WordPress,要在後台把網站地址改為https版本:

 

4.WordPress後台設置

 

這樣,絕大部分導航中的鏈接就由WP系統自動改為https版本了。但很可能還有一些導航性質的鏈接是硬編碼在模板中的,比如這個網站文章下面的版權聲明,那是人工寫在模板裡的,別忘了改。

 

文章正文中人工加的內部鏈接也需要自己改。如果使用了phpMyadmin,用下面指令跑一下資料庫就行了:

 

update wp_posts set post_content = replace(

 

post_content, ‘http://seo.techroomage.com/’,

 

‘http://seo.techroomage.com/’);

 

文章裡的圖片路徑也就同時改了。

 

如果沒有使用資料庫管理工具,寫個簡單php程序運行一下也可以。

 

因為只是用指令在資料庫執行了一下,沒有,也沒辦法人工檢查所有頁面,可能有漏掉的鏈接、圖片之類的,讀者要是發現了,麻煩告訴我一下。

 

這裡我還遇到了些沒解決的問題。新浪微博組件和百度分享按鈕組件貌似都不支持https,原理上應該可以把JS下載下來放到自己服務器上,但暫時沒時間弄這個,先拿掉了。

 

5.檢查新版本頁面源代碼

 

訪問一下https版本頁面,包括首頁、欄目頁、內頁、sitemap,查一下源代碼,看看還有沒有http地址的存在,不僅頁面可見部分,還得看看head部分,JS等,比如head裡的canonical標籤是否改到https版本了?程序生成的sitemap裡的URL是否改為https版本了?

 

6.全站301轉向

 

全站做http到https的301轉向。LAMP服務器為例,在.htaccess文件中加:

 

RewriteEngine On

 

RewriteCond %{SERVER_PORT} 80

 

RewriteRule ^(.*)$ http://seo.techroomage.com/$1 [R=301,L]

 

RewriteCond %{HTTP_HOST} ^seozac.com [NC]

 

RewriteRule ^(.*)$ http://seo.techroomage.com/$1 [L,R=301]

 

這個代碼只是舉例,也是我的網站用的實際代碼,還有其他寫法也可以,只要實現了301就行。

 

訪問原http版本頁面,檢查301是否生效。

 

7.百度站長平台和Google Search Console

 

搜尋引擎抓取301轉向後,應該可以自行判斷網站已經從http轉到https了。另一個通知搜尋引擎的方法是通過站長平台。

 

在Google Search Console中,把https網站加入並驗證,不需要使用Change of Address功能。可以在http及https版本的帳號下,用Fetch as Googlebot功能看看兩種版本的URL是否返回正確頭信息和頁面源代碼。

 


Techroomage Seo SEO TechRoomage 提供專業白帽 Search Engine Optimization (SEO) 服務與 Responsive Web Design (RWD) 響應式網頁設計,透過完善的服務幫助客戶建立高品質網站與後續強大的網路行銷。

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *