站点链接搜索框

站点链接搜索框为用户提供了一种快捷方式,让他们可以立即在搜索结果页上搜索您的网站或应用。搜索框具有实时建议和其他功能。

当您的网站显示为搜索结果时,Google 搜索可以自动提供一个将搜索范围限定到您网站的搜索框,而不需要您执行任何其他操作来实现这一点。此搜索框由 Google 搜索提供支持。不过,您可以添加 WebSite 结构化数据,以提供清晰的信息,让 Google 进一步了解您的网站。

如果 Google 搜索已经为您的网站提供站点链接搜索框,您可以通过添加 WebSite 结构化数据来控制站点链接搜索框的某些方面。

如何实施站点链接搜索框

如需让您的网站符合在 Google 搜索结果中显示搜索框的条件,请按以下步骤操作:

  1. 在您的网站或 Android 应用上安装性能良好的搜索引擎

    当用户进行站点链接搜索查询时,会转到您网站或应用的搜索结果页,因此您需要一个可靠的搜索引擎来为此功能提供支持。

    • 网站:在您的网站上设置搜索引擎。相应功能会使用在您的结构化数据中指定的语法将用户的查询转发到您的目标。您的搜索引擎应支持 UTF-8 编码的查询。
    • 应用:请参阅 Android 开发者网站上的搜索概览,了解如何为应用实施搜索引擎。您的 Android 应用应支持来自搜索结果的 ACTION_VIEW intent,并在标记的 potentialAction.target 属性中指定相应的数据 URI。
  2. 在您网站的首页上实施 WebSite 结构化数据元素。应用必须具有关联的网站才能启用此功能,即使该网站只有一个网页。下面是一些附加指南:
    • 只将此标记添加到首页,而不要将其添加到其他任何网页。
    • 始终为网站指定一个 SearchAction,如果支持应用搜索,还可以再指定一个。您应该始终为网站指定 SearchAction,即使应用是您的首选搜索目标也是如此;这样可确保当用户未通过 Android 手机进行搜索或未安装您的 Android 应用时,搜索结果会定向到您的网站。
  3. 使用富媒体搜索结果测试验证结构化数据
  4. 验证搜索引擎实施情况,方法是从您的结构化数据复制 WebSite.potentialAction.target 网址,将 {search_term_string} 替换为测试查询,然后在网络浏览器中访问该网址。例如,如果您的网站是 example.com,并且您要测试查询内容“kittens”,那么您可以访问 https://www.example.com/search/?q=kittens
  5. 对网域首页的所有变体使用 rel="canonical" link 元素,从而为首页设置首选规范网址。这有助于 Google 搜索为您的标记选择正确的网址。您的服务器必须支持 UTF-8 字符编码。
  6. 对于应用,请启用正确的 intent 过滤器以支持您在标记的应用目标中指定的网址。有关如何为 Google 搜索网址创建 intent 过滤器的示例,请参阅适用于 Android 的 Firebase App Indexing

示例

以下示例显示了在 Google 上搜索“Pinterest”时所得到的搜索结果,返回了特定于 Pinterest 网站的站点链接搜索框:

正在使用的站点链接搜索框

下面是一些使用网站的自定义搜索引擎来实施站点链接搜索框的示例标记:

JSON-LD

下面是一个 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>
微数据

下面是一个微数据格式的示例:


<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>
  

下面是一个 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>

指南

为了使您的网站能够显示为富媒体搜索结果,您必须遵循以下指南。

即使您的网站不包含此处所述的结构化数据,Google 搜索也可以选择向其添加站点链接搜索框。不过,您可以通过向您的首页添加以下元标记来阻止此行为:

<meta name="google" content="nositelinkssearchbox" />

结构化数据类型定义

如需让您的内容符合显示站点链接搜索框的条件,请包含必要属性。

经过修改的 WebSite 类型

Google 搜索对网站和应用搜索框都使用经过修改的 WebSite 结构化数据类型。schema.org 上提供了 WebSite 的完整定义,不过 Google 搜索与此标准稍有不同。下方所示的是权威说明。

必要属性
potentialAction

一个或两个 SearchAction 对象的数组

此对象描述了要将查询发送到的 URI 以及发送的请求所用的语法。您必须实现可以接收请求的网页或 intent 处理程序,并对提交的字符串执行适当的搜索。如果用户没有使用 Android 应用(或者在使用 Android 应用,但未指定 Android intent 目标),则搜索框会将查询的网站版本发送到指定的位置;如果用户在使用 Android 设备并指定了 Android intent URI,则会发送该 intent。

您应该始终创建网站 SearchAction 以支持桌面搜索用例。如果也支持应用搜索,还可以为您的应用另外指定一个 SearchAction 对象。每个 SearchAction 对象都具有以下成员:

网站示例

以下示例会向 https://query.example.com/search?q=user%20search%20string 发送 GET 请求。


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

应用示例

以下示例会向 android-app://com.example/https/query.example.com/search/?q=user_search_string 发送 Android intent。


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

Text

使用字面量字符串 required name = search_term_string,或者您在 target 中使用的任何占位符。

potentialAction.target

Text

一个采用以下格式的字符串:search_handler_uri {search_term_string}

例如:

https://query.example.com/search?q={search_term_string}
search_handler_uri 对于网站,此属性是应该接收和处理搜索查询的处理程序的网址;对于应用,此属性是应该处理查询的搜索引擎的 intent 处理程序对应的 URI。
search_term_string

当用户点击搜索框中的“搜索”按钮时,替换为用户的搜索查询的占位符字符串。

url

URL

指定要搜索的网站的网址。请将其设为您网站的规范首页。例如:https://www.example.org

使用 Search Console 监控富媒体搜索结果

Search Console 是一款工具,可帮助您监控网页在 Google 搜索结果中的显示效果。即使没有注册 Search Console,您的网页也可能会显示在 Google 搜索结果中,但注册 Search Console 能够帮助您了解 Google 如何查看您的网站并做出相应的改进。建议您在以下情况下查看 Search Console:

  1. 首次部署结构化数据后
  2. 发布新模板或更新代码后
  3. 定期分析流量时

首次部署结构化数据后

等 Google 将网页编入索引后,请在相关的富媒体搜索结果状态报告中查看是否存在问题。 理想情况下,您应该会看到有效网页数增加了,但错误数或警告数没有增加。如果您发现结构化数据存在问题,请执行以下操作:

  1. 修正错误
  2. 检查实际网址,核实问题是否仍然存在。
  3. 使用状态报告请求验证

发布新模板或更新代码后

对网站进行重大更改后,请监控结构化数据的错误数和警告数是否增加了。
  • 如果您发现错误增多了,可能是因为您推出的某个新模板无法正常工作,或者您的网站以一种新的错误方式与现有模板交互。
  • 如果您发现有效内容项减少了(但错误数的增加情况并不对应),可能是因为您的网页中未再嵌入结构化数据。请通过网址检查工具了解导致此问题的原因。

定期分析流量时

请使用效果报告分析您的 Google 搜索流量。数据将显示您的网页在 Google 搜索结果中显示为富媒体搜索结果的频率、用户点击该网页的频率以及网页在搜索结果中的平均排名。您还可以使用 Search Console API 自动提取这些结果。

问题排查

如果您在实施结构化数据时遇到问题,请查看下面列出的一些实用资源。