Cách tìm kiếm trong 1 trang web

Hộp tìm kiếm cho đường liên kết trang web

Hộp tìm kiếm cho đường liên kết trang web là một cách nhanh chóng để mọi người tìm kiếm thông tin có trong trang web hoặc ứng dụng của bạn ngay trên trang kết quả tìm kiếm. Hộp tìm kiếm gợi ý nội dung tìm kiếm theo thời gian thực và cung cấp các tính năng khác.

Google Tìm kiếm có thể tự động hiển thị hộp tìm kiếm trong phạm vi trang web của bạn khi trang xuất hiện dưới dạng kết quả tìm kiếm mà không yêu cầu bạn phải làm gì thêm. Hộp tìm kiếm này do Google Tìm kiếm cung cấp. Tuy nhiên, bạn có thể cung cấp thông tin rõ ràng bằng cách thêm dữ liệu có cấu trúc WebSite. Khi đó, Google có thể hiểu rõ hơn về trang web của bạn.

Nếu Google Tìm kiếm đã hiển thị một hộp tìm kiếm cho trang web của bạn, thì bạn có thể thêm dữ liệu có cấu trúc WebSite để kiểm soát một số phương diện liên quan đến hộp tìm kiếm cho đường liên kết trang web đó.

Lưu ý quan trọng: Google không đảm bảo rằng hộp tìm kiếm cho đường liên kết trang web sẽ xuất hiện trong kết quả tìm kiếm. Ngoài ra, việc sử dụng mã đánh dấu hộp tìm kiếm cho đường liên kết trang web không làm tăng khả năng xuất hiện của hộp tìm kiếm cho đường liên kết trang web. Để nắm được danh sách lý do phổ biến khiến Google có thể không hiển thị dữ liệu có cấu trúc trong kết quả tìm kiếm, hãy tham khảo Nguyên tắc chung về dữ liệu có cấu trúc.

Cách triển khai hộp tìm kiếm cho đường liên kết trang web

