Lệnh chuyển hướng và Google Tìm kiếm

Chuyển hướng URL là phân giải URL hiện tại thành một URL khác, là cách hiệu quả để thông báo cho khách truy cập và Google Tìm kiếm biết rằng trang đang ở vị trí mới. Lệnh chuyển hướng đặc biệt hữu ích trong những trường hợp sau:

  • Bạn đã di chuyển trang web của mình sang một miền mới và muốn quá trình chuyển đổi diễn ra suôn sẻ nhất có thể.
  • Mọi người truy cập trang web của bạn qua nhiều URL khác nhau. Ví dụ: nếu mọi người có thể truy cập trang chủ của bạn qua nhiều cách (chẳng hạn như https://example.com/home, http://home.example.com, hoặc https://www.example.com), thì bạn nên chọn một trong những URL đó làm đích đến ưu tiên (chính tắc) rồi dùng lệnh chuyển hướng để chuyển lưu lượng truy cập từ các URL khác sang URL ưu tiên.
  • Bạn định hợp nhất hai trang web và muốn đảm bảo rằng đường liên kết tới các URL lỗi thời được chuyển hướng tới đúng trang.
  • Bạn đã xoá một trang và muốn đưa người dùng đến một trang mới.

Tổng quan về các loại lệnh chuyển hướng

Thường thì người dùng không phân biệt được các loại lệnh chuyển hướng, nhưng Google Tìm kiếm lại dùng một số loại lệnh chuyển hướng làm tín hiệu cho thấy trang đích chuyển hướng nên được chọn làm trang chính tắc Cách chọn lệnh chuyển hướng tuỳ thuộc vào việc bạn dự kiến lệnh chuyển hướng sẽ có hiệu lực trong bao lâu và bạn muốn Google Tìm kiếm hiện trang nào trong kết quả tìm kiếm:

  • Chuyển hướng vĩnh viễn: Trang đích mới 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ẽ xuất hiện trong kết quả tìm kiếm.

Bảng sau đâ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, được sắp xếp theo xác suất 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ó xác suất được Google hiểu đúng cao nhất). Chọn loại lệnh chuyển hướng phù hợp với tình huống và trang web của bạn:

Loại lệnh chuyển hướng
Vĩnh viễn

Googlebot sẽ đi theo lệnh chuyển hướng, và quy trình lập chỉ mục sẽ dùng lệnh chuyển hướng làm tín hiệu cho thấy trang đích chuyển hướng nên được chọn làm trang chính tắc.

HTTP 301 (moved permanently)

Thiết lập lệnh chuyển hướng phía máy chủ.

HTTP 308 (moved permanently)
meta refresh (0 giây)

Thiết lập lệnh chuyển hướng meta refresh.

HTTP refresh (0 giây)
JavaScript location

Thiết lập lệnh chuyển hướng JavaScript.

Lệnh chuyển hướng Crypto

Tìm hiểu thêm về lệnh chuyển hướng crypto.

Tạm thời

Googlebot sẽ đi theo lệnh chuyển hướng, nhưng quy trình lập chỉ mục không dùng lệnh chuyển hướng này làm tín hiệu cho thấy trang đích chuyển hướng nên được chọn làm trang chính tắc. Trang đích vẫn có thể được lập chỉ mục nếu có các tín hiệu chuẩn hoá khác.

HTTP 302 (found)

Thiết lập lệnh chuyển hướng phía máy chủ.

HTTP 303 (see other)
HTTP 307 (temporary redirect)
meta refresh (hơn 0 giây)

Thiết lập lệnh chuyển hướng meta refresh.

