В 14 версии 1С-Битрикс появились новые возможности SEO, благодаря которым, можно создавать шаблоны для мета-тегов (подробнее здесь).
Одной из возможностей является отображение в мета-тегах цены товара. Все работает просто замечательно, за исключением одного нюанса. Если в настройках компонента каталога стоит настройка “Показывать цены в одной валюте”, то в мета-тегах цены все равно будут выводиться в той валюте, в которой они хранятся в каталоге. Т.е. фактически цена на странице товара будет отличаться от цены в мета-тегах, что может плохо отразиться на СЕО продвижении сайта.
По мнению СЕО специалистов возможны 3 варианта:
не выводить цены в мета-тегах вообще;
в шаблоне карточки товара нужно вывести дополнительно цену в валюте, которая будет соответствовать цене в мета-тегах;
цены в мета-тегах и странице должны полностью совпадать
Мне при разработке интернет-магазина необходим был именно 3 вариант.
Сделаем дорабтку.
Нам необходимо сделать 3 вещи:
Написать свой шаблон во вкладке SEO для вывода нашей цены. Например {component.price}
Доработать шаблон компонента catalog.element
Шаблон для цены в мета-тегах
Шаблон можно задавать в 3-х местах: настройках инфоблока, редактировании раздела инфоблока и редактировании самого элемента. У всех троих есть вкладка SEO, где это все и настраивается. Я задал шаблон для всего инфоблока.
Для нашей цены я указал шаблон {component.price} как писал выше. Далее перейдем к доработке шаблона компонента.
Доработка шаблона компонента catalog.element
В файл result_modifier.php просто добавляем код:
foreach($arResult["IPROPERTY_VALUES"] as $key => $value)
$arResult["IPROPERTY_VALUES"][$key] = str_replace("{component.price}", $arResult["PRICES"]["BASE"]["PRINT_VALUE"], $arResult["IPROPERTY_VALUES"][$key]);
В результате строка {component.price} заменяется на необходимую цену из карточки товара.
З.Ы.
Если нужно более гибкое формирование мета-тегов, можете почитать об этом здесь.
С 17 версии пример не работает? Модификация result_modifier.php меняет код в теле страницы, но в метатегах замены не происходит. Если использовать component_epilog.php, то ситуация аналогичная.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».