SEO и фильтры в каталоге

1%d1%81-bitrix

 

SEO (оптимизация) интернет-магазина чрезвычайно важная и полезная штука. Во-первых, она позволяет гораздо проще и быстрее находить нужную группу товаров клиентам магазина прямо из поисковика. А во-вторых продвинуть в топ в выдаче поисковика намного проще по средне- и низко- частотным запросам.

Владельцам интернет-магазинов часто приходится сталкиваться с проблемами, связанными с оптимизацией страниц фильтрации. Разумеется, из-за различий в CMS, конечная реализация тоже будет неодинакова. Но основные принципы схожи. В этой статье мы остановимся поподробнее на CMS Битрикс.

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

 

Оптимизируем страницы фильтров

Как таковой возможности оптимизировать страницы фильтрации в Битриксе нет, но есть штатные возможности оптимизировать отдельный элемент инфоблока и задать ему нужные нам описание, теги tittle, keywords и h1. Задача состоит в том, чтобы с минимальным коддингом добиться нужной нам оптимизации.

 

Так выглядит фильтр и адрес страницы фильтрации, когда впервые поступают ко мне

Так выглядит фильтр и адрес страницы фильтрации, когда они впервые поступают ко мне.

 

Принцип данного метода заключается в том, что у нас есть два отдельных инфоблока. Первый — обычный каталог товаров со своими категориями и набором параметров товаров для фильтрации. Второй же, мы назовем его «SEO-фильтры», — это инфоблок, элементами которого будут необходимые нам варианты фильтрации с их оптимизации. У этого инфоблока необходимо создать свойство для хранения ID категории, в которой происходит фильтрация, а поле символьный код — будет равен url самого фильтра. Так как url фильтра в разных категориях могут быть одинаковы, то нужно снять галочку «Если код задан, то проверять на уникальность» в настройках инфоблока на вкладке «Поля».

 

screenshot_1

 

Как, надеюсь стало понятно, связь между фильтрами и элементами инфоблока будет URL страницы фильтрации и ID категории. Например, у нас есть параметр год производства товара и URL фильтра, при включенном чпу выглядит примерно вот так: /notebooks/acer/filter/year-is-2012/apply/. Создаем элемент инфоблока «SEO-фильтры», у которого символьный код укажем year-is-2002 и значение свойства id категории соответствующее значению самой «глубокой» подкатегории – в нашем случае «acer».

Далее, в шаблоне категорий нашего каталога мы можем проверить существует ли у нас элемент «SEO-фильтров» с заданными условиями фильтрации. В переменной $_REQUEST[«SMART_FILTER_PATH»] хранится «year-is-2012», а в переменной $arResult[«VARIABLES»][«SECTION_ID»] хранится id категории. И методом CIBlockElement::GetList() с заданным фильтром получаем наш оптимизированный элемент и поменяем вывод оптимизации из категории на вывод оптимизации из нашего элемента.

На практике могут появиться проблемы с выводом некоторых тегов, например, если у вас происходит кэширование h1 до обработки данных из элемента «SEO-фильтра». В таком случае можно воспользоваться отложенным выводом информации в битриксе при помощи функций $APPLICATION->ShowViewContent(); Более подробное описание работы с отложенными функциями здесь.

Либо задавайте вопросы в комментариях, а я постараюсь ответить.

Алексей Анисимов, ТактикаАлексей Анисимов
Web-программист