HTTP refresh (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 phải 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 bạn phải đặt tiêu đề chuyển hướng bằng tập lệnh phía máy chủ (ví dụ: PHP). 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 phía máy chủ.

Lệnh chuyển hướng vĩnh viễn phía máy chủ

Nếu cần thay đổi URL của một trang khi trang đó xuất hiện trong kết quả của công cụ tìm kiếm, bạn nên dùng lệnh chuyển hướng vĩnh viễn phía máy chủ bất cứ khi có thể. Đây là cách tốt nhất để đảm bảo rằng Google Tìm kiếm và người dùng được chuyển hướng đến đúng trang. Các mã trạng thái 301308 có nghĩa là 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 sẽ đảm bảo rằng Google không bị ảnh hưởng bởi lệnh chuyển hướng, nhờ đó có thể giúp giữ lại URL cũ trong kết quả Tìm kiếm. Ví dụ: Nếu trang web của bạn đang tạm dừng cung cấp dịch vụ, thì bạn có thể thiết lập một lệnh chuyển hướng tạm thời để đưa người dùng đến một trang có nội dung giải thích sự việc 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ủ

Quá trình triển khai lệnh chuyển hướng phía máy chủ sẽ phụ thuộc vào môi trường lưu trữ và máy chủ hoặc ngôn ngữ tập lệnh 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, hãy dùng hàm header(). Bạn phải thiết lập tiêu đề trước khi gửi bất cứ nội dung nào lên màn hình:

header('HTTP/1.1 301 Moved Permanently');
header('Location: https://www.example.com/newurl');
exit();

Tương tự như vậy, sau đây là một ví dụ về 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 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 làm theo hướng dẫn của máy chủ web bạn đang dùng:

  • Apache: Hãy tham khảo Hướng dẫn của Apache về .htaccess, Hướng dẫn của Apache về cách viết lại URL, và tài liệu của Apache về mod_alias. Ví dụ: Bạn có thể dùng mod_alias để thiết lập hình thức chuyển hướng đơn giản nhất:

    # Permanent redirect:
    Redirect permanent "/old" "https://example.com/new"
    
    # Temporary redirect:
    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 dùng mod_rewrite. Ví dụ:

    RewriteEngine on
    # redirect the service page to a new page with a permanent redirect
    RewriteRule   "^/service$"  "/about/service"  [R=301]
    
    # redirect the service page to a new page with a temporary redirect
    RewriteRule   "^/service$"  "/about/service"  [R]
  • NGINX: Hãy đọc về cách Tạo quy tắc viết lại NGINX trên blog của NGINX. Giống như với Apache, có nhiều cách để bạn tạo lệnh chuyển hướng. Ví dụ:

    location = /service {
    # for a permanent redirect
    return 301 $scheme://example.com/about/service
    
    # for a temporary redirect
    return 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 dùng quy tắc rewrite:

    location = /service {
    # for a permanent redirect
    rewrite service?name=$1 ^service/offline/([a-z]+)/?$ permanent;
    
    # for a temporary redirect
    rewrite service?name=$1 ^service/offline/([a-z]+)/?$ redirect;
    }
  • Đối với tất cả máy chủ web khác, hãy liên hệ với người quản lý máy chủ/máy chủ lưu trữ, hoặc tìm kiếm hướng dẫn bằng công cụ tìm kiếm mà bạn thích dùng (ví dụ: tìm kiếm theo từ khoá "LiteSpeed redirects" – "lệnh chuyển hướng LiteSpeed").

meta refresh và lệnh chuyển hướng HTTP tương đương

Nếu 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 bạn, lệnh meta refresh có thể là một phương án 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ì là 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 số giây nào đó 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ễ là 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ó mã phía máy chủ. Chẳng hạn, đây là một lệnh chuyển hướng meta refresh tức thì trong phần tử <head> trong HTML:

<!doctype html>
<html>
<head>
<meta http-equiv="refresh" content="0; url=https://example.com/newlocation">
<title>Example title</title>
<!--...-->

Còn đây là một ví dụ về tiêu đề HTTP tương đương mà bạn có thể đưa vào bằng 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 là 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ễ của lệnh chuyển hướng đó:

<!doctype html>
<html>
<head>
<meta http-equiv="refresh" content="5; url=https://example.com/newlocation">
<title>Example title</title>
<!--...-->

Lệnh chuyển hướng location bằng JavaScript

Google Tìm kiếm diễn giải và thực thi JavaScript bằng Dịch vụ kết xuất web sau khi hoàn tất quá trình thu thập thông tin URL.

Để thiết lập lệnh chuyển hướng JavaScript, hãy thiết lập giá trị của thuộc tính location thành 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>
<!--...-->

Lệnh chuyển hướng Crypto

Nếu không thể triển khai mọi phương thức chuyển hướng khác, bạn vẫn nên tìm cách cho người dùng biết rằng trang hoặc nội dung của trang đã di chuyển. Cách đơn giản nhất để thực hiện điều này là thêm đườ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ụ:

<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 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 (giống như quái vật hồ Loch Ness, sự tồn tại của lệnh chuyển hướng này có thể 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 xem đây là một lệnh chuyển hướng chính thức).

Phiên bản thay thế của URL

Khi bạn chuyển hướng một 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ẽ là phiên bản chính tắc, còn cụ thể là URL nào thì còn tuỳ thuộc vào những tín hiệu như đó là lệnh chuyển hướng 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à có thể người dùng 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ể sẽ đáng tin cậy hơn.

Ví dụ: Nếu bạn chuyển sang tên miền mới, thì khả năng cao là Google đôi khi vẫn cho thấy URL cũ trong kết quả, 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.