Добавить СЕО-метатеги в результаты поиска по каталогу

Просмотров: 149

Задача: на странице с результатами поиска по каталогу нужно установить уникальные метатеги: keywords, description, canonical и заголовок страницы.

Добавить СЕО-метатеги в результаты поиска по каталогу

Зачем нужны метатеги в результатах поиска

Возникла такая ситуация на одном из сайтов: каким-то образом страницы с результатами поиска попали в индекс Яндекса, и вебмастер начал оповещать о более чем 1000 страницах с одинаковыми метатегами.

Вряд ли Яндекс сам заполнял инпут с поиском и переходил на результаты. Предположений, как эти страницы попали в индекс, всего два:
1) При посещении страницы данные о ней передались со счетчика Яндекс.Метрика.
2) Данные о странице передались при посещении сайта через Яндекс.Браузер.

Было решено сделать метатеги уникальными, передав в них поисковый запрос. Для этого открываем шаблон catalog.search и в template.php (в условие, когда результат поиска не пустой) добавляем код:

$request = \Bitrix\Main\Application::getInstance()->getContext()->getRequest();
$name = $request->get('q');
$dir = $APPLICATION->GetCurDir();

$APPLICATION->SetTitle(
        'Результат поиска: '' . $name . '' по объявлениям'
);
$APPLICATION->SetPageProperty(
        'title', 
        'Поиск ' . $name . ' результат'
);
$APPLICATION->SetPageProperty(
        'keywords', 
        'найти, поиск по запискам, результат поиска ' . $name
);
$APPLICATION->SetPageProperty(
        'description', 
        'Результат поиска по запросу ' . $name . ' в доске объявлений'
);
$APPLICATION->SetPageProperty(
        'canonical', 
        'https://tech.bxstore.ru' . $dir . '?q=' . $name
);
  • Получаем текущий запрос через Bitrix API и вытаскиваем значение параметра q — это поисковый запрос.
  • Определяем текущий URL без домена.
  • Устанавливаем заголовок страницы с включением поискового запроса.
  • Добавляем метатег title, в котором указан результат поиска.
  • Устанавливаем метатег keywords с поисковыми терминами.
  • Задаем метатег description, описывающий результат поиска.
  • Устанавливаем метатег canonical с каноническим URL, включающим поисковый запрос.
  • Это делает метатеги уникальными для каждого поискового запроса, улучшая SEO.
Михаил Базаров 08.09.2024
В условие когда ни чего не найдено, в принципе можно добавить
Код
$request = \Bitrix\Main\Application::getInstance()->getContext()->getRequest();
$name = $request->get('q');
$dir = $APPLICATION->GetCurDir();

$APPLICATION->SetTitle('Не найдено: "' . $name . '" по объявлениям');
$APPLICATION->SetPageProperty('title', 'Поиск ' . $name . ' результат');
$APPLICATION->SetPageProperty("keywords", 'найти, поиск по запискам, результат поиска ' . $name);
$APPLICATION->SetPageProperty("description", 'Результат поиска по запросу ' . $name . ' в доске объявлений');
$APPLICATION->SetPageProperty("canonical", 'https://tech.bxstore.ru' . $dir);
?>

По запросу <q><?= $name ?></q> ни чего не найдено, 
попробуйте сформулировать запрос иначе.

Канонический адрес у всех не найденый один и тот же, ведет на страницу результатов без параметров

Блог-note: заметки разработчика

Запретить указание количества товаров, добавляемого в корзину, в определенных разделах каталога.

Задача состоит в том, чтобы запретить указание количества товара, добавляемого в корзину, в определенных разделах катало...

Дополнительные параметры в меню Битрикс

Иногда нужно присвоить какой-то функционал к конкретному пункту меню в битрикс. Например открывать ссылку в новом окне и...

Как вывести картинки к разделам на базе _ext меню

Просто для эстетической красоты, нужно вывести в меню разделов сайта картинки или иконки. Достаточно популярный метод, э...

Получение SEO данных элементов и разделов инфоблока, через API 1С-Битрикс

Для того чтобы извлечь данные из вкладки SEO административной панели Битрикс, необходимо использовать специализированные...

Вывести новости из конкретного раздела инфоблока Битрикс

Бывает что требуется вывести конкретные новости или статьи из одного раздела инфоблока в Битрикс, для этого потребуется ...

Создание агента в 1С-Битрикс, на реальном примере

Задача: Каждый час нужно обновлять свойство элементов/товаров с типом строка "В наличии", вписывать в него либ...

Наличие на складах в умном фильтре 1С-Битрикс, с автоматическим обновлением

Задача: добавить возможность фильтрации товаров по складам в умном фильтре. Данные должны обновляться автоматически, при...

Создание PWA для сайта на 1С-Битрикс

Технология PWA позволяет создать приложение для любого сайта. Не обязательно работающего на 1С-Битрикс, данная заметка ...

Настройка push уведомлений через Firebase, в мобильном приложении Apache Cordova

Задача: Apache Cordova предоставляет удобный способ разработки кроссплатформенных мобильных приложений. В данной статье ...