Dưới đây là các bước để làm cho trang web của bạn đủ điều kiện xuất hiện kèm theo hộp tìm kiếm trong kết quả của Google Tìm kiếm:

  1. Cài đặt một công cụ tìm kiếm hoạt động trên trang web hoặc ứng dụng Android của bạn.

    Các cụm từ tìm kiếm trong đường liên kết trang web sẽ đưa người dùng đến trang kết quả tìm kiếm về trang web hoặc ứng dụng của bạn, vì vậy bạn cần một công cụ tìm kiếm hoạt động để cung cấp tính năng này.

    • Trang web: Thiết lập một công cụ tìm kiếm trên trang web của bạn. Tính năng này sẽ chuyển tiếp cụm từ tìm kiếm của người dùng đến mục tiêu của bạn bằng cú pháp được chỉ định trong dữ liệu có cấu trúc. Công cụ tìm kiếm của bạn phải hỗ trợ các cụm từ tìm kiếm được mã hóa bằng UTF-8.
    • Ứng dụng: Hãy xem phần Tổng quan về Tìm kiếm trên Trang web dành cho nhà phát triển Android để tìm hiểu cách triển khai một công cụ tìm kiếm cho ứng dụng của bạn. Ứng dụng Android của bạn phải hỗ trợ ý định ACTION_VIEW từ kết quả Tìm kiếm, trong đó URI dữ liệu tương ứng được chỉ định trong thuộc tính potentialAction.target của mã đánh dấu của bạn.
  2. Triển khai phần tử dữ liệu có cấu trúc WebSite trên trang chủ cho trang web của bạn. Một ứng dụng phải có một trang web liên kết để kích hoạt tính năng này, ngay cả khi trang web chỉ có một trang duy nhất. Một số nguyên tắc bổ sung:
    • Chỉ thêm mã đánh dấu này vào trang chủ, không phải trang nào khác.
    • Luôn chỉ định một thuộc tính SearchAction cho trang web, và một thuộc tính khác không bắt buộc nếu hỗ trợ chức năng tìm kiếm trong ứng dụng. Bạn phải luôn cung cấp SearchAction cho trang web ngay cả khi ứng dụng mới là mục tiêu tìm kiếm ưu tiên của bạn. Việc này giúp đảm bảo rằng nếu người dùng không tìm kiếm qua điện thoại Android hoặc chưa cài đặt ứng dụng Android của bạn, thì kết quả tìm kiếm sẽ dẫn đến trang web của bạn.
    • Tùy theo định dạng bạn đang sử dụng, hãy tìm hiểu nơi chèn dữ liệu có cấu trúc trên trang.
    Bạn đang dùng một CMS? Sẽ dễ dàng hơn nếu bạn dùng một trình bổ trợ được tích hợp trong CMS của bạn.
    Bạn đang dùng JavaScript? Hãy tìm hiểu cách tạo dữ liệu có cấu trúc bằng JavaScript.
  3. Làm theo các nguyên tắc.
  4. Xác thực mã của bạn bằng công cụ Kiểm tra kết quả nhiều định dạng.
  5. Xác minh cách triển khai công cụ tìm kiếm của bạn bằng cách sao chép URL WebSite.potentialAction.target từ dữ liệu có cấu trúc, thay thế {search_term_string} bằng một cụm từ tìm kiếm thử nghiệm và duyệt đến URL đó trong một trình duyệt web. Ví dụ: nếu trang web của bạn là example.com và bạn muốn kiểm tra cụm từ tìm kiếm "kittens", hãy duyệt đến https://www.example.com/search/?q=kittens. Lưu ý: Xuyên suốt tài liệu này, chúng tôi sử dụng q làm khóa tham số URL cho {search_term_string}, nhưng khóa này cũng có thể là một chuỗi bất kỳ được phép theo RFC 3986 trong thành phần truy vấn của một URL. Bạn cũng có thể sử dụng cheesey_query={search_term_string} nếu muốn.
  6. Đặt URL chính tắc mà bạn muốn sử dụng cho trang chủ của miền bằng cách sử dụng yếu tố liên kết rel="canonical" trên tất cả các biến thể của trang chủ. Điều này giúp Google Tìm kiếm chọn đúng URL cho mã đánh dấu của bạn. Máy chủ của bạn phải hỗ trợ loại mã hóa ký tự UTF-8.
  7. Đối với ứng dụng, hãy bật các bộ lọc ý định phù hợp để hỗ trợ URL bạn chỉ định trong mục tiêu ứng dụng của mã đánh dấu. Để xem ví dụ về cách tạo bộ lọc ý định cho URL trong Google Tìm kiếm, hãy xem phần Lập chỉ mục ứng dụng Firebase cho Android.
  8. Triển khai một vài trang có chứa dữ liệu có cấu trúc rồi dùng Công cụ kiểm tra URL để kiểm tra xem Google nhìn thấy trang đó như thế nào. Hãy đảm bảo rằng Google có thể truy cập trang của bạn và bạn không chặn trang bằng yêu cầu đăng nhập, thẻ noindex hoặc tệp robots.txt. Nếu có vẻ như trang không gặp vấn đề nào, bạn có thể yêu cầu Google thu thập lại dữ liệu các URL của mình. Lưu ý: Hãy chờ một thời gian để Google thu thập lại dữ liệu và lập chỉ mục lại. Hãy lưu ý rằng có thể mất vài ngày sau khi bạn xuất bản một trang để Google tìm thấy và thu thập dữ liệu trang đó.
  9. Để thông báo cho Google về những thay đổi sau này, bạn nên gửi một sơ đồ trang web. Bạn có thể tự động hóa quy trình này bằng cách sử dụng API Sơ đồ trang web của Search Console.

Ví dụ

Sau đây là một kết quả tìm kiếm ví dụ cho "Pinterest" trên Google trong đó có trả về hộp tìm kiếm cho đường liên kết trang web dành cho Pinterest:

Cách tìm kiếm trong 1 trang web

