Окно поиска по сайту

Окно поиска по сайту помогает людям искать материалы с вашего сайта (или из вашего приложения). Оно добавляется прямо на страницу результатов Google и поддерживает подсказки в реальном времени и другие удобные функции.

В результатах поиска Google, относящихся к вашему сайту, под ссылкой на него может автоматически показываться ещё одно окно поиска, позволяющее находить контент только на самом этом сайте. Вам не нужно ничего для этого предпринимать. Оно работает на базе технологий Google. Если вы добавите на свои веб-страницы структурированные данные типа WebSite, это поможет Google корректно интерпретировать ваш контент.

Если в Google Поиске уже доступно окно поиска по вашему сайту, структурированные данные WebSite позволят вам настроить некоторые его параметры.

Как реализовать окно поиска по сайту

Вот что нужно сделать, чтобы окно поиска по вашему сайту могло появляться в результатах Google:

  1. Интегрируйте поисковую систему в свой сайт или в приложение Android.

    Введя поисковый запрос в дополнительном окне, пользователь будет переадресован на сайт или в приложение и увидит страницу с результатами. Чтобы эта функция работала, вам понадобится настроить поисковую систему.

    • Сайты. Добавьте поисковую систему на сайт. Она будет перенаправлять запросы пользователей на нужную страницу с учетом синтаксиса, заданного в ваших структурированных данных. Поисковая система должна поддерживать запросы в кодировке UTF-8.
    • Приложения. Узнайте, как добавить поисковую систему в приложение. Приложение Android должно поддерживать намерение ACTION_VIEW из результатов поиска и соответствующий URI данных, указанный в свойстве potentialAction.target вашей разметки.
  2. Добавьте элемент структурированных данных WebSite на главную страницу сайта. Приложение обязательно должно быть связано с сайтом, даже если он состоит из одной страницы. В противном случае поиск работать не будет. Дополнительные рекомендации:
    • Добавляйте эту разметку только на главную страницу сайта.
    • Всегда указывайте один объект типа SearchAction для поиска по сайту, а другой – для поиска по приложению. Обратите внимание, что указывать свойство SearchAction для сайта обязательно, даже если поиск в приложении для вас приоритетен. Благодаря этому пользователи, которые не установили ваше приложение или отправили запрос не с телефона Android, будут перенаправлены к списку результатов на сайте.
    • Узнайте, в каких частях страницы нужно размещать структурированные данные в зависимости от их формата.
  3. Выполните наши инструкции.
  4. Протестируйте свой код с помощью инструмента проверки расширенных результатов.
  5. Проверьте, как работает ваша поисковая система. Для этого скопируйте URL из поля структурированных данных WebSite.potentialAction.target, подставьте вместо {search_term_string} тестовый запрос и выполните поиск по этому URL в браузере. Например, если у сайта адрес example.com и вы хотите протестировать запрос kittens (котята), URL будет таким: https://www.example.com/search/?q=kittens.
  6. Укажите предпочтительный канонический URL главной страницы домена, добавив атрибут rel="canonical" на все варианты главной страницы. Это поможет алгоритму Google Поиска выбрать корректный URL для разметки. Обратите внимание, что ваш сервер должен поддерживать кодировку UTF-8.
  7. В приложении включите фильтры intent, которые позволят ему поддерживать URL, указывающий на него в вашей разметке. С примером создания фильтров intent для URL Google Поиска можно ознакомиться в статье, посвященной индексированию приложений Firebase.
  8. Опубликуйте несколько страниц и с помощью инструмента проверки URL посмотрите, как страница выглядит в результатах поиска Google. Убедитесь, что доступ Google к странице не заблокирован файлом robots.txt или метатегом noindex и для него не требуется авторизация. Если все в порядке, запросите повторное сканирование ваших URL.
  9. Отправляйте нам файл Sitemap, чтобы информировать нас об изменениях на сайте. Этот процесс можно автоматизировать с помощью Search Console Sitemap API.

Пример

Ниже приведен пример для запроса "Pinterest" в Google. Среди полученных результатов пользователь увидел окно поиска сразу под ссылкой на нужный сайт.

Использование окна поиска по сайту

Далее приведены примеры разметки, позволяющей создать окно поиска по сайту, на котором установлена пользовательская система поиска.

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 для окон поиска сайтов и приложений. Подробное описание структурированных данных типа WebSite приведено на сайте schema.org, однако в случае с Google Поиском оно немного отличается от стандартного.

