Hướng dẫn chuyển từ HTTP sang HTTPS không bị mất thứ hạng tìm kiếm trên Google.

Dạo gần đây, phong trào chuyển từ HTTP sang HTTPS diễn ra rất rầm rộ. Khá nhiều bạn có liên hệ hỏi tôi về việc chuyển sang HTTPS có bị mất thứ hạng trên Google hay không và chuyển như thế nào thì không bị mất thứ hạng. Thực ra, việc chuyển từ HTTP sang HTTPS không làm giảm thứ hạng tìm kiếm của bạn mà thậm chí còn tăng nếu bạn làm đúng cách. Bởi vì Google đã công bố họ sẽ ưu tiên các blog/ website sử dụng giao thức HTTPS rồi mà. Và để giải đáp thắc mắc của tất cả mọi người, hôm nay tôi sẽ hướng dẫn cho các bạn những bước cơ bản để chuyển sang sử dụng HTTPS đối với blog/ website WordPress một cách chuẩn nhất.
Tham khảo thêm:
- Chrome cảnh báo không an toàn đối với website sử dụng HTTP
- Sửa lỗi SSL trong WordPress một cách đơn giản
Chuyển từ HTTP sang HTTPS mà không bị mất thứ hạng SEO
1. Cài SSL trên hosting hoặc VPS. Các bạn có thể sử dụng SSL miễn phí như Let’s Encrypt hoặc mua các loại SSL trả phí như Positive SSL.
Tham khảo thêm:
- Hướng dẫn cài Positive SSL trên hosting có cPanel
- Hướng dẫn cài SSL miễn phí với AutoSSL trên cPanel
Sau khi cài thành công SSL lên host, có 2 cách khác nhau để cài HTTPS cho WordPress:
Phương pháp thủ công
Phức tạp và không dành cho những người không am hiểu về kỹ thuật, dễ bị lỗi trong quá trình thay thế dữ liệu trong database, do đó chúng tôi không khuyên dùng.
Lưu ý:
- Hướng dẫn này chỉ dành cho website sử dụng mã nguồn WordPress chạy trên nền web server Apache hoặc LiteSpeed (hỗ trợ file
.htaccess). - Hãy backup kỹ càng trước khi làm để tránh các trường hợp đáng tiếc có thể xảy ra.
2. Export database của blog/ website WordPress về máy tính thông qua phpMyAdmin. Sử dụng phần mềm NotedPad++ để mở file ra, tìm kiếm và thay thế toàn bộ link từ HTTP sang HTTPS. Drop (xóa) toàn bộ các table của database cũ trên phpMyAdmin sau đó import file (.sql) đã chỉnh sửa lên. Các bạn cũng có thể làm việc này thông qua các queries trên phpMyAdmin.
Lưu ý: bước này có thể làm mất một số thiết lập của plugin Yoast SEO cũng như các widget. Vì vậy, các bạn nên copy các thiết lập và lưu ở đâu đó trước khi làm để sau này tiện cấu hình lại.
3. Thêm đoạn code sau đây vào đầu file .htaccess trong thư mục gốc của WordPress.
# Redirect all links from HTTP to HTTPS
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]
Tác dụng của đoạn code này là tự động redirect 301 toàn hộ link HTTP sang HTTPS.
Sử dụng plugin Really Simple SSL
Với bước 2 và 3 của phương pháp thủ công, các bạn có thể thực hiện đơn giản hơn bằng cách sử dụng plugin Really Simple SSL. Xem hướng dẫn chi tiết trong bài viết “Cài HTTPS cho WordPress trong nháy mắt với Really Simple SSL“. Phương pháp này an toàn gần như tuyệt đối, bạn không cần phải backup dữ liệu, được chúng tôi khuyên dùng.
4. Truy cập vào tài khoản Google Search Console (hay còn gọi là Google Webmaster Tools) của bạn, khai báo thêm một tên miền dạng HTTPS. Nhớ giữ nguyên tên miền dạng HTTP trước đó nhé. Đừng quên làm đầy đủ các thao tác giống như bạn đã làm với tên miền HTTP (chẳng hạn như thêm sitemaps, khai báo robots.txt, nhắm mục tiêu quốc tế…).