Lưu ý: Giao diện thực tế trong kết quả tìm kiếm có thể sẽ khác. Bạn có thể xem trước hầu hết các tính năng trong Công cụ Kiểm tra kết quả nhiều định dạng.

Dưới đây là một số mã đánh dấu ví dụ để triển khai hộp tìm kiếm cho đường liên kết trang web bằng công cụ tìm kiếm tùy chỉnh của trang web:

JSON-LD

Dưới đây là một ví dụ trong JSON-LD:

<html> <head> <title>The title of the page</title> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "WebSite", "url": "https://www.example.com/", "potentialAction": { "@type": "SearchAction", "target": { "@type": "EntryPoint", "urlTemplate": "https://query.example.com/search?q={search_term_string}" }, "query-input": "required name=search_term_string" } } </script> </head> <body> </body> </html>
<html> <head> <title>The title of the page</title> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "WebSite", "url": "https://www.example.com/", "potentialAction": { "@type": "SearchAction", "target": { "@type": "EntryPoint", "urlTemplate": "https://query.example.com/search?q={search_term_string}" }, "query-input": "required name=search_term_string" } } </script> </head> <body> </body> </html>
Vi dữ liệu

Dưới đây là một ví dụ trong Vi dữ liệu:

<div itemscope itemtype="https://schema.org/WebSite"> <meta itemprop="url" content="https://www.example.com/"/> <form itemprop="potentialAction" itemscope itemtype="https://schema.org/SearchAction"> <meta itemprop="target" content="https://query.example.com/search?q={search_term_string}"/> <input itemprop="query-input" type="text" name="search_term_string" required/> <input type="submit"/> </form> </div>
<div itemscope itemtype="https://schema.org/WebSite"> <meta itemprop="url" content="https://www.example.com/"/> <form itemprop="potentialAction" itemscope itemtype="https://schema.org/SearchAction"> <meta itemprop="target" content="https://query.example.com/search?q={search_term_string}"/> <input itemprop="query-input" type="text" name="search_term_string" required/> <input type="submit"/> </form> </div>

Dưới đây là một ví dụ về trang web và ứng dụng trong JSON-LD:

<html> <head> <title>The title of the page</title> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "WebSite", "url": "https://www.example.com/", "potentialAction": [{ "@type": "SearchAction", "target": { "@type": "EntryPoint", "urlTemplate": "https://query.example.com/search?q={search_term_string}" }, "query-input": "required name=search_term_string" },{ "@type": "SearchAction", "target": { "@type": "EntryPoint", "urlTemplate": "android-app://com.example/https/query.example.com/search/?q={search_term_string}" }, "query-input": "required name=search_term_string" }] } </script> </head> <body> </body> </html> <html> <head> <title>The title of the page</title> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "WebSite", "url": "https://www.example.com/", "potentialAction": [{ "@type": "SearchAction", "target": { "@type": "EntryPoint", "urlTemplate": "https://query.example.com/search?q={search_term_string}" }, "query-input": "required name=search_term_string" },{ "@type": "SearchAction", "target": { "@type": "EntryPoint", "urlTemplate": "android-app://com.example/https/query.example.com/search/?q={search_term_string}" }, "query-input": "required name=search_term_string" }] } </script> </head> <body> </body> </html>

Nguyên tắc

Bạn phải tuân theo các nguyên tắc này để trang web của bạn đủ điều kiện xuất hiện dưới dạng kết quả nhiều định dạng.

Cảnh báo: Nếu trang web của bạn vi phạm một hoặc nhiều nguyên tắc này, thì Google có thể thực hiện biện pháp thủ công đối với trang web. Khi đã khắc phục vấn đề, bạn có thể gửi trang web để chúng tôi xem xét lại.
  • Nguyên tắc quản trị trang web
  • Nguyên tắc chung về dữ liệu có cấu trúc

Ngăn hộp tìm kiếm cho đường liên kết trang web xuất hiện

