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, qua đó thông báo cho khách truy cập và Google Tìm kiếm biết rằng trang đã có địa chỉ 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à bạn 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. 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, và 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 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 đối với Google Tìm kiếm, lệnh chuyển hướng giống như một tín hiệu và độ mạnh yếu của tín hiệu đó cho biết có nên chọn trang đích chuyển hướng làm phiên bản chính tắc hay không. 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ẽ coi lệnh chuyển hướng là một tín hiệu mạnh cho thấy trang đích chuyển hướng này 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 và quy trình lập chỉ mục sẽ coi lệnh chuyển hướng là một tín hiệu yếu cho thấy không nên chọn trang đích chuyển hướng này 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)
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ủ mỗi 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 giữ lại URL cũ trong kết quả lâu hơn. 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ủ

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ữ và máy chủ hoặc ngôn ngữ kịch bản 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 đặt tiêu đề trước khi gửi nội dung bất kỳ 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 URLtà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, bạn có nhiều cách để 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ả các máy chủ web khác, hãy hỏ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 bất kỳ do chủ sở hữu trang web đặt. 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à một lệnh chuyển hướng tạm thời), hãy đặt 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 dữ liệu URL.

Để thiết lập lệnh chuyển hướng JavaScript, hãy đặt 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 phương thức chuyển hướng truyền thống nào, bạn vẫn nên cố gắng 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 để làm đ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 coi đâ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 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, rất có khả năng 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.