5. Truy cập vào tài khoản Google Analytics (nếu bạn có sử dụng) => Quản trị => Cài đặt thuộc tính => URL mặc định và chuyển nó về dạng HTTPS.

Kéo xuống dưới cùng, click vào nút Điều chỉnh Search Console.

Click tiếp vào nút Chỉnh sửa.

Chọn đúng trang web có link dạng HTTPS để liên kết với tài khoản Google Analytics. Click vào nút Lưu để hoàn tất.

Tất cả chỉ đơn giản vậy thôi. Việc còn lại là chờ đợi Google bots thu thập dữ liệu và tự động chuyển hết link từ HTTP sang HTTPS trên bảng kết quả tìm kiếm. Chúc các bạn thành công!
Mọi thắc mắc liên quan đến việc chuyển từ HTTP sang HTTPS cho blog/ website WordPress, xin vui lòng gửi vào khung bình luận bên dưới để được giải đáp.
Nếu bạn thích bài viết này, hãy subscribe blog của tôi để thường xuyên cập nhật những bài viết hay nhất, mới nhất qua email nhé. Cảm ơn rất nhiều. :)





Hiếu ơi cho mình hỏi, cái site_map tạo tự động từ Yoast SEO giờ chuyển thành link HTTPS hết rồi, vậy có nên để trong phần site map của trang HTTP không ? Hay chỉ cần để site map ở trang HTTPS thôi ?
Với lại nếu Google xem HTTPS và HTTP là 2 trang khác biệt, vậy có sợ chuyện duplicate content không nhỉ ?
Redirect 301 rồi thì trùng lặp thế nào được nữa bạn? :)
À, ra vậy ^^. Còn cái site_map ở trang http cũ mình vẫn để hay xóa luôn cậu ? Vì link trong site map giờ cũng thành https cả rồi.
Cứ để vậy đi. :P
OK cậu ^^. Mà tớ thấy sau khi chuyển qua https, google phải index lại, như vậy sẽ ảnh hưởng không tốt đến rank đúng ko nhỉ ? Nhỡ đâu nó đết thèm index lại thì khổ ~.~ Mình mới chuyển 1 site, giờ chỉ index đc tầm 25% số page, chắc phải đợi thêm thời gian xem sao.
Đẩy cường độ index dữ liệu lên mức cao nhất thử xem: https://wpcanban.com/wordpress/thu-thuat-wordpress/thu-thap-du-lieu-cua-google-bots.html. Nhưng host yếu thì không nên nhé. Bạn cứ làm đúng theo như mình hướng dẫn thì chả có gì là không tốt cả. :P
Không biết chuyển có tốt hơn không nhưng mình thấy khi vào web https có cảnh báo nếu biết rồi thì không sao người chưa biết cảm thấy e dè
Bài viết hữu ích, tuy nhiên nếu tất cả phải chuyển sang https thì không công bằng, vì không phải site nào cũng là site giao dịch trực tuyến, như web giải trí thì cần gì https
Nếu bạn ko SEO, nếu bạn ko quan tâm đến thứ hạng và tốc độ thì thôi ko cần chuyển :D
Vẫn cần như thường. Vì SEO chỉ là một khía cạnh. Nó còn liên quan đến trải nghiệm người dùng nữa. Chả ai dám vào cái trang mà suốt ngày bị cảnh báo nguy hiểm cả. :P
Á đù, mất thiết lập là sao thím, mấy cái tiêu đề với mô tả mình thiết lập có bị mất không @@! Yoat ấy :()
Mấy cái đó thì không. Mà bản Yoast SEO mới nhất hình như không bị ảnh hưởng đâu. :P Sáng nay vừa chuyển 2 trang đều không bị. Nhưng coi chừng mất hết các tùy biến và thiết lập theme nhé. :D
Phù :v Đợt trước em update Yoast lên mới tự dưng mất hết title với mô tả của category :3 Hên không mất post :V Mà sao trang thím bữa nay nhấp qua category hoặc bla bla, nó không còn bị delay thanh menu, phần header với sidebar nữa nhể, nó cứng luôn, ngầu vãi!
Ủa. Anh thấy của ai cũng vậy cả mà. Đâu có gì lạ? :P
Đâu, của em nó bị delay :() Bữa trước thấy thím cũng thế mà, hay là nguyên nhân gì khác nhỉ :3
Anh có thấy delay gì đâu? Anh dùng Firefox. :P
Sao của mình không bị mất gì nhỉ?
Không cần phải dùng tính năng chuyển tên miền của Google WMT để thông báo chuyển từ HTTP sang HTTPS nhỉ. Có nên dùng luôn không nhỉ ?
Bạn chỉ đổi giao thức chứ bạn có đổi tên miền đâu mà thông báo. :P
Vào trang này bằng điện thoại blackberry (hệ điều hành BOS10) không được Hiếu ơi, từ hồi Hiếu chuyển sang https nó bị
Vấn đề này mình đã được phản ánh. :) Có thể do vấn đề giữa Let’s Encrypt và BB. Tuy nhiên do lượng người dùng BOS10 không nhiều lắm (nếu không muốn nói là quá ít) nên mình chưa có phương án fix. :P
Tuy ít nhưng có mấy độc giả thân thiết đều dùng :P
Chắc phải gọi qua Canada dọa RIM mới được. :D :P
Nó sợ bạn Hiếu nên đóng cửa luôn mảng điện thoại rồi :))
Nghe người của bên Let’s Encrypt nói đã gửi yêu cầu sang chỗ RIM nhưng chưa được chấp thuận. :P
nếu mình tạo 1 thuộc tính mới trong wmt thì các thông số về lượng search, liên kết đến web đều về 0 hết, tự hỏi là nó có ảnh hưởng tới SEO ko? Vì như thế thì backlink nó có nhận nữa ko nhỉ? Sau hơn 1 tuần chuyển sang https thì lượng traffic từ gg vào giảm rõ rệt :( ảnh đây: http://imgur.com/ncMtJzp
Không ảnh hưởng gì nhé. Backlinks sẽ tự động được chuyển sang hết. Còn lượng thống kê tìm kiếm sẽ từ từ tăng lên. Nếu bị ảnh hưởng thì là do nguyên nhân khác. Không phải do chuyển sang HTTPS đâu. :P
Mới chuyển qua https được 1 tuần mà thấy lượt click có vẻ lên rất nhiều.
Chúc mừng bạn. :D
mình chuyển dc 5 ngày rồi mà sao bên https vẫn trống trơn, ko có traffic, ko report gì
GG bot chưa thu thập dc hay sao?
Hình như cái Youst SEO của anh mất 1 số tính năng sau khi chuyển thì phải.
Không mất tính năng mà chỉ mất thiết lập thôi anh ạ. Chuyển từ HTTP sang HTTPS hay đổi domain đều bị như vậy. :P
đc mà có www k đc bạn ah, bạn hướng dẫn dùm mình với cách viết . htaccess chuyển từ http sang https có www
RewriteEngine on
RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Bạn thử code này:
RewriteEngine OnRewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
Hoặc code này:
RewriteEngine OnRewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
Nhớ thay domain cho đúng với domain của bạn. :P
Hiếu cho mình hỏi với, mình dán đoạn code của bạn vào để redirect http sang https nhưng có cảm giác nó trùng lặp với một đoạn nào đã có sẵn trên file của mình thì phải, bạn check giúp xem đoạn nào trùng lặp chỉ mình với:
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/.+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^([a-zA-Z0-9_-]+)-([0-9]+)\.html$ /product.php?id=$2
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/.+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule -(.*)-cat(.*)\.html /category.php?cat=$2
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/.+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule -(.*)-idcat(.*)\.html /category.php?idcat=$2
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/.+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule -(.*)-newid(.*)\.html /newsct.php?newid=$2
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.quanaongocthu.com [NC]
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/.+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^(.*)$ http://quanaongocthu.com/$1 [L,R=301]
# Redirect all links from HTTP to HTTPS
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]
Các code sau đây có thể xung đột với nhau:
RewriteCond %{HTTPS} !onRewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.quanaongocthu.com [NC]
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/.+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^(.*)$ http://quanaongocthu.com/$1 [L,R=301]
# Redirect all links from HTTP to HTTPS
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]
vậy Như thế đoạn code như thế nào cho đúng khi có WWW vậy a Hiếu
Để đơn giản nhất, bạn cài plugin Really Simple SSL vào nhé. Xem bài viết “Cài SSL cho WordPress trong nháy mắt với plugin Really Simple SSL“.
e cảm ơn a :)))
cái plugin e chưa tick cái Enable 301 .htaccess redirect này nên nó k redirect giờ dùng đc r
Nếu web server là Apache hoặc LiteSpeed thì nên kích hoạt tính năng 301 .htaccess redirect thay vì redirect bằng PHP. Ngược lại, nếu là web server NginX thì không nên kích hoạt tính năng này. :)
Bạn ơi. Mất tính năng có cần cài lại không ? Hay cứ kệ nó hả bạn ? Mình thấy chuyển sang vẫn giữ nguyên các title và Metadecusion mà. Có cần bỏ Yoaseo ra và cài lại không bạn ?
Good, lại phải mượn về blog rồi. :3
KHông liên quan là cái watermark kia là tự động hay làm bằng tay đấy?
Watermark mình add bằng phần mềm SnagIT Editor. :P
Mình vào chỉnh sửa phần Search Console thì nó ghi là ” Bạn không cần phải Chỉnh sửa quyền đối với thuộc tính Google Analytics này”. Như vậy là sao bạn.
CHo mình hỏi thêm là file.htaccess này đã chuẩn chưa. mình chuyển http sang https ấy
# BEGIN rlrssslReallySimpleSSL rsssl_version[2.4.1]
RewriteEngine on
RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# END rlrssslReallySimpleSSL
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# Redirect all links from HTTP to HTTPS
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]
# END WordPress
Đã dùng code trong bài viết của mình thì không cài plugin Really Simple SSL và ngược lại bạn nhé. :P
Nếu mình không cài plugin đó thì để mặc định thì css, js nó ko chạy bạn ạ. Có cách nào khắc phục mà ko cần cài plugin đó ko bạn. Mình đang dùng theme genesis, không biết chỉnh bằng tay chỗ nào. Cám ơn bạn
Vậy bạn bỏ đoạn code ở cuối đi. Giữ lại đoạn code của plugin Really Simple SSL và của WordPress là được. :P
Mình gỡ plugin ra rồi. Tất cả đều chạy ổn định, cám ơn bạn đã giúp đỡ. Vậy là thêm đoạn code của bạn thì sẽ không bị mất rank và backlink fai ko ?
Đoạn code của mình hay của plugin Really Simple SSL đều có tác dụng bảo toàn thứ hạng và backlink cho site của bạn. :P
Hiếu cho mình hỏi là đã chuyển sang https và làm như bạn hướng dẫn. Gg đã index lại theo https, nhưng http cũng index theo. Liệu chờ 1 thời gian nữa nó có chuyển toàn bộ sang https ko hay nó index song song hai cái. Hiện tại số lượng index của mình tăng gấp đôi do có cả https và http
Bạn redirect rồi thì nó sẽ chuyển dần sang HTTPS nhé. :)
Mình cũng như bạn. Lượng index đã tăng gấp đôi. Từ khó có tụt hạng một chút rồi. Không biết tình trạng này có lâu không nữa bạn nhỉ
mình có chuyển từ http sang https mà nó báo là redirect 302 không phải 301 thì xử lý như thế nào nhỉ
Bạn đã cài plugin Really Simple SSL hoặc thiết lập redirect bằng file .htaccess chưa?