Google Tìm kiếm có thể chọn thêm một hộp tìm kiếm cho đường liên kết trang web vào trang web của bạn ngay cả khi trang web không chứa dữ liệu có cấu trúc mà chúng tôi mô tả ở đây. Tuy nhiên, bạn có thể ngăn hành vi này bằng cách thêm thẻ meta sau vào trang chủ của mình:

<meta name="google" content="nositelinkssearchbox" /> Hộp tìm kiếm cho đường liên kết trang web sẽ bị vô hiệu hóa trong quá trình thu thập dữ liệu và xử lý trang thông thường của Googlebot. Quá trình này có thể mất vài tuần tùy thuộc vào trang web và các yếu tố khác.

Định nghĩa các loại dữ liệu có cấu trúc

Để nội dung của bạn đủ điều kiện xuất hiện kèm theo hộp tìm kiếm cho đường liên kết trang web, hãy sử dụng các thuộc tính bắt buộc.

Loại WebSite đã sửa đổi

Google Tìm kiếm sử dụng loại dữ liệu có cấu trúc WebSite đã sửa đổi cho cả hộp tìm kiếm trang web và ứng dụng. Định nghĩa đầy đủ về dữ liệu có cấu trúc WebSite có trên schema.org, mặc dù loại dữ liệu mà Google Tìm kiếm sử dụng hơi khác một chút so với định nghĩa chuẩn. Sau đây là phần mô tả để thay định nghĩa.

Thuộc tính bắt buộc
potentialAction

Một chuỗi gồm một hoặc hai đối tượng SearchAction

Đối tượng này mô tả URI sẽ nhận truy vấn và cú pháp của yêu cầu được gửi. Bạn phải triển khai một trang web hoặc trình xử lý ý định có thể tiếp nhận yêu cầu và thực hiện hoạt động tìm kiếm phù hợp dựa trên chuỗi đã gửi. Nếu người dùng không sử dụng ứng dụng Android (hoặc sử dụng ứng dụng Android nhưng chưa chỉ định mục tiêu ý định trên Android), hộp tìm kiếm sẽ gửi phiên bản truy vấn dành cho trang web đến vị trí được chỉ định. Nếu người dùng sử dụng thiết bị Android và đã chỉ định URI ý định trên Android, thì hộp tìm kiếm sẽ gửi ý định đó.

Bạn phải luôn tạo một SearchAction trên trang web để kích hoạt chức năng tìm kiếm trên máy tính. Nếu hỗ trợ cả chức năng tìm kiếm trong ứng dụng, bạn có thể chỉ định thêm một đối tượng SearchAction cho ứng dụng của mình. Mỗi đối tượng SearchAction đều phải chứa những thuộc tính được lồng như sau:

  • potentialAction.@type
  • potentialAction.target
  • potentialAction.query-input

Ví dụ về trang web

Ví dụ sau đây sẽ gửi yêu cầu GET tới https://query.example.com/search?q=user%20search%20string.

"potentialAction": [{ "@type": "SearchAction", "target": { "@type": "EntryPoint", "urlTemplate": "https://query.example.com/search?q={search_term_string}" } "query-input": "required name=search_term_string" }]

Ví dụ về ứng dụng

Ví dụ sau đây sẽ gửi ý định Android tới android-app://com.example/https/query.example.com/search/?q=user_search_string.

"potentialAction": [{ "@type": "SearchAction", "target": { "@type": "EntryPoint", "urlTemplate": "android-app://com.example/https/query.example.com/search/?q={search_term_string}" } "query-input": "required name=search_term_string" }]
potentialAction.query-input

Text

Dùng chuỗi giá trị cố định required name = search-term hoặc bất kỳ phần giữ chỗ nào bạn đã sử dụng trong target. Hãy đảm bảo rằng cả hai giá trị phần giữ chỗ này đều khớp. Ví dụ: cả hai giá trị phần giữ chỗ trong thuộc tính target và query-input đều sử dụng chuỗi search-term:

