Здравствуйте.
Вот такое сообщение мне периодически писал Google Search Console:
Владельцу ресурса https://aleksandr-krylov.ru/
На вашем ресурсе обнаружена одна или несколько проблем (1) следующего типа: Окно поиска по ссылкам сайта: структурированные данные. Они перечислены ниже.
Советуем вам по мере возможности устранить эти проблемы. Тогда в Google будет показываться больше страниц вашего сайта, а их позиции в результатах поиска улучшатся.
Основные критические проблемы* Отсутствует поле «query-input» (в potentialAction)
*Страницы и функции с критическими проблемами не допускаются к показу в результатах поиска.
И по непонятной причине такое уведомление к консоли гугл то появлялось, то исчезало.
Я использую WordPress, а в нём — плагин All in One SEO. Я не заметил настроек в бесплатной версии для функционала Schema.
И поэтому я решил с этим уже разобраться.
Идея такая: проверяем, есть ли в выводе этого плагина указанное поле. Если есть — ничего не делаем. Если нет — добавляем это поле.
Для этого можно добавить в файл functions.php используемой темы вот такой код:
function add_query_input_to_structured_data($data) {
// Проверяем, что структурированные данные принадлежат типу SearchAction
if (isset($data['@type']) && $data['@type'] === 'SearchAction') {
// Проверяем, отсутствует ли поле "query-input"
if (!isset($data['query-input'])) {
// Если его нет, добавляем поле "query-input". Если уже есть - ничего не делаем
$data['query-input'] = 'required name=search_term_string';
}
}
return $data;
}
add_filter('aioseop_schema_data', 'add_query_input_to_structured_data');
Этот код использует фильтр aioseop_schema_data
, предоставляемый плагином All in One SEO, чтобы изменить структурированные данные.
Проблема только в том, что ошибка в редактировании файла функций может привести к неработоспособности сайта.
И поэтому можно сделать по-другому — просто поставить маленький плагин с этим же кодом. Я попробовал отправить его в репозиторий WordPress, но там надо подтверждать почту сайта и т.д., и я решил забить, и просто выложить плагин.
Скачать ak-add-query-input.
И даже если эту ошибку в дальнейшем в All in One SEO исправят и поле появится — ничего страшного не случится: просто код из этого маленького плагина запускаться не будет.
Если вам хочется сделать плагин самостоятельно, тут будет 4 шага:
- в папке plugins создаём папку ak-add-query-input
- в ней создаём файлик ak-add-query-input.php
- в файлик вставляем код, который ниже и сохраняем
- активируем плагин и всё.
Вот код для файла ak-add-query-input.php — как видите, он такой же, как выше, только заголовки оформлены, чтобы он работал как плагин:
<?php
/**
* Plugin Name: AK Add Query Input
* Description: Add "query-input" (in potentialAction) for All in One SEO.
* Version: 1.0.0
* Author: Александр Крылов
* Plugin URI: https://aleksandr-krylov.ru/page/add-query-input-in-potentialaction/
* Author URI: https://aleksandr-krylov.ru/
* License: GPL-2.0-or-later
*/
//подключаем поле в микроразметку Sсhema
// Функция, добавляющая поле "query-input" в структурированные данные
function ak_add_query_input_to_structured_data($data) {
// Проверяем, что структурированные данные принадлежат типу SearchAction
if (isset($data['@type']) && $data['@type'] === 'SearchAction') {
// Проверяем, отсутствует ли уже поле "query-input"
if (!isset($data['query-input'])) {
// Если его нет, добавляем поле "query-input". Если уже есть - ничего не делаем
$data['query-input'] = 'required name=search_term_string';
}
}
return $data;
}
add_filter('aioseop_schema_data', 'ak_add_query_input_to_structured_data');
Благодарю за внимание. Надеюсь, что, как и мне, это вам поможет решить проблему «Отсутствует поле «query-input» (в potentialAction)».
Александр Крылов.