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. :)





Mình có cài SSL từ cloudflare.com (miễn phí) nhưng web mình bị lỗi bảo mật và mình xóa SSL rồi những vẫn vậy. Mình không đăng nhập vào quản trị wordpress và mỗi lần vào trực tiếp web thì bị chuyển sang https: (mặc dù đã xóa rồi)
Mong anh hướng dẫn và phản hồi lại tin nhắn này. Cảm ơn
Nếu bạn muốn dùng cả HTTPS lẫn CloudFlare thì bắt buộc bạn phải sử dụng SSL của CloudFlare nhé. Còn nếu không muốn dùng SSL của CloudFlare thì bắt buộc bạn phải tắt CDN của CloudFlare đi, chỉ sử dụng CloudFlare làm máy chủ DNS thôi. Nếu bạn sử dụng code để redirect từ HTTP sang HTTPS thì xóa code đó đi, nếu dùng plugin để redirect thì xóa plugin đó đi là được. Nhớ kiểm tra xem link của web trong database là link HTTP hay HTTPS nữa.
Bác ơi. Thế bao giờ thì được xóa cái http trong Google WMT đi vậy? Cái https của mình thì thấy nó đang index rồi nhưng chưa hết. Nhưng mình thử tìm kiếm bài http nó lên top trc thì thấy nó đổi sang https rồi mà ko thấy nó cập nhật tiêu đề bài đấy mình mới sửa qua tên. Tìm keyword dài hơn của bài đấy thì nó ra một bài https khác thì đã cập nhật đầy đủ tiêu đề bài viết mình mới sửa? Vậy là sao nhỉ?
Google có giới hạn số lượng domain được phép khai báo trong Search Console đâu? Vội vã xóa đi làm chi vậy? :P Còn cái vụ index thì mình chịu nha. Google Bots thích thế nào thì nó làm thế đó, không ai đoán được. :P
Ok bác. Vậy để cả 2 cho nó truất’ss. :))))
À cho mình hỏi tiếp là hiện tại file robots.txt mình vẫn để là URL sitemap là http giông bên cái http kia thì có sao không bác hay sửa tiếp về https. :D
Sửa về HTTPS đi chứ. :P
Ok bác. :D Sitemaps em để 2 dòng allow /*.js /*.css này có thừa không bác ơi? :D
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Allow: /wp-admin/images/*
Allow: /*.js
Allow: /*.css
Sitemap: https://my_site/sitemap_index.xml
Tham khảo bài viết “Mẫu file robots.txt chuẩn dành cho WordPress” nhé.
Thế còn file sitemap ở Google WMT của phần https thì sao bác? Vẫn để nguyên là http hả?
Site maps HTTPS thì phải vào tên miền có giao thức HTTPS bạn nhé. :P
Anh ơi. site này của em chuyên https thành công rồi. nhưng ko thấy hiển thị cái khóa bảo mật ạ..
site: https://mmevn.com
Link này vẫn chạy trên giao thức HTTP nên nó không hiện chữ bảo mật đó bạn: http://mmevn.com/wp-content/uploads/2017/06/icon-search.png. Kiểm tra và fix đi nhé. :P
cám ơn anh…
Cho mình hỏi cái chỗ chỉnh xong trong GA sang https rồi chỉnh Search Console mình thấy bạn có 2 lựa chọn là https://wpcanban.com và https://wpcanban.com nhưng của mình có mỗi 1 cái http://domain.com không có lựa chọn https thì làm thế nào nhỉ?
Bạn đã khai báo tên miền HTTPS trong Google Search Console chưa? :P
Ồ, Vậy nghĩ là sẽ phải tạo thêm 1 trang mới hoàn toàn dùng https rồi. Mình cứ tưởng có thể sửa đổi trược tiếp http sang https ở search console
Khai báo mới hoàn toàn bạn nhé. :P
cho mình hỏi 1 chút. Mình dùng SSL free của CF và đã bật Auto rewrite và rule http://domain/com/* tất cả sang https nhưng mà mình lại k thể login vào được wordpress theo dạng. bình thường. toàn pải login qua web xong mới vào được
Không thể login vào được WordPress theo dạng bình thường là sao bạn? Là login qua ứng dụng WordPress ấy hả? :P
Đúng rồi bạn: login vào qua kiểu Domain.com/wp-admin nó cứ trả về 404. Mình chỉ dùng mỗi Auto rewrite và rule của CF thôi và sửa trong setting WordPress Address (URL) và Site Address là https://domain.com.
Nếu login dạng: domain.com/wp-admin thì đường dẫn này là 404 còn nếu dùng easy hide login thì nó ra trang đăng nhập nhưng nhập đúng và truy cập vẫn ra 404.
Mình dùng centminmod
CloudFlare nó chỉ hỗ trợ trình duyệt web thôi bạn. Còn app thì mình nghĩ là không. Mà không nên dùng SSL miễn phí của CloudFlare. Cái đó tương thích với trình duyệt kém lắm. Nên nhiều trình duyệt web sẽ không vào được. Nếu muốn miễn phí bạn có thể dùng Let’s Encrypt. Hoặc bỏ ra vài ba $ mua PositiveSSL mà dùng. :P
Mình có 1 thắc mắc nữa là khi chuyển sang https thì comments ở fb mỗi bài mất hết nghĩa là cmt ở http nó không được di dời. Làm thế nào nhỉ bạn
Facebook xem HTTP và HTTPS là 2 trang khác nhau nên bình luận sẽ mất hết bạn nhé. :P
Thêm đoạn code rediect vào ..htaccess xong và upload chèn đè file cũ trong host rồi nó có chuyển hướng luôn từ url chưa có SSL sang url có SSL luông không Hiếu?
Ví dụ sau khi update file xong nếu paste url: http://abc.com/xyz thì nó có tự động chuyển qua https://abc.com/xyz không?
Link post, page… thì có. Nhưng link hình ảnh, JS, CSS thì không. Đó là lý do cần sửa link thủ công trong database hoặc cài plugin Really Simple SSL. :P
Mình copy y chang code của bạn add vào file .htaccess nhưng nó không rediect bạn ơi,
Domain của mình không có www nhé.
Code redirect phải được đặt ở đầu file .htaccess bạn nhé. :P
Cám ơn bạn mình đã làm được rồi nhưng không hiểu sao một số link có hiển thị https nhưng lại có chữ i (Info Info or Not secure) bên cạnh chứ không hiện chữ Secure có hình cái khóa màu xanh.
Hiện tại thì CSS và image như logo hay menu của mình đều mất hết có cách nào rediect cả CSS và image không bạn?
Cám ơn bạn.
Bạn làm theo hướng dẫn trong bài viết này cho nhanh: Cài SSL cho WordPress trong nháy mắt với plugin Really Simple SSL. :P
Đã cài đặt https thành công, công nhận là nhìn cái chữ Secure hiện bên cạnh domain của mình oai thật, cảm ơn wpcanban.com đã giúp mình vũng tin chuyển đổi sang https
Bạn ơi. Mình đang xài plugin Really Simple SSL. Nhưng bây giờ mình không muốn dùng Plugin này nữa thì làm cách nào?
Thì bạn có thể gỡ plugin kia ra và dùng code trong bài viết để redirect. :) Có thể bạn sẽ phải đổi cả link trong database từ HTTP sang HTTPS nữa. :P
Cảm ơn bạn đã giải thích rất chi tiết. Chắc phải chuyển từ từ từ web nhỏ trước nếu ổn mới dám làm site lớn. Đang ổn định thay đổi sợ lắm ấy.
Backlink thì toàn link về http:// không biết có bị mất backlink không nhỉ?
Nếu làm đúng theo hướng dẫn thì không thể mất được đâu bạn nhé. :P
Mình bị mất HTTPS ở trang chủ dẫn đến OneSignal cũng không hoạt động được, chỉ trang chủ bị. khi vào các category hay bất kỳ chỗ nào khác thì HTTPS lại xanh nè, như vậy là lỗi do đâu vậy bạn?
Link web của bạn là gì? Mình phải xem mới biết được lỗi do đâu. :P