"potentialAction": [{ "@type": "SearchAction", "target": { "@type": "EntryPoint", "urlTemplate": "https://query.example.com/search?q={search-term}" } "query-input": "required name=search-term" }] query-input là một thuộc tính được chú thích. Hãy xem trang về Potential Actions để biết thêm thông tin.
potentialAction.target

EntryPoint

Đối tượng EntryPoint có một thuộc tính urlTemplate.

urlTemplate phải là một chuỗi có định dạng sau: search_handler_uri{search_term_string}

Ví dụ:

https://query.example.com/search?q={search_term_string}
search_handler_uri Đối với các trang web, đây là URL của trình xử lý sẽ nhận và xử lý cụm từ tìm kiếm. Đối với các ứng dụng, đây là URI của trình xử lý ý định cho công cụ tìm kiếm của bạn mà sẽ chịu trách nhiệm xử lý các truy vấn.
search_term_string

Chuỗi phần giữ chỗ sẽ được thay thế bằng cụm từ tìm kiếm của người dùng khi người dùng nhấp vào nút "Tìm kiếm" trong hộp tìm kiếm. Hãy đảm bảo rằng mọi chuỗi trình giữ chỗ bạn sử dụng ở đây đều khớp với giá trị của phần tử name cho thuộc tính query-input.

Google cũng hỗ trợ định dạng rút gọn của thuộc tính này, loại định dạng giúp bạn trực tiếp cung cấp Text trong potentialAction.target và Google sẽ mở rộng thành urlTemplate. Ví dụ: "potentialAction": [{ "@type": "SearchAction", "target": "android-app://com.example/https/query.example.com/search/?q={search_term_string}", "query-input": "required name=search_term_string" }] Tuy nhiên, đây không phải là định dạng tiêu chuẩn và Google hỗ trợ định dạng này chủ yếu là để đơn giản hóa vi dữ liệu. Để có kết quả tốt nhất, bạn nên cung cấp toàn bộ đối tượng EntryPoint.
url

URL

Chỉ định URL của trang web mà bạn đang tìm kiếm. Hãy đặt URL này thành trang chủ chính tắc của trang web của bạn. Ví dụ: https://www.example.org

Theo dõi kết quả nhiều định dạng bằng Search Console

Search Console là công cụ giúp bạn theo dõi hiệu quả hoạt động của các trang web trong Google Tìm kiếm. Bạn không cần đăng ký sử dụng Search Console để đưa trang web vào Google Tìm kiếm, nhưng việc làm vậy có thể giúp bạn hiểu và cải thiện cách Google nhìn thấy trang web của bạn. Bạn nên kiểm tra Search Console trong những trường hợp sau:

  1. Sau lần đầu triển khai dữ liệu có cấu trúc
  2. Sau khi phát hành mẫu mới hoặc cập nhật mã của bạn
  3. Phân tích lưu lượng truy cập định kỳ

Sau lần đầu triển khai dữ liệu có cấu trúc

Sau khi Google lập chỉ mục các trang của bạn, hãy tìm các vấn đề bằng cách sử dụng Báo cáo trạng thái kết quả nhiều định dạng có liên quan. Kết quả lý tưởng nhất là bạn sẽ thấy sự gia tăng về số trang hợp lệ, đồng thời số lỗi hoặc cảnh báo không tăng. Nếu tìm thấy vấn đề trong dữ liệu có cấu trúc, bạn hãy:

  1. Sửa lỗi.
  2. Kiểm tra URL đang hoạt động để xem vấn đề còn tồn tại không.
  3. Yêu cầu xác thực bằng cách sử dụng báo cáo trạng thái.

Sau khi phát hành các mẫu mới hoặc cập nhật mã của bạn