Обязательные свойства
potentialAction

Массив из одного или двух объектов SearchAction.

Объект описывает URI, к которому нужно направить запрос, и синтаксис этого запроса. Вы должны добавить страницу или обработчик намерений, который может получить запрос и выполнить корректный поиск по отправленной строке. Если пользователь не работает с приложением Android (или намерение для Android отсутствует), версия запроса для сайта будет отправлена из поискового окна по указанному маршруту. Если пользователь работает с устройством Android, а URI намерения известен, будет отправлено это намерение.

Чтобы включить поддержку поиска в браузере на компьютере, необходимо создать объект SearchAction для сайта. Если вам также нужна поддержка поиска по приложению, вы можете добавить объект SearchAction для приложения. В каждом объекте SearchAction должны быть указаны следующие вложенные свойства:

Пример для сайта

В приведенном ниже примере запрос GET отправлен по адресу 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"
}]

Пример для приложения

В приведенном ниже примере намерение Android отправлено по адресу 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

Используйте строку required name = search-term или любой плейсхолдер, который применяли для свойства target. Убедитесь, что эти два плейсхолдера совпадают. Например, в обоих плейсхолдерах из свойств target и query-input используется строка search-term:


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

EntryPoint

Объект EntryPoint со свойством urlTemplate.

Значением свойства urlTemplate должна быть строка такого формата: search_handler_uri{search_term_string}.

Пример:

https://query.example.com/search?q={search_term_string}
search_handler_uri В случае с сайтом это URL обработчика поисковых запросов, а в случае с приложением – URI обработчика намерений в вашей поисковой системе.
search_term_string

Строка-плейсхолдер, которая заменяется запросом пользователя, когда он нажимает кнопку "Поиск" в поисковом окне. Ее значение должно соответствовать значению элемента name в свойстве query-input.

url

URL

URL того сайта, по которому будет осуществляться поиск. В значении этого свойства указывается URL канонической главной страницы сайта, например: https://www.example.org

Сбор статистики по расширенным результатам в Search Console

С помощью Search Console вы можете собирать данные об эффективности страниц вашего ресурса в Google Поиске. Вам не обязательно регистрироваться в этом сервисе, чтобы ваши страницы попали в результаты поиска. Однако это позволит узнать, как роботы Google воспринимают сайт, и оптимизировать его. Рекомендуем проверять информацию в Search Console в следующих случаях:

  1. После первого размещения структурированных данных
  2. После выпуска новых шаблонов или обновления кода
  3. При регулярном анализе трафика

После первого размещения структурированных данных

Когда ваши страницы будут проиндексированы, проверьте их на наличие ошибок с помощью отчета о статусе расширенных результатов. Желательно, чтобы количество страниц с правильной разметкой выросло, а число ошибок и предупреждений – нет. Если в структурированных данных будут обнаружены ошибки, примите следующие меры:

  1. Внесите исправления.
  2. Проверьте исправленную страницу, чтобы узнать, обнаруживаются ли ошибки.
  3. Запросите проверку ресурса, используя отчет о статусе расширенных результатов.

После выпуска новых шаблонов или обновления кода

Если вы внесли значительные изменения на сайт, проверьте, не увеличилось ли число ошибок и предупреждений, связанных со структурированными данными.
  • Увеличилось число ошибок? Возможно, вы создали шаблон, с которым что-то не так, или имеющийся шаблон используется некорректно.
  • Уменьшилось число действительных элементов, но не увеличилось количество ошибок? Возможно, на ваших страницах не размещены структурированные данные. Выяснить, с чем связаны ошибки, можно при помощи инструмента проверки URL.

При регулярном анализе трафика

Анализировать трафик сайта из Google Поиска можно с помощью отчета об эффективности. Из этого отчета вы узнаете, как часто страница появляется в Поиске в виде расширенного результата, с какой регулярностью пользователи нажимают на нее и какова ее средняя позиция в результатах поиска. Эти сведения также можно автоматически получать с помощью Search Console API.

Устранение неполадок

Если у вас возникли трудности с добавлением или отладкой структурированных данных, вам помогут ресурсы и сведения, доступные по приведенным ниже ссылкам.