Trong bối cảnh phát triển website và SEO, lệnh chuyển hướng đóng vai trò quan trọng trong việc đảm bảo trải nghiệm người dùng và duy trì thứ hạng trên công cụ tìm kiếm. Lệnh chuyển hướng không chỉ giúp chuyển hướng người dùng đến đúng trang mà còn thông báo cho Google rằng một trang đã có địa chỉ mới. Việc hiểu rõ các loại lệnh chuyển hướng và cách triển khai chúng một cách chính xác có thể giúp bạn duy trì và cải thiện thứ hạng trên Google Tìm kiếm.
Chuyển hướng URL là quá trình ánh xạ một URL hiện tại sang một URL mới, thông qua đó thông báo cho người dùng và Google rằng trang đã được di dời sang địa chỉ khác. Việc sử dụng lệnh chuyển hướng đóng vai trò quan trọng trong các trường hợp sau:
- Khi bạn di chuyển toàn bộ website sang một miền mới và mong muốn quá trình chuyển đổi diễn ra mượt mà, không làm gián đoạn trải nghiệm người dùng hay mất mát giá trị SEO.
- Khi người dùng có thể truy cập trang web của bạn thông qua nhiều URL khác nhau. Ví dụ: nếu trang chủ của bạn có thể truy cập từ các đường dẫn như https://example.com/home, http://home.example.com, và https://www.example.com, bạn nên chọn một URL chính tắc để ưu tiên và sử dụng lệnh chuyển hướng để hợp nhất lưu lượng từ các URL khác về URL này.
- Khi bạn hợp nhất hai trang web và cần đảm bảo rằng các liên kết đến những URL cũ được chuyển hướng một cách chính xác đến các trang tương ứng trên website mới.
- Khi bạn xóa một trang và muốn người dùng được tự động chuyển đến một trang thay thế có nội dung liên quan, thay vì gặp phải lỗi 404.
Nếu bạn sử dụng các nền tảng như Blogger hoặc Shopify, có thể chúng đã tích hợp sẵn các giải pháp chuyển hướng URL. Hãy tìm kiếm các hướng dẫn trợ giúp cụ thể cho từng nền tảng (ví dụ: tìm kiếm từ khóa “blogger redirects” để tìm hiểu về lệnh chuyển hướng trong Blogger).
Tổng quan về các loại lệnh chuyển hướng
Thông thường, người dùng không phân biệt rõ các loại lệnh chuyển hướng, nhưng đối với Google Tìm kiếm, lệnh chuyển hướng hoạt động như một tín hiệu, và cường độ của tín hiệu đó quyết định việc trang đích chuyển hướng có được chọn làm phiên bản chính tắc hay không. Việc lựa chọn lệnh chuyển hướng phù hợp phụ thuộc vào thời gian mà bạn dự kiến lệnh chuyển hướng sẽ có hiệu lực và trang bạn muốn Google Tìm kiếm hiển thị trong kết quả tìm kiếm.
- Chuyển hướng vĩnh viễn: Trang đích sau khi chuyển hướng sẽ xuất hiện trong kết quả tìm kiếm.
- Chuyển hướng tạm thời: Trang nguồn trước khi chuyển hướng sẽ tiếp tục xuất hiện trong kết quả tìm kiếm.
Bảng dưới đây giải thích các phương pháp thiết lập lệnh chuyển hướng vĩnh viễn và tạm thời, sắp xếp theo mức độ Google có thể hiểu đúng lệnh chuyển hướng đó (ví dụ: lệnh chuyển hướng phía máy chủ sẽ có khả năng được Google hiểu đúng cao nhất). Hãy chọn loại lệnh chuyển hướng phù hợp với tình huống và cấu trúc trang web của bạn:
Vĩnh viễn
Googlebot sẽ theo lệnh chuyển hướng, và quy trình lập chỉ mục sẽ coi đây là một tín hiệu mạnh mẽ, cho thấy trang đích chuyển hướng nên được chọn làm trang chính tắc.
Sử dụng lệnh chuyển hướng vĩnh viễn khi bạn chắc chắn sẽ không huỷ bỏ lệnh này.
- HTTP 301 (moved permanently): Thiết lập lệnh chuyển hướng phía máy chủ.
- HTTP 308 (moved permanently): Tương tự như HTTP 301, nhưng với một số hạn chế về việc duy trì phương thức yêu cầu.
- meta refresh (0 giây): Thiết lập lệnh chuyển hướng sử dụng meta refresh.
- HTTP refresh (0 giây): Một dạng lệnh chuyển hướng dựa trên HTTP.
- JavaScript location: Thiết lập lệnh chuyển hướng bằng JavaScript. Chỉ nên sử dụng lệnh chuyển hướng JavaScript nếu bạn không thể thực hiện lệnh chuyển hướng phía máy chủ hoặc meta refresh.
- Lệnh chuyển hướng crypto: Khám phá thêm về lệnh chuyển hướng crypto. Đừng dựa vào lệnh này để thông báo cho công cụ tìm kiếm về việc nội dung đã di chuyển, trừ khi bạn không còn lựa chọn nào khác.
Tạm thời
Googlebot sẽ theo lệnh chuyển hướng, nhưng quy trình lập chỉ mục sẽ coi đây là một tín hiệu yếu, cho thấy trang đích chuyển hướng không nên được chọn làm trang chính tắc.
- HTTP 302 (found): Thiết lập lệnh chuyển hướng phía máy chủ.
- HTTP 303 (see other): Dùng để điều hướng với phương thức GET.
- HTTP 307 (temporary redirect): Giữ nguyên phương thức yêu cầu trong quá trình chuyển hướng.
- meta refresh (hơn 0 giây): Thiết lập lệnh chuyển hướng sử dụng meta refresh.
- HTTP refresh (hơn 0 giây): Một dạng lệnh chuyển hướng dựa trên HTTP với thời gian chờ hơn 0 giây.
Lệnh chuyển hướng phía máy chủ
Để thiết lập lệnh chuyển hướng phía máy chủ, bạn cần có quyền truy cập vào tệp cấu hình máy chủ (ví dụ: tệp .htaccess trên Apache) hoặc sử dụng tập lệnh phía máy chủ (ví dụ: PHP) để đặt tiêu đề chuyển hướng. Bạn có thể tạo cả lệnh chuyển hướng vĩnh viễn và lệnh chuyển hướng tạm thời từ phía máy chủ.
Lệnh chuyển hướng vĩnh viễn phía máy chủ
Khi cần thay đổi URL của một trang xuất hiện trong kết quả công cụ tìm kiếm, bạn nên sử dụng lệnh chuyển hướng vĩnh viễn phía máy chủ bất cứ khi nào có thể. Đây là phương pháp tối ưu để đảm bảo rằng Google Tìm kiếm và người dùng sẽ được chuyển hướng đến đúng trang. Các mã trạng thái 301 và 308 biểu thị rằng một trang đã được di chuyển vĩnh viễn đến một địa chỉ mới.
Lệnh chuyển hướng tạm thời phía máy chủ
Nếu bạn chỉ muốn tạm thời chuyển người dùng đến một trang khác, hãy sử dụng lệnh chuyển hướng tạm thời. Điều này cũng giúp Google giữ lại URL cũ trong kết quả tìm kiếm lâu hơn. Ví dụ, nếu trang web của bạn tạm thời ngừng cung cấp dịch vụ, bạn có thể thiết lập lệnh chuyển hướng tạm thời để chuyển người dùng đến một trang thông báo mà không ảnh hưởng đến URL gốc trong kết quả tìm kiếm.
Triển khai lệnh chuyển hướng phía máy chủ
Việc triển khai lệnh chuyển hướng phía máy chủ phụ thuộc vào môi trường lưu trữ, máy chủ, hoặc ngôn ngữ kịch bản sử dụng trong phần phụ trợ của trang web.
Để thiết lập lệnh chuyển hướng vĩnh viễn bằng PHP, bạn có thể sử dụng hàm header(). Lưu ý rằng tiêu đề phải được đặt trước khi bất kỳ nội dung nào được gửi đến trình duyệt:
header('HTTP/1.1 301 Moved Permanently');
header('Location: https://www.example.com/newurl');
exit();
Tương tự, dưới đây là cách thiết lập lệnh chuyển hướng tạm thời bằng PHP:
header('HTTP/1.1 302 Found');
header('Location: https://www.example.com/newurl');
exit();
Nếu bạn có quyền truy cập vào tệp cấu hình của máy chủ web, bạn có thể tự viết các quy tắc chuyển hướng. Hãy tham khảo hướng dẫn của máy chủ web mà bạn đang sử dụng:
Apache: Hãy tham khảo tài liệu của Apache về .htaccess, cách viết lại URL, và mod_alias. Ví dụ, bạn có thể dùng mod_alias để thiết lập lệnh chuyển hướng đơn giản:
# Chuyển hướng vĩnh viễn:
Redirect permanent "/old" "https://example.com/new"# Chuyển hướng tạm thời:Redirect temp “/two-old” “https://example.com/two-new”
Đối với các lệnh chuyển hướng phức tạp hơn, hãy sử dụng mod_rewrite. Ví dụ:
RewriteEngine on
# Chuyển hướng trang dịch vụ đến trang mới với lệnh chuyển hướng vĩnh viễn
RewriteRule "^/service$" "/about/service" [R=301]# Chuyển hướng trang dịch vụ đến trang mới với lệnh chuyển hướng tạm thờiRewriteRule “^/service$” “/about/service” [R]
NGINX: Hãy tham khảo cách tạo quy tắc viết lại NGINX trên blog của NGINX. Giống như Apache, NGINX cung cấp nhiều cách để tạo lệnh chuyển hướng. Ví dụ:
location = /service {
# Chuyển hướng vĩnh viễn
return 301 $scheme://example.com/about/service;# Chuyển hướng tạm thờireturn 302 $scheme://example.com/about/service;
}
Đối với các lệnh chuyển hướng phức tạp hơn, hãy sử dụng quy tắc rewrite:
location = /service {
# Chuyển hướng vĩnh viễn
rewrite service?name=$1 ^service/offline/([a-z]+)/?$ permanent;# Chuyển hướng tạm thờirewrite service?name=$1 ^service/offline/([a-z]+)/?$ redirect;
}
Đối với các máy chủ web khác, bạn nên hỏi người quản lý máy chủ hoặc tìm kiếm hướng dẫn bằng công cụ tìm kiếm yêu thích (ví dụ: tìm kiếm từ khóa “LiteSpeed redirects” – “lệnh chuyển hướng LiteSpeed”).
meta refresh và lệnh chuyển hướng HTTP tương đương
Nếu bạn không thể triển khai lệnh chuyển hướng phía máy chủ trên nền tảng của mình, lệnh meta refresh có thể là một giải pháp khả thi. Google phân biệt giữa hai loại lệnh chuyển hướng meta refresh:
- Lệnh chuyển hướng meta refresh tức thì: Kích hoạt ngay khi trang được tải trong trình duyệt. Google Tìm kiếm xem lệnh chuyển hướng meta refresh tức thì như một lệnh chuyển hướng vĩnh viễn.
- Lệnh chuyển hướng meta refresh có độ trễ: Chỉ kích hoạt sau một số giây nhất định do chủ sở hữu trang web thiết lập. Google Tìm kiếm xem lệnh chuyển hướng meta refresh có độ trễ như một lệnh chuyển hướng tạm thời.
Hãy đặt lệnh chuyển hướng meta refresh vào phần tử <head> trong HTML hoặc trong tiêu đề HTTP được tạo bằng mã phía máy chủ. Dưới đây là một ví dụ về lệnh chuyển hướng meta refresh tức thì trong phần tử <head> của HTML:
<!doctype html>
<html>
<head>
<meta http-equiv="refresh" content="0; url=https://example.com/newlocation">
<title>Example title</title>
<!--...-->
</head>Dưới đây là ví dụ về tiêu đề HTTP tương đương mà bạn có thể thêm vào thông qua các tập lệnh phía máy chủ:
HTTP/1.1 200 OK
Refresh: 0; url=https://www.example.com/newlocation
...
Để tạo lệnh chuyển hướng có độ trễ (mà Google xem như một lệnh chuyển hướng tạm thời), hãy thiết lập giá trị của thuộc tính content thành số giây trễ mà bạn muốn:
<!doctype html>
<html>
<head>
<meta http-equiv="refresh" content="5; url=https://example.com/newlocation">
<title>Example title</title>
<!--...-->
</head>Lệnh chuyển hướng location bằng JavaScript
Google Tìm kiếm diễn giải và thực thi JavaScript thông qua Dịch vụ kết xuất web sau khi hoàn tất quá trình thu thập dữ liệu URL.
Chỉ nên sử dụng lệnh chuyển hướng JavaScript khi bạn không thể thực hiện lệnh chuyển hướng phía máy chủ hoặc meta refresh. Mặc dù Google nỗ lực kết xuất tất cả các URL mà Googlebot đã thu thập, nhưng quá trình kết xuất có thể không thành công vì nhiều lý do. Điều này có nghĩa là nếu bạn sử dụng lệnh chuyển hướng bằng JavaScript, Google có thể không bao giờ nhận thấy lệnh đó trong trường hợp quá trình kết xuất nội dung không hoàn thành.
Để thiết lập lệnh chuyển hướng bằng JavaScript, hãy gán giá trị của thuộc tính location là URL đích của lệnh chuyển hướng và đặt thuộc tính này trong khối lệnh ở phần đầu của tệp HTML. Ví dụ:
<!doctype html>
<html>
<head>
<script>window.location.href = "https://www.example.com/newlocation";
</script>
<title>Example title</title>
<!--...-->
</head>
</html>Lệnh chuyển hướng Crypto
Nếu không thể triển khai bất kỳ phương thức chuyển hướng truyền thống nào, bạn vẫn nên cố gắng thông báo cho người dùng biết rằng trang hoặc nội dung đã được di chuyển. Cách đơn giản nhất để thực hiện điều này là thêm một đường liên kết trỏ đến trang mới kèm theo lời giải thích ngắn gọn. Ví dụ:
html
<a href="https://newsite.example.com/newpage.html">Chúng tôi đã di chuyển! Hãy xem nội dung này trên trang web mới của chúng tôi!</a>
Cách này giúp người dùng dễ dàng tìm thấy trang web mới của bạn, và Google có thể hiểu đây là một lệnh chuyển hướng crypto (tương tự như quái vật hồ Loch Ness, sự tồn tại của lệnh chuyển hướng này vẫn còn gây tranh cãi, và không phải công cụ tìm kiếm nào cũng coi đây là một lệnh chuyển hướng chính thức).
Không nên dựa vào lệnh chuyển hướng crypto để thông báo cho công cụ tìm kiếm rằng nội dung của bạn đã di chuyển, trừ khi bạn không còn lựa chọn nào khác. Trước khi sử dụng lệnh chuyển hướng crypto, hãy liên hệ với nhà cung cấp dịch vụ lưu trữ để được trợ giúp trong việc thực hiện lệnh chuyển hướng truyền thống.
Phiên bản thay thế của URL
Khi bạn thực hiện chuyển hướng URL, Google sẽ theo dõi cả nguồn (URL cũ) và đích (URL mới) của lệnh chuyển hướng. Một trong hai URL này sẽ trở thành phiên bản chính tắc, còn phiên bản nào cụ thể sẽ phụ thuộc vào các tín hiệu như việc lệnh chuyển hướng là tạm thời hay vĩnh viễn. URL còn lại sẽ trở thành tên thay thế của URL chính tắc. Tên thay thế là các phiên bản khác của URL chính tắc mà người dùng có thể dễ nhận ra và tin tưởng hơn. Tên thay thế có thể xuất hiện trong kết quả tìm kiếm khi cụm từ tìm kiếm của người dùng cho thấy URL cũ có thể đáng tin cậy hơn.
Ví dụ: Nếu bạn chuyển sang tên miền mới, rất có khả năng Google đôi khi vẫn hiển thị URL cũ trong kết quả tìm kiếm dù đã lập chỉ mục URL mới. Điều này là bình thường. Khi người dùng đã quen với tên miền mới, các tên thay thế sẽ tự biến mất mà bạn không cần làm gì thêm.