Khi bạn thực hiện những thay đổi đáng kể cho trang web của mình, hãy theo dõi xem số lỗi và cảnh báo về dữ liệu có cấu trúc có tăng không.
  • Nếu bạn thấy số lỗi tăng, thì có lẽ bạn đã triển khai một mẫu mới không hoạt động được hoặc trang web của bạn tương tác với mẫu hiện có theo một cách mới và không hợp lệ.
  • Nếu bạn thấy số mục hợp lệ giảm (nhưng số lỗi không tăng), thì có thể bạn không còn nhúng dữ liệu có cấu trúc trong các trang của mình nữa. Hãy sử dụng Công cụ kiểm tra URL để tìm hiểu nguyên nhân gây ra vấn đề.
Đừng dùng các liên kết đã lưu trong bộ nhớ cache để gỡ lỗi trên các trang của bạn. Thay vào đó, hãy dùng Công cụ kiểm tra URL vì công cụ này có phiên bản mới nhất của các trang của bạn.

Phân tích lưu lượng truy cập định kỳ

Phân tích lưu lượng truy cập bạn nhận được qua Google Tìm kiếm bằng cách sử dụng Báo cáo hiệu suất. Dữ liệu báo cáo sẽ cho bạn biết bạn tần suất trang web xuất hiện dưới dạng kết quả nhiều định dạng trong Tìm kiếm, tần suất người dùng nhấp vào trang và vị trí trung bình của trang trong kết quả tìm kiếm. Bạn cũng có thể tự động lấy các kết quả này bằng API Search Console.

Khắc phục sự cố

Lưu ý quan trọng: Google không đảm bảo rằng các tính năng sử dụng dữ liệu có cấu trúc sẽ xuất hiện trong kết quả tìm kiếm. Để xem danh sách các lý do phổ biến khiến Google không thể hiển thị nội dung của bạn trong kết quả nhiều định dạng, hãy xem Nguyên tắc chung về dữ liệu có cấu trúc.

Nếu gặp sự cố khi triển khai hoặc gỡ lỗi dữ liệu có cấu trúc, thì bạn có thể tham khảo một số tài nguyên trợ giúp sau đây.

Nếu bạn đang sử dụng một hệ thống quản lý nội dung (CMS) hoặc có ai đó đang quản lý trang web của bạn, hãy nhờ họ trợ giúp. Đừng quên chuyển tiếp mọi thông báo trong Search Console để nêu rõ vấn đề cho họ.
  • Có thể có lỗi trong dữ liệu có cấu trúc của bạn. Xem danh sách các lỗi liên quan đến dữ liệu có cấu trúc.
  • Nếu bị áp dụng biện pháp thủ công, thì dữ liệu có cấu trúc trên trang sẽ bị bỏ qua (mặc dù trang vẫn có thể xuất hiện trong các kết quả trên Google Tìm kiếm). Để khắc phục các vấn đề về dữ liệu có cấu trúc, hãy sử dụng báo cáo Biện pháp thủ công.
  • Xem lại các nguyên tắc để xác định xem nội dung của bạn có tuân thủ nguyên tắc hay không. Nguyên nhân gây lỗi có thể là do bạn sử dụng nội dung không hợp lệ hoặc thẻ đánh dấu không hợp lệ. Tuy nhiên, vấn đề có thể không phải là lỗi cú pháp và do đó, Công cụ kiểm tra kết quả nhiều định dạng sẽ không thể xác định được những vấn đề như vậy.
  • Khắc phục sự cố thiếu kết quả nhiều định dạng/giảm tổng số kết quả nhiều định dạng
  • Đối với các câu hỏi chung về hoạt động thu thập dữ liệu và lập chỉ mục, hãy tham khảo nội dung Câu hỏi thường gặp về việc thu thập dữ liệu và lập chỉ mục trên Google Tìm kiếm. Lưu ý: Hãy chờ một thời gian để Google thu thập dữ liệu và lập chỉ mục lại Xin lưu ý rằng có thể mất vài ngày sau khi bạn xuất bản một trang để Google tìm và thu thập dữ liệu trên trang đó.
  • Đặt câu hỏi trong Giờ hỗ trợ của Trung tâm Google Tìm kiếm.
  • Đăng câu hỏi trong diễn đàn của Trung tâm Google Tìm kiếm.