Сотбит seo умного фильтра 404 ошибка

При использовании многосайтовости в пункте 5 доступен выбор требуемого сайта.

  • Тип фильтра – в поле требуется выбрать используемый в каталоге фильтр.
    • Стандартный фильтр с ЧПУ.
    • Стандартный фильтр без ЧПУ.
    • Фильтр MissShop с ЧПУ.
    • Kombox фильтр с ЧПУ.
    • Kombox фильтр без ЧПУ.
  • ЧПУ фильтра в каталоге — в поле можно указать маску ссылки битрикс, отличной от стандартной, формата /filter/#FILTER_PARAMS#/apply.

  • Отключить индексацию всех страниц – при отмеченной опции будет отключена индексация всех страниц на которых подключен компонент sotbit:seo.meta. Отключение индексации происходит путем добавления тега <meta name=»robots» content=»noindex, nofollow»> в элемент <head> текущей страницы.

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

  • Список источников – в текстовом поле задается список сайтов с которых будут фиксироваться переходы для ведения статистики. Каждый источник требуется указывать с новой строки.

    Переходы будут фиксироваться только с тех источников, адреса которых присутствуют в списке. По умолчанию в список включены следующие источники: yandex.ru, google.ru, www.yahoo.com, www.rambler.ru.

  • Пагинация – в поле указывается часть url адреса, которая будет отображаться в адресной строке при пагинации. В поле вводится шаблон, содержащий в себе элемент «%N%» — номер страницы. Например: «/page_%N%/».

    Данное поле нужно использовать, если пагинация на сайте реализована через URL (в конце адресной строки на страницах пагинации присутствует запись типа /page_2/).

    Подстановка части url адреса, отвечающей за пагинацию производится только для ЧПУ адресов.

  • Текст для метаинформации при пагинации – в поле вводится текст, который отображаться после метаинформации на страницах пагинации, где «%N%» — номер страницы. Например: (страница %N%).

  • Включить тегированное кеширование.

    Не стоит использовать этот механизм при частом обновлении элементов или разделов. С другой стороны это должно быть удобным для редакторов сайтов: изменения моментально отображаются на сайте. Еще один плюс — можно задавать практически бесконечное время кеширования.

  • Делать активными ЧПУ после генерации — опция, которая позволяет генерировать сразу активные ссылки.

    Рекомендуем всё же генерировать неактивные чпу ссылки и производить проверку редиректа активируя одну или несколько ЧПУ ссылок после генерации. Если в шаблоне для новой ссылки была допущена ошибка, а все ссылки сгенерируются активными, то при выборе соответствующих условию параметров будет происходить перенаправление на «битую» ссылку, в результате чего возникнет 404 ошибка.

  • Добавлять канонический url (canonical) – опция, при включении которой в метаинформации размещается каноническая ссылка.

    Каноническая страница – это страница сайта, адрес которой является каноническим (предпочитаемым) в группе схожих по содержимому страниц. Проще говоря канонический URL страницы – это адрес, который будет индексироваться при наличии страниц-дублей.

  • Перехват ajax-запросов – опция, при включении которой, перехватываются AJAX запросы из которых, при выполнении условий, будут формироваться новые метатеги.

    AJAX запрос – AJAX (аббревиатура от «Asynchronous Javascript And Xml») – технология обращения к серверу без перезагрузки страницы, за счет чего уменьшается время отклика и веб-приложение по интерактивности больше напоминает десктоп. Под AJAX подразумевают любое общение с сервером без перезагрузки страницы, организованное при помощи JavaScript.

  • Перегенерировать все ЧПУ ссылки при построении карты сайта — При установленном чекбоксе, во время генерации карты сайта, все ЧПУ ссылки будут перегенерированны в каждом из условий.
    При установленном чекбоксе время построения карты сайта может значительно увеличиться.

  • Исключить из фильтрации — Указанные поля ( ключи массива ${$FilterName} ) не будут учитываться при работе в условиях. В качестве разделителя использовать ;

  • Исключить страницы с параметрами из обработки — Исключает страницы из обработки с указанными параметрами.

    Пример:
    У нас есть ajax запрос который «ломается» на странице сгенерированной нашим модулем и в запросе есть параметр:
    is_ajax=Y
    Чтобы исключить этот запрос из обработки требуется просто указать этот параметр по шаблону:
    ключ=значение
    ( ajax=Y; В качестве разделителя нужно использовать ; )

  • Количество ссылок обрабатываемых за один шаг, при генерации карты сайта — При установленном чекбоксе, будет браться установленное количество ссылок для обработки.
    Если во время генерации карты сайта возникает ошибка, завершения скрипта из-за истечения времени ожидания (TIME OUT),
    рекомендуется уменьшить указанное значение.

    Для увеличения скорости построения карты сайта можно увеличить это значение, но скрипт может завершить свое выполнение по истечению времени (TIME OUT), поэтому данное значение подбирается опытным путем.

  • Максимальный количество ссылкой в одном файле (seometa_sitemap) — Указывается для ограничения максимального количества ссылок записываемых в файл карты сайта, генерируемый модулем.

    Для правильной работы максимальный размер равен 50000. (по умолчанию установлено значение равное 50000).

  • Максимальный размер файла (seometa_sitemap) — Указывается для ограничения максимального размера файла карты сайта, генерируемым модулем.

    Размер требуется писать в мегабайтах, только число. (пример: 30 — что равно 30Mb).
    Для правильной работы максимальный размер равен 50 Mb. (по умолчанию установлено значение равное 50 Mb).

  • Нужна помощь в настройке решения

    Оставьте заявку и мы свяжемся с вами!

    • Что такое умный фильтр
    • В чем сложность и вопрос?
    • История исследования и разработки умного фильтра
    • Почему нельзя использовать умный фильтр Битрикса «из коробки»?
    • Ожидания покупателя от работы фильтра
      • Какие флажки помещать в умный фильтр?
    • Требования SEO-специалистов к умному фильтру
      • Уникальные title, keywords, description, h1.
      • «Быстрые ссылки» — готовые результаты фильтра
      • Размещение текста на странице с фильтром
      • Правильные canonical и отсутствие дублей
      • Шаблон правил для robots.txt
      • Автоматическое добавление в sitemap.xml
      • Умный фильтр и коды ответа
      • Фильтр не требует квалификации программиста для настройки
      • Пример реализации механизма расстановки уникальных заголовков на страницах фильтра (сайт dg-home.ru).
    • Ожидания директора магазина
    • Внедрение умного и готового к seo фильтра на ваш проект

    Есть проекты — интернет-магазины. Это сложные проекты и для продвижения, и для веб-разработки.

    В них сотни и тысячи товаров. Десятки и сотни категорий.

    Есть особый тип страниц — страницы фильтра. Их на порядок больше. Они собирают трафик по огромному количеству запросов и важны для SEO.

    Пример: на сайте, где продаются стройматериалы, в категории «облицовочный кирпич» ставим флажок «желтый». Видим новую страницу, идеально отвечающую на запрос «желтый облицовочный кирпич». Таким образом можно обеспечить посадочными страницами семантическое ядро любого размера. Настройка ЧПУ и умного фильтра в Битрикс позволяет оптимизировать страницы правильно и для клиента и для поисковых роботов.

    Много посадочных также хорошо и для контекстной рекламы — любой запрос найдет свою страницу.

    фильтр в битриксе

    Вывод: страницы выдачи фильтров интернет-магазина исключительно важны для SEO.

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

    Что такое умный фильтр

    Фильтр — инструмент выбора товаров в интернет-магазине. Например, в строительном интернет-магазине, чтобы из множества однотипных кирпичей выбрать желаемый цвет, пользователь ставит галочку, страница обновляется, появляются «Абрикосовые кирпичи». Также выбирают Производителя, Размер, и прочие характеристики. Чем больше параметров выберет пользователь, тем уже будет выборка, тем точнее результат.

    Фильтры можно любить или нет, но не обращать на них внимание нельзя. Для магазина с 1000 товаров и 30 категориями страниц-фильтров будут десятки тысяч. Про них знают поисковики, они занимают большой процент всех проиндексированных страниц. Это ваш актив, работайте с ним.

    Фильтр — это ваш актив. Работайте с ним!

    Умный фильтр не только показывает товары, но обладает дополнительными удобствами:

    • Знает, какие комбинации характеристик не дают результата, и запрещает их выбор. Например, бренд Braer не производит абрикосовый кирпич.
    • Знает, в какой категории какие характеристики бывают. Для строительного кирпича не показывает характеристику «Цвет».

    В статье описан наш опыт разработки и seo продвижения магазинов с использованием умного фильтра.

    Знакомьтесь, Умный Фильтр.

    умный фильтр в битриксе

    Знакомьтесь, господин Уэф. Никакого отношения к статье не имеет, но созвучно ;)

    господин Уэф

    В чем сложность и вопрос?

    Фильтр — штука «чисто программерская». Ставишь галочки, сайт «вжух-вжух» и показывает результат.

    Никакой ручной настройки не подразумевает — SELECT-запросы к базе данных в чистом виде.

    Однако, есть 2 отрасли, о которых нужно подумать — поисковое продвижение и юзабилити. Первое важно для сеошника, второе — для пользователя. Ведь он покупает ваши товары! Пусть ему будет удобно!

    Задача веб-интегратора — заботиться о личном счастье каждого участника веб-системы. Мы провели анализ и придумали компромиссную реализацию умного фильтра, удовлетворяющего всех. В том числе директора магазина.

    Мы проработали варианты использования умного фильтра, придумали правильное решение и рекомендуем внедрять на каждом проекте, с которым работаем.

    Список требований к умному фильтру участников проекта оформили в виде mindmap (увеличивается при нажатии).

    интеллект-карта разработки умного фильтра

    История исследования и разработки умного фильтра

    Ранее мы касались темы в статьях:

    • Рассказали, чем хорош умный фильтр и как он работает — Подбор по параметрам как на Ситилинке
    • Немного раскрыли в статье технику реализации ЧПУ фильтра на портале недвижимости.
    • Упомянули «быстрый фильтр» — младшего брата «умного фильтра», заточенного для SEO.

    Почему нельзя использовать умный фильтр Битрикса «из коробки»?

    Битрикс сделал хороший фильтр, но традиционно не подумал о SEO. У коробочного фильтра 1С-Битрикс (версия 16.5.4) несколько серьезных недостатков:

    • Длинные избыточные адреса страниц. Также, если удалить последний /apply/ будет 404 ошибка.
      чпу фильтра битрикса из коробки
    • Отдельную страницу с результатами фильтра нельзя оптимизировать — разместить заголовок и текст. Приходится использовать дополнительные модули (например, наши «Инструменты SEO-специалиста»).
    • Нельзя настроить канонический адрес автоматически.
    • Сброшенный фильтр возвращает вас к оригинальному списку товаров, но меняет адрес страницы: /catalog/pants/filter/clear/apply/ вместо /catalog/pants/.
    • Если у магазина товаров до 50 тысяч, а общее количество свойств не превышает 500, можно смело использовать умный фильтр битрикса. Он справится. Если товаров или свойств в разы больше, придется делать собственную разработку.

    Ожидания покупателя от работы фильтра

    1. Фильтр помогает найти товар.
    2. Покупатель хочет, чтобы фильтр работал быстро. Выбрал галки, перезагрузил страницу, увидел результат.
    3. Покупатель хочет, чтобы адреса страниц не менялись. Страницей фильтра можно поделиться, сохранить в закладки, выучить наизусть.
    4. Поведение фильтра предсказуемо и понятно. Владельцы магазинов не всегда хотят тратить ресурсы на удобство работы пользователя с сайтом, оставляют задачи «на потом». Страдают, как правило, пользователи.

    Пример страдания: Угадайте, за что отвечает флажок «Тип: Отвертка аккумуляторная» в категории «Отвертки аккумуляторные»? Правильно, ни за что;)

    аккумуляторные отвертки в фильтре

    Для удовлетворения ожиданий покупатели (и увеличения конверсии в итоге) разработчик должен подумать и выполнить задачи:

    1. Сделать удобный и понятный интерфейс фильтра.
    2. В каждой категории магазина показывать важными несколько свойств, которые помогают покупателю совершить выбор. Остальные скрывать.
    3. Продумать архитектуру фильтра так, чтобы запросов было минимальное количество и работал кеш. Влияет на скорость работы фильтра. Бонус — быстрые страницы хорошо влияют на пользовательские факторы сайта (важно для SEO).
    4. Дополнительное требование про кеш: кэшированные страницы отдают правильный заголовок Last-Modified на дату кеширования.
    5. Порядок сортировки и постраничная навигация должны передаваться в GET-параметрах. Вопрос про канонические страницы ниже в блоке про SEO.
    6. Сделать минимум изменений в существующем программном коде. В идеале — небольшие надстройки «поверх» фильтра из коробки.

    Какие флажки помещать в умный фильтр?

    Как мы решали проблему сортировки характеристик / свойств фильтра в категориях.

    Есть категории — Диваны и Люстры. У диванов есть свойства: двухместный, трехместный. У люстр — материал (сталь, стекло) и стиль (прованс, лофт). Какие флажки должны остаться в фильтре, в каком порядке? На основании чего принимать решение?

    Для электроники, бытовой техники, инструментов, компьютеров можно подсмотреть флажки-свойства в Яндекс.Маркете. Как быть для других тематик?

    Мы придумали следующий алгоритм:

    • собираем ключевые фразы по названиям всех категорий каталога сайта (включая слова «купить», «цена»)
    • группируем в соответствии с исходными категориями. В «Диваны» кладем «купить кожаный диван», «купить угловой диван», «диван аккордеон купить». В «Люстры» — «купить хрустальную люстру», «купить потолочную люстру».
    • сортируем в каждой группе ключи по убыванию частотности, отсеиваем низкочастотные запросы.
    • Получаем по 2-3 базовых характеристики, которые интересуют покупателей товаров конкретной категории. Для диванов важен тип и материал. Для люстр — материал на первом месте.

    пример работы фильтра

    Заметили, да? У всех ожидания, а у нас — требования. Отвечу от имени сеошников. Фильтр может оказаться бомбой замедленного действия, неповоротливой и инертной для поисковой машины. Лучше заранее все продумать и не совершать ошибок.

    Фильтр может оказаться бомбой замедленного действия

    Для внедрения SEO-требований подойдет «коробочный» фильтр Битрикса. Приблизительная оценка внедрения: ~100 человеко-часов. Перечисляем в порядке важности приоритета. Если бюджета не хватает, отказывайтесь от нижних.

    1. Уникальные title, keywords, description, h1 на страницах умного фильтра. Бонус — красивый и кликабельный сниппет в выдаче.
    2. «Быстрые ссылки» — готовые результаты фильтра
    3. Размещение текста на странице с фильтром
    4. Правильные canonical и отсутствие дублей
    5. Шаблоны правил для robots.txt
    6. Автоматическое добавление в sitemap.xml
    7. Генерация sitemap.xml с правильными ЧПУ одной кнопкой
    8. Фильтр отдает правильные коды ответа.
    9. SEO-специалист справится с настройкой без программиста.

    Пояснения некоторых требований.

    Уникальные title, keywords, description, h1.

    Обратим особое внимание на важность уникальных заголовков и прочих мета-тегов. Если не предусмотреть автоматическую расстановку уникальных мета-тегов, в индекс попадет множество дублей. Поисковик посчитает страницы нерелевантными, поискового трафика не будет.

    «Быстрые ссылки» — готовые результаты фильтра

    Мы неоднократно писали про удобство «Быстрых фильтров» для пользователя:

    • https://www.intervolga.ru/blog/marketing/fix-seo-problems-integration/#section9
    • https://www.intervolga.ru/blog/projects/tipovye-pozhelaniya-seo-spetsialistov-dlya-internet-magazinov-na-1s-bitriks-i-sposoby-ikh-realizatsi/#section12

    Быстрая ссылка (быстрый фильтр) — это страница с подборкой товаров под конкретный запрос. Например, «фрезеры бош». Быстрая ссылка имеет ЧПУ и находится в зоне видимости пользователя (заодно, и поисковика).

    Как программировать быстрые фильтры:

    1. В 1С создаем и загружаем на сайт пустые категории в соответствии с группами фраз из семантического ядра. Группы нельзя переименовывать, это важно.
    2. На стороне сайта настраиваем привязки «Адрес категории — Адрес страницы фильтра».
    3. Пишем код, который подставляет на страницу пустой категории список товаров с указанной страницы фильтра. Получается «ЧПУ над ЧПУ».

    настройка быстрых ссылок

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

    Некоторые SEO-специалисты считают, что в интернет-магазине вообще надо закрыть от индексации все страницы с результатами фильтра

    Наша позиция — если вы настроите «Быстрые ссылки» и заведете необходимое количество по всему семантическому ядру, остальные страницы можно «спрятать». На продвигаемые запросы будут страницы (что хорошо). Не используемые — закрыты от поискового робота.

    Размещение текста на странице с фильтром

    В конкурентных тематиках на войне за поисковый трафик мы используем возможности сайта по-максимуму.

    Размещение текстов на страницах категорий каталога помогает получить коммерческий трафик на сайт.

    Чаще всего эту задачу делают вместе с предыдущей. Если есть категория — быстрая ссылка, значит можно разместить и опубликовать ее описание.

    Правильные canonical и отсутствие дублей

    На скриншоте ссылки «сортировка по цене», «алфавиту», «показывать по 20 — 40 — 60» не изменяют товары на странице, только их порядок. С точки зрения поисковика, никакой ценности эти страницы не представляют. SEO-специалисты используют специальный «канонический тег» для указания поисковой машине, какую страницу считать главной и оставить в выдаче.

    генератор дублей

    Инструментов для настройки канонических тегов категорий в битриксе нет. Наш подход к настройке канонических страниц фильтра:

    1. По умолчанию по адресу категории без GET-параметров выводим страницу с сортировкой по цене по возрастанию и внешним видом «Плитка». Эту страницу назначаем канонической с помощью тега
      <link rel="canonical" href="<адрес страницы>" />
    2. 2-я, 3-я и все следующие страницы ссылаются на каноническую страницу по умолчанию. Для Google делаем дополнительно атрибуты
      rel="next" и rel="prev"
    3. Все прочие направления сортировок и внешнего вида товаров (страницы с GET-параметрами, как правило) закрываем от индексации через robots.txt.

    Будьте аккуратнее — если среди запросов пользователей попадаются запросы «дорогие диваны», можно специально для них сделать релевантной страницу с сортировкой по цене от большей к меньшей.

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

    Шаблон правил для robots.txt

    К сожалению, шаблона для настройки robots.txt в части фильтра нет. Каждый проект индивидуален, и задача по настройке файла лежит на плечах SEO-специалиста. Некоторые типовые инструкции:

    Правило Пояснение
    Disallow: /*PAGEN_
    		

    Закрываем все страницы пагинации.

    Работает для всех битриксов.

    Disallow: /*ORDER_BY=
    Disallow: /*desc=
    Disallow: /*sort=
    Disallow: *sort_by=*
    

    Закрываем все страницы сортировки.

    Может отличаться в зависимости от проекта.

    Disallow: */filter/
    Disallow: */apply/
    Disallow: /?set_filter=
    

    Запрещают индексацию страниц фильтра.

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

    Для облегчения первичной настройки воспользуйтесь «Стартовым набором robots.txt» от битрикс.

    стартовый набор robots.txt от битрикс

    Автоматическое добавление в sitemap.xml

    В зависимости от того, закрываете вы страницы фильтра от индексации, или нет — подход к решению задачи может быть различным.

    Сейчас мы делаем карту сайта «по старинке» — автоматически генерируем средствами битрикса и полуавтоматически добавляем адреса страниц фильтра.

    Умный фильтр и коды ответа

    Мы рекомендуем дорабатывать механизм фильтра так, чтобы он умел отдавать следующие коды состояния.

    Код состояния Условие
    200 OK
    

    Страница с результатами фильтра существует и содержит хотя бы 1 товар.

    301 Moved Permanently
    		

    Для случая, когда вы настраиваете «быструю ссылку». Страница с оригинальным адресом должна отдавать 301 редирект на нее.

    304 Not Modified
    		

    Если поисковик обращается к странице с заголовком If-Modified-Since и страница не изменилась, сервер должен вернуть 304 Not Modified. Ниже цитата из документации Google.


    Убедитесь, что ваш веб-сервер поддерживает HTTP-заголовок If-Modified-Since. С его помощью Google может узнать, изменился ли контент сайта с момента последнего сканирования. Эта функция помогает сократить лишнюю нагрузку на сервер — https://support.google.com/webmasters/answer/35769

    404 Not Found
    		

    Для случая, когда адрес страницы неверный.

    410 Gone
    		

    Если сайт знает, что раньше по этому адресу были товары, и больше не будут. — Мы не используем, слишком накладно отслеживать подобные страницы.

    Фильтр не требует квалификации программиста для настройки

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

    Пока, лучшее решение — все настройки выносить в отдельные инфоблоки (highload-блоки), которые можно редактировать в интерфейсе админки.

    Альтернативная попытка — сделать настройку через CSV или другой табличный формат — привела к провалу. Разобраться в хитросплетениях шаблонов названий элементов смог только его автор:

    убер-csv для настройки мета-информации
    Пример файла настроек

    Пример реализации механизма расстановки уникальных заголовков на страницах фильтра (сайт dg-home.ru).

    1. Разработали техническое задания для программирования — описали, какие должны быть заголовки и мета-теги страниц рубрики, фильтра, карточки товара. ТЗ для программиста
    2. Используем бесплатную библиотеку морфологического анализа phpMorphy (http://phpmorphy.sourceforge.net/dokuwiki/). phpMorphy умеет склонять слова русского языка — заголовки и мета-описания получаются фонетически грамотными и привлекательными для пользователей.
    3. Готовим CSV-файлики с настройками для какой категории какое свойство в каком порядке выводить и как правильно склонять его название.
    4. На странице каталога в component_epilog.php размещаем код, который проверяет настройки в CSV для данной категории и устанавливает в соответствии с ними Title, H1, мета-теги. При большом объеме настройки надо выносить в инфоблоки или highload-блоки.

    Ожидания директора магазина

    1. Минимум, а лучше отсутствие изменений в учетной системе (1С). Все решать на стороне сайта. Если в 1С установлен свежий модуль обмена данными, никаких доработок на стороне 1С не потребуется. Максимум — аккуратно создать свойства товаров и привязать товары к соответствующим категориям.
    2. Подрядчик должен решить задачу комплексно и ничего не сломать. Подрядчик умеет проектировать интерфейсы и оптимизировать сайты. Желательно участие SEO-специалиста в процессе написания технического задания на фильтр.

    Скажем честно — комплексные веб-интеграционные проекты — это ни разу не весело. Мы справляемся, но тяжко всем. Заказчикам в том числе.

    Если вы решили поручить работу с умным фильтром своему разработчику — пусть сначала читает нашу статью.

    Внедрение умного и готового к seo фильтра на ваш проект

    Можно внедрять постепенно, можно сразу все. Трудоемкость разработки всех описанных задач — 80 — 100 часов для среднего интернет-магазина.

    Для больших (50 тысяч товаров и больше) появятся проблемы с производительностью, время увеличится на 30-50%.

    Мы рассмотрели решение задач, которые возникают перед веб-разработчиками и SEO-специалистами при настройке умного фильтра на проектах с 1С-Битрикс. Будем рады, если вы поделитесь статьей в социальных сетях и напишете в комментариях, если мы что-то забыли.

    Статья появилась благодаря работе с нашими заказчиками и их проектами:

    • ООО «КирпичРУ» (kirpich.ru);
    • ООО «Декор и Дизайн» (dg-home.ru);
    • ООО «ЛидерСтройИнструмент» (liderstroyinstrument.ru)
    • ООО «Империя Садовода» (www.imperia-sadovoda.ru)

    Доброго времени суток!

    На одном проекте встала задача для комплексного компонента каталога, а в частности при выбранном фильтре проверять параметры которые передаются в URL-е и если в нем находятся несуществующие параметры выводить 404 страницу (при ЧПУ для catalog.smart.filter).

    Для примера, есть действующая рабочая страница с адресом/catalog/dveri/filter/tolshina_polotna-is-35/apply/ и есть старый адрес (или просто любой спамный адрес) /catalog/dveri/filter/tolshina_polotna-is-999999999/apply/. Т.е. такого параметра в фильтре нет, но страница все равно отдает 200 код и выводит данные по странице без фильтра. Вот её то нам и нужно убрать, т.е. выводить 404 код и страницу.

    Сразу хочу сказать, что показанная реализация далеко не идеальная и подходит на минимальных изменениях комплексного шаблона компонента, но каждый может её донастроить «под себя». Мне для выполнения задачи хватило минимальных дополнений.

    Что делаем:

    1) убеждаемся, что у нас добавлен обработчик события на эпилоге, проверяющий константу ERROR_404 и при её наличии выводящий 404 страницу с нужным кодом. Примерно такого содержания:

    AddEventHandler("main", "OnEpilog", "error_page");
    function error_page()
    {
        $page_404 = "/404.php";
        GLOBAL $APPLICATION;
        if(strpos($APPLICATION->GetCurPage(), $page_404) === false && defined("ERROR_404") && ERROR_404 == "Y")
        {
            $APPLICATION->RestartBuffer();
            CHTTP::SetStatus("404 Not Found");
            include($_SERVER["DOCUMENT_ROOT"].SITE_TEMPLATE_PATH."/header.php");
            include($_SERVER["DOCUMENT_ROOT"].$page_404);
            include($_SERVER["DOCUMENT_ROOT"].SITE_TEMPLATE_PATH."/footer.php");
            die();
        }
    }
    

    Добавить его можно в init.php например.

    2) Мы будем проверять, что выбран адрес с установленными значениями фильтра (в моём случае это наличие /filter/), а также есть параметры фильтрации для catalog.section (по умолчанию глобальная переменная $arrFilter, у вас может быть другая).

    Для этого идем в шаблон нашего catalog.section в файл result_modifier.php и там ставим проверку (можно её поставить перед вызовом catalog.section, как вам угодно)

    global $arrFilter;
    $curPage = $APPLICATION->GetCurPage(false);
    
    if(strpos($curPage, "/filter/") !== false && empty($arrFilter))
    {
    	define("ERROR_404","Y");
    }
    

    Как вы можете видеть я проверяю вообще на пустоту массива фильтра $arrFilter, если он у вас где-то еще переопределяется и там присутствуют другие значения (кроме тех, что устанавливает catalog.smart.filter) — вам нужна более сложная логика для проверки. Но для общего примера и понимания мне кажется этого достаточно.

    Все, после этого если адрес страницы содержит /filter/, а параметров фильтрации нет никаких, будет отдаваться 404 страница.

    Оглавление

    • ЧПУ в умном фильтре 1С Битрикс
      • Настройка инфоблока
      • Настройка свойств инфоблока
      • Скармливаем ссылки поисковому роботу
    • Комментарий от SEO специалиста Вадима Кабаева
      • Сразу для понимания
      • Теперь по работе фильтра
    • Подведём итоги

    Одним из преимуществ интернет-магазинов на 1С Битрикс на мой взгляд является наличие не так давно доведённого до ума «умного фильтра». Дело в том что теперь фильтр получил возможность выдавать результаты по вполне симпатичным ЧПУ адресам. А это в свою очередь даёт большие возможности по улучшению SEO магазина, большому охвату НЧ запросов, созданию «посадочных страниц» прямо в структуре каталога и многое другое. Давайте по подробнее рассмотрим все эти плюшки.

    Кто не знает что такое ЧПУ — это «человеко понятные url» т.е когда вы заходите на сайт в раздел Каталог / Телевизоры и видите в в адресной строке не /?s=1&ss=15 а читаемый латиницей адрес /katalog/televizori/ это удобно, и поисковые системы относятся лучше к таким адресам.

    Настройка инфоблока

    И так как же настраивается ЧПУ режим умного фильтра. В первую очередь настраиваем URL страниц в параметрах информационного блока, в админке вкладка Контент / Типы инфоблоков / Каталог / Одежда (в вашем случае название типа и инфоблока могут отличаться). На первой вкладке «Инфоблок» настраиваем слудющие поля:

    Настройка адресов инфоблока

    где

    • #SITE_DIR# — константа битрикса, обозначает папку сайта;
    • /catalog/ — директория в корне сайта, где будет размещён комплексный компонент каталога;
    • #SECTION_CODE# — переменная куда будет подставлен символьный код раздела (обычно это транслитерированное название раздела);
    • #ELEMENT_CODE# — тоже символьный код транслитерированный из названия элемента.

    Чтобы #SECTION_CODE# и #ELEMENT_CODE# формировались автоматически при создании разделов и элементов не забудьте на вкладках «Поля» и «Поля разделов» установить для поля «Символьный код» такие параметры:

    Символьный код

    т.е. мы делаем поле

    • обязательным (первая галочка);
    • проверяем на уникальность (чтобы не получилось что один URL имеют разные страницы);
    • транслитерировать из названия при добавлении (чтобы не вводить код вручную).

    Настройка свойств инфоблока

    Теперь нужно подготовить свойства инфоблока по которым мы будем фильтровать каталог, в качестве демки я взял демо-магазин одежды 1С битрикс, который устанавливается из коробки, а потому предлагаю использовать свойства одежды, например цвет и фасон. Не смотря на то что свойство цвет есть в демо-каталоге, я предлагаю его немного перенастроить. 

    Дело в том что при составлении ЧПУ адреса страницы с результатом фильтрации по определённому свойству, компонент собирает этот URL из кода свойства и внешнего кода выбранного значения свойства.

    составные части url фильтра

    Для того чтобы нам было легче читать URL предлагаю коды свойств и их значений задавать в формате транслита, например свойство «цвет», имеет код «cvet», значение свойства цвет «красный» имеет код «krasniy» и т.д. В начале прописываем код свойства

    Свойство цвет

    А затем коды значений свойства цвет, колонка «Внешний код» в диалоге редактирования свойства инфоблока.

    Настройка свойства

    После смены внешнего кода значений свойств необходимо переопределять их у торговых предложений, т.к. в БД в параметрах торговых предложений сохранено старое значение внешнего кода и новые они (торговые предложения) автоматически не увидят. Поэтому если затеялись творить такое на большом каталоге, обязательно создавайте резервные копии и скриптом переопределяйте значений свойств занося текущие значения в промежуточные таблицы БД.

    То же самое проделываем с вновь созданным свойством «фасон», для простоты я использовал тип свойства «Список». Код свойства «fason» и несколько значений «Футляр -> futlar» и «Сарафан -> sarafan». Кстати код значений свойства фасон при выбранном типе свойства «Список», прописывается в колонке «XML_ID»

    Свойство фасон

    Не забудьте задать нескольким торговым предложениям каталога свойство «Фасон», чтобы оно отобразилось в умном фильтре. Свойства инфоблока настроили, переходим к настройкам компонента bitrix:catalog.

    Настройка компонента

    Переходим в каталог товаров, включаем режим правки и заходим в параметры компонента. В параметрах компонента bitrix:catalog на вкладке «Управление адресами страниц» ищем поле «Url раздела для умного фильтра» — это и есть шаблон ЧПУ адресов с результатами фильтрации. Для сокращения я обычно убираю последнюю часть /apply/ оставляя такую строку #SECTION_CODE#/filter/#SMART_FILTER_PATH#/ где

    • #SECTION_CODE# — код раздела в котором осуществляется фильтрация;
    • #SMART_FILTER_PATH# — путь собранный из кодов свойств и их значений составленный по определённому алгоритму.
    • /filter/ — что-то вроде директивы позволяющей системе правильно идентифицировать и интерпретировать запрашиваемый адрес (т.е. понять открыть определённый раздел или выполнить фильтрацию текущего)

    Сохраняем настройки компонента. Теперь при фильтрации например по свойству «Цвет» = «Красный» — получаем такой URL /catalog/dresses/filter/cvet-is-krasniy/ а если дополнительно отфильтровать каталог по фасону получим URL /catalog/dresses/filter/cvet-is-krasniy/fason-is-futlar/. Если вы всё сделали правильно у вас должны получаться такие ЧПУ URL фильтра. Переходим к самому интересному, настраиваем seo для полученных страниц.

    SEO для страниц результатов фильтра битрикс

    В первую очередь давайте определимся, что мы будем менять для таких вот страниц как /catalog/dresses/filter/cvet-is-krasniy/ (т.е. каталог / плать/ цвет — красный). На мой взгляд минимальный набор для корректировки это title — страницы, meta-keywords, meta-description, заголовок h1 и дополнительный текст (назовём его SEO-текст) на странице видимый пользователю, описывающий данный раздел в трёх — четырёх предложениях.

    Где все эти данные хранить? Есть два варианта, в инфоблоке и в HL-инфоблоке, т.к. мне привычнее первый, реализуем именно его. И так ещё раз что нам нужно хранить в элементах инфоблока:

    1. заголовок страницы (title)
    2. ключевые слова (meta-keywords)
    3. описание страницы (meta-description)
    4. заголовок (h1)
    5. SEO — текст (текст для посетителя)
    6. URL страницы на которой все эти данные нужно изменить / вывести

    Создадим инфоблок с соответствующими полями.

    Для удобства дальнейшей работы с инфоблоком сохраните его идентификатор в константу IBLOCK_SEO в файл /bitrix/php_interface/init.php это позволит подставлять в код функции осмысленное значение IBLOCK_SEO а не просто число, что в последствии повысит качество и восприятие кода.

    Поле URL страницы делаем обязательным т.к. по нему будет определяться к какой странице применить заданные свойства. В результате получаются вот такие элементы:

    Настройка SEO элемента

    Теперь необходимо в файле шаблона section.php комплексного компонента каталога после вызова компонента catalog.section разместить следующий код:

    
    //Получаем SEO параметры текущей страницы
    	$currentPageUrl = $APPLICATION->GetCurPage();
    	$currentPageSeo = array();
    	$arSelect = Array("ID", "PROPERTY_TITLE", "PROPERTY_META_KEYWORDS", "PROPERTY_META_DESCRIPTION", "PROPERTY_HEADER", "PROPERTY_SEO_TEXT");
    	$arFilter = Array("IBLOCK_ID"=>IBLOCK_SEO, "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y", "PROPERTY_PAGE_URL"=>$currentPageUrl);
    	$res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect);
    	while($ob = $res->GetNextElement()){
    		$arFields = $ob->GetFields();
    		$currentPageSeo = array(
    				"TITLE" => $arFields["PROPERTY_TITLE_VALUE"],
    				"KEYWORDS" => $arFields["PROPERTY_META_KEYWORDS_VALUE"],
    				"DESCRIPTION" => $arFields["PROPERTY_META_DESCRIPTION_VALUE"],
    				"HEADER" => $arFields["PROPERTY_HEADER_VALUE"],
    				"SEO_TEXT" => $arFields["PROPERTY_SEO_TEXT_VALUE"]["TEXT"],
    			);
    	}
    
    	//Устанавливаем полученные параметры
    	if($currentPageSeo["TITLE"]){
    		$APPLICATION->SetPageProperty("title", $currentPageSeo["TITLE"]);
    	}
    
    	if($currentPageSeo["KEYWORDS"]){
    		$APPLICATION->SetPageProperty("keywords", $currentPageSeo["KEYWORDS"]);
    	}
    
    	if($currentPageSeo["DESCRIPTION"]){
    		$APPLICATION->SetPageProperty("description", strip_tags($currentPageSeo["DESCRIPTION"]["TEXT"]));
    	}
    
    	if($currentPageSeo["HEADER"]){
    		$APPLICATION->SetTitle($currentPageSeo["HEADER"]);
    	}
    
    	if($currentPageSeo["SEO_TEXT"]){
    		$arResult["SEO_TEXT"] =  htmlspecialcharsBack($currentPageSeo["SEO_TEXT"]);
    	}
    
    

    Что мы делаем в данном скрипте, первым делом получаем параметры текущей страницы (переменная $curPage) фильтра. Если таковые имеются сохраняем их в массив $arSeo, а дальше дополнительно проверяя каждое конкретное значение устанавливаем соответствующее свойство страницы.

    Блок с SEO-текстом можно красиво оформить и вывести под списком товаров попавших в выборку. Что же нам дал такой механизм? Теперь мы можем «выжать» семантическое ядро сайта по максимуму и фактически для каждой страницы задать уникальный title, keywords, description и т.д. Создава для каждого низкочастотного запроса например «Красное шёлкове платье, фасон сарафан, размера L» — отдельную страницу с уникальным URL и заголовками (страницу результатов фильтра) на которй представить пользователю ассортимент моделей товаров удовлетворяющих его запросу. А это в свою очередь улучшение поведенческих факторов и повышение конверсии, т.к. посетитель сайта сразу получает страницу именно с тем товаром что он искал.

    Давайте создадим несколько элементов для примера. Через SEO инфоблок я создал описание для страницы с фильтром по синему цвету и по цвету + фасону. Получилось следующее:

    Элементы SEO инфоблока

    теперь отфильтровав раздел платья по свойству цвет (цвет = синий) я получаю такой результат:

    Страница фильтра

    Отлично! Теперь можно гибко настроить каталог товаров по большому списку низкочастотных конверсионных запросов. Осталось сделать пару настроек чтобы эти страницы лучше проиндексировались.

    Скармливаем ссылки поисковому роботу

    Во всей этой истории есть один нюанс, поисковый робот сам никак не увидит ссылки на страницы фильтра для которых мы настроили SEO. Как же нам их вывести? Для удобства управления и красоты предлагаю следующее решение. Для разделов каталога добавляем множественное свойство типа «Привязка к элементам инфоблока» и указываем наш SEO-инфоблок. С помощью этой привязки мы сможем выводить в нужных нам разделах блок ссылок-фильтров.

    Для создания такой связи, перейдите к редактирванию любого раздела каталога в админке, на вкладке «Доп. поля» есть ссылка «Добавить пользовательское свойство» и настройте привязку к SEO-инфоблоку:

    Привязка к инфоблоку

    Не забываем отметить галочку «Множественное», т.к. потом сделать созданное пользовательское поле множественным не получится, придётся пересоздавать. А нам нужно именно множественное свойство.

    Своё свойство я назвал «Быстрые ссылки», а код поля задал как UF_SEO_ITEMS. Теперь давайте установим несколько связей для теста. В своём SEO-инфоблоке я создал несколько элементов описывающих различные страницы фильтра, они все относятся к разделу «Платья». Переходим редактированию раздела платья, вкладка «Доп. поля» и в свойстве «Быстрые ссылки» выбираем те элементы SEO-инфоблока которые относятся к этому разделу, у меня таких два «Платья синего цвета» и «Синие платья футляр».

    Быстрые ссылки

    Теперь нужно вывести их посетителю сайта. Идём в компонент каталога, ищем там компонент catalog.section, у меня это папка /bitrix/templates/#шаблон_сайта#/components/bitrix/catalog/#имя_шаблона_компонента#/bitrix/catalog.section/.default/ нас интересует файл result_modifier.php и вставляем следующий код:

    
            //Получаем быстрые ссылки текущего раздела
    	$seoItems = array();
    	$arSectionSelect = array("ID", "UF_SEO_ITEMS");
    	$arSectionFilter = array("IBLOCK_ID"=>$arParams["IBLOCK_ID"], "ID"=>$arResult["ID"]);
    	$dbSectionList = CIBlockSection::GetList(array(), $arSectionFilter, false, $arSectionSelect);
    	while($arSection = $dbSectionList->GetNext()){
    		$seoItems = $arSection["UF_SEO_ITEMS"];
    	}
    
    	//Получаем Анкро и URL быстрых ссылок раздела
    	$fastUrlsList = array();
    	$arSelect = Array("ID", "NAME", "PROPERTY_PAGE_URL");
    	$arFilter = Array("IBLOCK_ID"=>IBLOCK_SEO, "ACTIVE"=>"Y", "ID"=>$seoItems);
    	$res = CIBlockElement::GetList(array("SORT"=>"ASC"), $arFilter, false, false, $arSelect);
    	while($ob = $res->GetNextElement()){
    		$arFields = $ob->GetFields();
    		$fastUrlsList[] = array(
    			"NAME" => $arFields["NAME"],
    			"URL" => $arFields["PROPERTY_PAGE_URL_VALUE"],
    		);
    	}
    
    	//Сохраняем результат в кеш компонента
    	if($fastUrlsList){
    		$arResult["FAST_URL_LIST"] = $fastUrlsList;
    		$this->__component->setResultCacheKeys(array("FAST_URL_LIST"));
    	}
    
    

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

    Быстрые ссылки в разделе

    Во-первых их будет видеть робот проходя по странице раздела, во-вторых это улучшение юзабилити. Теперь клиент переходя в раздел платья будет видеть блок быстрых ссылок-фильтров (напр. Вечерние платья, Платья больших размеров, Платья для выпускного и т.д.) перейдя по которым он попадёт на страницу с товарами категории отфильтрованную по определённому набору параметров (размер, цвет, фасон, тип, назначение и т.д.) что избавит его от необходимости самому использовать фильтр.

    В третьих мы разбавляем анкор-лист документа низкочастотниками (НЧ), что позволяет более широко охватить тематику раздела (в данном случае раздела платья).

    Комментарий от SEO специалиста Вадима Кабаева

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

    Сразу для понимания

    В гугле закрывать от индексации нужно через meta тег robots со значением noindex. Либо noindex добавлять в HTTP-заголовок X-Robots-Tag. Работает для Яндекса и Гугла. Robots.txt не решает вопрос закрытия от индексации для Гугла. Сканирование и индексация это два разных процесса.

    Теперь по работе фильтра

    Возможно данная реализация часть из ниже написанного решает, но всё равно напишу.

    1. При выборе двух и более значений внутри одного свойства, такие страницы не должны индексироваться. /cvet-sinii-or-white/fason-futlar/
    2. Нужно строго соблюдать последовательность в URL, что бы не плодить дубли (/cvet-sinii/fason-futlar/ и /fason-futlar/cvet-sinii/ дубли)
    3. Часто нужны правила перемножения. Внутри раздела может быть 10 свойств (цвет, материал, фасон, сезон, бренд, размер и т.д.). Если мы начнём генерить страницы перемножением всё на всё, мы можем получить страницы пустышки (без поискового спроса) «Платье синее из шерсти футляр летнее Бренд 42 размера…»
      Такие страницы нужны не на всех сайтах, а в некоторых случаях могут даже навредить.
    4. Краулинговый бюджет. На каждый сайт ПС выделяют лимит по кол-ву страниц для обхода в сутки, так как мощности ПС не бесконечны. Создавая страницы без спроса мы можем расходовать наш краулинговый бюджет не эффективно. Поэтому нам нужно составлять список таких страниц и закрывать их в Robots.txt. Идеально наличие в URL паттернов по которым можно страницы закрывать от сканирования.
    5. Шаблоны для страниц фильтров — хорошо бы использовать шаблоны для генерации мета-данных, заголовков и текстов.
    6. На некоторых сайтах встречаются страницы полученные фильтрами без товаров. Это тоже косяк.

    Подведём итоги

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

    Administrator

    • #1

    Wizzard добавил(а) новый ресурс:

    Сотбит SEO умного фильтра – мета-теги, заголовки, карта сайта (sotbit.seometa) — Инструмент, позволяющий значительно увеличить трафик интернет-магазина.

    Описание:

    SEO умного фильтра

    – инструмент, позволяющий значительно увеличить трафик интернет-магазина. Это происходит за счет создания множества уникальных страниц умного фильтра.

    Функциональность модуля:

    — Уникальные мета-теги.

    Для каждой страницы умного фильтра создается своя уникальная мета-информация, позволяющая продвигать эти страницы в интернете.
    — Карта сайта. Модуль позволяет генерировать карту сайта страницы умного фильтра. Это упрощает индексацию страниц…

    Узнать больше об этом ресурсе…

    KurtDCobain

    • #2

    Спасибо за модуль! Попробую, отпишусь.

    Smolvelles

    • #3

    Спасибо за модуль! Сейчас проверим.

    MARVEL

    • #4

    Ну сотбит плохого вроде не делает. Спасибо.

    Последнее редактирование модератором: 03.03.21

    Никита

    • #5

    Спасибо за модуль, очень полезный.

    Administrator

    frady

    • #7

    Спасибо за модуль! Сейчас проверим.

    zbwj

    • #8

    Спасибо за модуль! Сейчас проверим.

    Biti

    • #9

    Спасибо за модуль! Сейчас проверим.

    Veronicka

    • #10

    Спасибо большое будем пробовать модуль

    uroboros

    • #11

    Спасибо за модуль! Сейчас проверим.

    Administrator

    • #12

    Спасибо за модуль! Сейчас проверим.

    Не проверите! Все ресурсы доступны только для платных групп «VIP-пользователь».

    corp-kvatr41952

    • #13

    Спасибо за модуль! Попробую, отпишусь.

    • #14

    Спасибо за модуль, долго искал.

    Administrator

    Cania

    • #16

    Спасибо за модуль! Попробую, отпишусь.

    • #17

    Классный модуль . Давно искал.

    Последнее редактирование модератором: 23.09.21

    Administrator

    Morphium

    • #19

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

    Последнее редактирование модератором: 16.11.21

    le0ruslan

    • #20

    Рекомендую к установке. Скачиваю обновления.

    Последнее редактирование модератором: 22.11.21


    Нюансы внедрения seo фильтра сотбит

    27.04.2020
    Очень часто люди думают, купил модуль и всё готово, мол там работы на 5 минут. В этой заметке расскажу о нюансах внедрения seo фильтра сотбит, которые не очевидны, но кардинально влияют на стоимость работ по доработке Битрикс
    .
    1) Если в каталоге нет разделов, тогда seo фильтр сотбит работать не будет. 
    2) Если редакция старт (стандарт), вероятность, что там seo фильтр сотбит работать не будет очень высока и потребуется комплекс работ по доработке битрикса
    3) Если каталог без комплексного компонента каталога, а его часто делают на базе компонента news, в этом случае тоже не будет работать.
    4) Если шаблон smart filter не поддерживает штатный функционал, либо он кардинально переделан, в этом случае также seo фильтр сотбит работать не будет. Придётся переделывать шаблон фильтра с сохранением дизайна. А это дело я вам скажу не быстрое, фильтр является одним из сложных элементов для доработок.

    И только после выполнения всех необходимых доработок seo фильтр сотбит заработает, и мы получим результат ради чего всё затевалось.
    Управление настройками условий для облака тегов

    сотбит условия для облака тегов.png

    И собственно сами теги на страницах каталога

    сотбит облако тегов.png

    Ещё статьи:

    18.01.2023
    Нюансы перехода битрикс на РНР 8.0
    С февраля битрикс прекращает поддерживать РНР 7.4 и в битрикс сегменте сайтов начался переход на РНР 8 для получения обновлений.
    Но без нюансов и ошибок…
    ID: 431

    10.01.2023
    БУС окончательно всё?
    Появилась информация от битрикс, что грубо говоря поддержка по отраслевому медицинскому решению от битрикс будет до 1 февраля 2024 года, а что потом б…
    ID: 426

    30.08.2022
    Типовые претензии к подрядчику и к битрикс
    По свежим следам я собрал типовые претензии к подрядчику и к битрикс. Мной был проведён аудит и я увидел, что техническое состояние сайта хорошее, нареканий…
    ID: 338

    Новые статьи в блоге:

    Возврат к списку

    Распространенной задачей SEO оптимизации является переход умного фильтра на человекопонятный url.

    Для возможности продвижения сайта по низкочастотным запросам было принято решение по переходу фильтра со стандартного $_GET запроса (?width=165&radius=13&profile=35&proizvoditel=Bridgestone&section=tyre) на ЧПУ (/filter/manufacturer-is-continental/p_width_tyres-is-155/p_profile_tyres-is-65/p_radius-is-r13/apply/).

    Основными моментами перехода служит параметр компонента фильтра catalog.smart.filter :
    SEF_MODE => «Y» и установкой пути построения url SECTION_CODE_PATH  => путь к каталогу товаров/filter/#SMART_FILTER_PATH#/apply/
    так же рекомендуется заполнять параметр PREFILTER_NAME => массив фильтруемых свойств, в которую передается массив параметров из дополнительного фильтра, для актуальности выводимых свойств фильтра и их совместимости между собой.

    Если используется фасетный индекс и несколько условий выбора цены, то может возникнуть проблема вывода товаров в списке, для этого нужно будет удалить параметр «FACET_OPTIONS» в передаваемом массиве свойств.

    Не забываем изменить файл urlrewrite.php по примеру

      array (
        ‘CONDITION’ => ‘#^/catalog/filter/(.+?)/apply/#’,
        ‘RULE’ => ‘SMART_FILTER_PATH=$1’,
        ‘ID’ => ‘bitrix:catalog.smart.filter’,
        ‘PATH’ => ‘/catalog/index.php’,
      ),

    так как без него фильтр работать не будет или будет выдавать 404 ошибку

    В дальнейшем генерировать карту сайта для фильтра необходимо будет вручную, так как стандартный функционал Битрикса не собирает ссылки с запросов умного фильтра, с помощью CIBlockElement::GetList и создания файла с расширением .xml, тут фильтр выборки для каждого может быть свой из за индивидуальности свойств и нужных разделов для генерации sitemap.

     

    Если в вызове «bitrix:catalog» указать «SET_STATUS_404» => «N»  фильтр работает, но вместо 404 ошибки на страницах с неправильным адресом выходит страница каталога с кодом 200.
    Как сделать чтобы и 404 отображалась и фильтр работал?

     

    помимо параметра компонента -> установить 404, еще нужно в init.php сделать небольшую настройку вывода 404

     

    Пользователь 3123557

    Заглянувший

    Сообщений: 8
    Регистрация: 19.04.2019

    #3

    0

    19.04.2019 09:32:13

    Цитата
    Сергей . написал:
    помимо параметра компонента -> установить 404, еще нужно в init.php сделать небольшую настройку вывода 404

    Можете примерно написать как должна работать функция в init.php?

     

    Пользователь 180446

    Эксперт

    Сообщений: 684
    Баллов: 92
    Регистрация: 11.04.2013

    #4

    0

    19.04.2019 09:32:30

    Цитата
    Константин Забурунов написал:
    Как сделать чтобы и 404 отображалась и фильтр работал?

    Так попробуй

    Код
    "SET_STATUS_404" => "Y"
    
     

    Пользователь 3123557

    Заглянувший

    Сообщений: 8
    Регистрация: 19.04.2019

    #5

    0

    19.04.2019 09:37:16

    Цитата
    Александр Медведев написал:

    Цитата
    Константин Забурунов  написал:
    Как сделать чтобы и 404 отображалась и фильтр работал?

    Так попробуй

    Код
      "SET_STATUS_404"  =>  "Y" 
     

    В таком случае при применении фильтра выдается 404, т.е. фильтр перестает работать.
    Это локальный баг сайта или такова специфика работы smart.filter?

     

    Локальный баг.
    По какому урлу отправляет фильтр?
    Какие настройки у него?
    Зачем ты фамилию поменял?  :D  

     

    Пользователь 3123557

    Заглянувший

    Сообщений: 8
    Регистрация: 19.04.2019

    #7

    0

    19.04.2019 09:58:51

    Цитата
    Александр Медведев написал:
    Локальный баг.По какому урлу отправляет фильтр?Какие настройки у него?

    Файлы с вызовами компонентов section.php строчка 111

    https://yadi.sk/d/mlTsG333C69upw

    Цитата
    Александр Медведев написал:
    Зачем ты фамилию поменял?

    Хотел инкогнито))

     

    Пользователь 3123557

    Заглянувший

    Сообщений: 8
    Регистрация: 19.04.2019

    #8

    0

    19.04.2019 11:57:18

    Цитата
    Константин Dev написал:
    Цитата Александр Медведев  написал:Зачем ты фамилию поменял? Хотел инкогнито))

    Просто API bitrix еще плохо знаю, если ответ был бы на поверхности, то я бы мог выглядеть глупо)

     

    Бли неохота скачивать файлы, давай инфу сюда.
    Урл и параметры компонентра фильтра

     

    Пользователь 3123557

    Заглянувший

    Сообщений: 8
    Регистрация: 19.04.2019

    #10

    0

    19.04.2019 12:27:50

    Цитата
    Александр Медведев написал:
    Бли неохота скачивать файлы, давай инфу сюда.
    Урл и параметры компонентра фильтра

    Ок:)

    https://clck.ru/FgY5r

    Код
                $APPLICATION->IncludeComponent(
                    "ik:catalog.smart.filter",
                    "",
                    array(
                        "IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"],
                        "IBLOCK_ID" => $arParams["IBLOCK_ID"],
                        "SECTION_ID" => $arCurSection['ID'],
                        "FILTER_NAME" => $arParams["FILTER_NAME"],
                        "PRICE_CODE" => $arParams["PRICE_CODE"],
                        "CACHE_TYPE" => $arParams["CACHE_TYPE"],
                        "CACHE_TIME" => $arParams["CACHE_TIME"],
                        "CACHE_GROUPS" => $arParams["CACHE_GROUPS"],
                        "SAVE_IN_SESSION" => "N",
                        "FILTER_VIEW_MODE" => $arParams["FILTER_VIEW_MODE"],
                        "XML_EXPORT" => "Y",
                        "SECTION_TITLE" => "NAME",
                        "SECTION_DESCRIPTION" => "DESCRIPTION",
                        'HIDE_NOT_AVAILABLE' => $arParams["HIDE_NOT_AVAILABLE"],
                        "TEMPLATE_THEME" => $arParams["TEMPLATE_THEME"],
                        'CONVERT_CURRENCY' => $arParams['CONVERT_CURRENCY'],
                        'CURRENCY_ID' => $arParams['CURRENCY_ID'],
                        "SEF_MODE" => $arParams["SEF_MODE"],
                        "SEF_RULE" => $arResult["FOLDER"] . $arResult["URL_TEMPLATES"]["smart_filter"],
                        "SMART_FILTER_PATH" => $arResult["VARIABLES"]["SMART_FILTER_PATH"],
                        "PAGER_PARAMS_NAME" => $arParams["PAGER_PARAMS_NAME"],
                        "INSTANT_RELOAD" => $arParams["INSTANT_RELOAD"],
                    ),
                    $component,
                    array('HIDE_ICONS' => 'Y')
                );
    

    Доброго времени суток!

    На одном проекте встала задача для комплексного компонента каталога, а в частности при выбранном фильтре проверять параметры которые передаются в URL-е и если в нем находятся несуществующие параметры выводить 404 страницу (при ЧПУ для catalog.smart.filter).

    Для примера, есть действующая рабочая страница с адресом/catalog/dveri/filter/tolshina_polotna-is-35/apply/ и есть старый адрес (или просто любой спамный адрес) /catalog/dveri/filter/tolshina_polotna-is-999999999/apply/. Т.е. такого параметра в фильтре нет, но страница все равно отдает 200 код и выводит данные по странице без фильтра. Вот её то нам и нужно убрать, т.е. выводить 404 код и страницу.

    Сразу хочу сказать, что показанная реализация далеко не идеальная и подходит на минимальных изменениях комплексного шаблона компонента, но каждый может её донастроить «под себя». Мне для выполнения задачи хватило минимальных дополнений.

    Что делаем:

    1) убеждаемся, что у нас добавлен обработчик события на эпилоге, проверяющий константу ERROR_404 и при её наличии выводящий 404 страницу с нужным кодом. Примерно такого содержания:

    AddEventHandler("main", "OnEpilog", "error_page");
    function error_page()
    {
        $page_404 = "/404.php";
        GLOBAL $APPLICATION;
        if(strpos($APPLICATION->GetCurPage(), $page_404) === false && defined("ERROR_404") && ERROR_404 == "Y")
        {
            $APPLICATION->RestartBuffer();
            CHTTP::SetStatus("404 Not Found");
            include($_SERVER["DOCUMENT_ROOT"].SITE_TEMPLATE_PATH."/header.php");
            include($_SERVER["DOCUMENT_ROOT"].$page_404);
            include($_SERVER["DOCUMENT_ROOT"].SITE_TEMPLATE_PATH."/footer.php");
            die();
        }
    }
    

    Добавить его можно в init.php например.

    2) Мы будем проверять, что выбран адрес с установленными значениями фильтра (в моём случае это наличие /filter/), а также есть параметры фильтрации для catalog.section (по умолчанию глобальная переменная $arrFilter, у вас может быть другая).

    Для этого идем в шаблон нашего catalog.section в файл result_modifier.php и там ставим проверку (можно её поставить перед вызовом catalog.section, как вам угодно)

    global $arrFilter;
    $curPage = $APPLICATION->GetCurPage(false);
    
    if(strpos($curPage, "/filter/") !== false && empty($arrFilter))
    {
    	define("ERROR_404","Y");
    }
    

    Как вы можете видеть я проверяю вообще на пустоту массива фильтра $arrFilter, если он у вас где-то еще переопределяется и там присутствуют другие значения (кроме тех, что устанавливает catalog.smart.filter) — вам нужна более сложная логика для проверки. Но для общего примера и понимания мне кажется этого достаточно.

    Все, после этого если адрес страницы содержит /filter/, а параметров фильтрации нет никаких, будет отдаваться 404 страница.

    Доброго времени суток!

    На одном проекте встала задача для комплексного компонента каталога, а в частности при выбранном фильтре проверять параметры которые передаются в URL-е и если в нем находятся несуществующие параметры выводить 404 страницу (при ЧПУ для catalog.smart.filter).

    Для примера, есть действующая рабочая страница с адресом/catalog/dveri/filter/tolshina_polotna-is-35/apply/ и есть старый адрес (или просто любой спамный адрес) /catalog/dveri/filter/tolshina_polotna-is-999999999/apply/. Т.е. такого параметра в фильтре нет, но страница все равно отдает 200 код и выводит данные по странице без фильтра. Вот её то нам и нужно убрать, т.е. выводить 404 код и страницу.

    Сразу хочу сказать, что показанная реализация далеко не идеальная и подходит на минимальных изменениях комплексного шаблона компонента, но каждый может её донастроить «под себя». Мне для выполнения задачи хватило минимальных дополнений.

    Что делаем:

    1) убеждаемся, что у нас добавлен обработчик события на эпилоге, проверяющий константу ERROR_404 и при её наличии выводящий 404 страницу с нужным кодом. Примерно такого содержания:

    AddEventHandler("main", "OnEpilog", "error_page");
    function error_page()
    {
        $page_404 = "/404.php";
        GLOBAL $APPLICATION;
        if(strpos($APPLICATION->GetCurPage(), $page_404) === false && defined("ERROR_404") && ERROR_404 == "Y")
        {
            $APPLICATION->RestartBuffer();
            CHTTP::SetStatus("404 Not Found");
            include($_SERVER["DOCUMENT_ROOT"].SITE_TEMPLATE_PATH."/header.php");
            include($_SERVER["DOCUMENT_ROOT"].$page_404);
            include($_SERVER["DOCUMENT_ROOT"].SITE_TEMPLATE_PATH."/footer.php");
            die();
        }
    }
    

    Добавить его можно в init.php например.

    2) Мы будем проверять, что выбран адрес с установленными значениями фильтра (в моём случае это наличие /filter/), а также есть параметры фильтрации для catalog.section (по умолчанию глобальная переменная $arrFilter, у вас может быть другая).

    Для этого идем в шаблон нашего catalog.section в файл result_modifier.php и там ставим проверку (можно её поставить перед вызовом catalog.section, как вам угодно)

    global $arrFilter;
    $curPage = $APPLICATION->GetCurPage(false);
    
    if(strpos($curPage, "/filter/") !== false && empty($arrFilter))
    {
    	define("ERROR_404","Y");
    }
    

    Как вы можете видеть я проверяю вообще на пустоту массива фильтра $arrFilter, если он у вас где-то еще переопределяется и там присутствуют другие значения (кроме тех, что устанавливает catalog.smart.filter) — вам нужна более сложная логика для проверки. Но для общего примера и понимания мне кажется этого достаточно.

    Все, после этого если адрес страницы содержит /filter/, а параметров фильтрации нет никаких, будет отдаваться 404 страница.

    День добрый подскажите, как можно решить данную проблемку, подключил с начала комплексный компонент каталог, потом умный фильтр. Зашёл в настройки инфоблока и поставил галочки показывать в умном фильтре, вид в умном фильтре, показывать развёрнутым и всё это напротив свойств цена и бренды. После чего появился фильтр с параметрами цена и бренды, но если нажать на кнопку показать ничего не выдаёт?

    Код умного фильтра

     <?$APPLICATION->IncludeComponent(
    "bitrix:catalog.smart.filter",
    ".default",
    Array(
        "CACHE_GROUPS" => "Y",
        "CACHE_TIME" => "36000000",
        "CACHE_TYPE" => "A",
        "COMPONENT_TEMPLATE" => ".default",
        "DISPLAY_ELEMENT_COUNT" => "Y",
        "FILTER_NAME" => "arrFilter",
        "FILTER_VIEW_MODE" => "vertical",
        "IBLOCK_ID" => "1",
        "IBLOCK_TYPE" => "Catalog",
        "INSTANT_RELOAD" => "N",
        "PAGER_PARAMS_NAME" => "arrPager",
        "POPUP_POSITION" => "left",
        "SAVE_IN_SESSION" => "N",
        "SECTION_CODE" => "",
        "SECTION_DESCRIPTION" => "-",
        "SECTION_ID" => $_REQUEST["SECTION_ID"],
        "SECTION_TITLE" => "-",
        "SEF_MODE" => "N",
        "TEMPLATE_THEME" => "blue",
        "XML_EXPORT" => "N"
    )
    

    );?>

    Код каталога

                 <?$APPLICATION->IncludeComponent(
    "bitrix:catalog",
    "Catalog",
    Array(
        "ACTION_VARIABLE" => "action",
        "ADD_ELEMENT_CHAIN" => "N",
        "ADD_PICT_PROP" => "-",
        "ADD_PROPERTIES_TO_BASKET" => "Y",
        "ADD_SECTIONS_CHAIN" => "Y",
        "AJAX_MODE" => "N",
        "AJAX_OPTION_ADDITIONAL" => "",
        "AJAX_OPTION_HISTORY" => "N",
        "AJAX_OPTION_JUMP" => "N",
        "AJAX_OPTION_STYLE" => "Y",
        "BASKET_URL" => "/personal/basket.php",
        "CACHE_FILTER" => "N",
        "CACHE_GROUPS" => "Y",
        "CACHE_TIME" => "36000000",
        "CACHE_TYPE" => "A",
        "COMPONENT_TEMPLATE" => "Catalog",
        "DETAIL_ADD_DETAIL_TO_SLIDER" => "N",
        "DETAIL_BACKGROUND_IMAGE" => "-",
        "DETAIL_BRAND_USE" => "N",
        "DETAIL_BROWSER_TITLE" => "-",
        "DETAIL_CHECK_SECTION_ID_VARIABLE" => "N",
        "DETAIL_DETAIL_PICTURE_MODE" => "IMG",
        "DETAIL_DISPLAY_NAME" => "Y",
        "DETAIL_DISPLAY_PREVIEW_TEXT_MODE" => "E",
        "DETAIL_META_DESCRIPTION" => "-",
        "DETAIL_META_KEYWORDS" => "-",
        "DETAIL_PROPERTY_CODE" => array(0=>"",1=>"",),
        "DETAIL_SET_CANONICAL_URL" => "N",
        "DETAIL_USE_COMMENTS" => "N",
        "DETAIL_USE_VOTE_RATING" => "Y",
        "DETAIL_VOTE_DISPLAY_AS_RATING" => "rating",
        "DISPLAY_BOTTOM_PAGER" => "Y",
        "DISPLAY_TOP_PAGER" => "N",
        "ELEMENT_SORT_FIELD" => "sort",
        "ELEMENT_SORT_FIELD2" => "id",
        "ELEMENT_SORT_ORDER" => "asc",
        "ELEMENT_SORT_ORDER2" => "desc",
        "FILTER_VIEW_MODE" => "VERTICAL",
        "IBLOCK_ID" => "1",
        "IBLOCK_TYPE" => "Catalog",
        "INCLUDE_SUBSECTIONS" => "N",
        "LABEL_PROP" => "-",
        "LINE_ELEMENT_COUNT" => "3",
        "LINK_ELEMENTS_URL" => "link.php?PARENT_ELEMENT_ID=#ELEMENT_ID#",
        "LINK_IBLOCK_ID" => "",
        "LINK_IBLOCK_TYPE" => "",
        "LINK_PROPERTY_SID" => "",
        "LIST_BROWSER_TITLE" => "-",
        "LIST_META_DESCRIPTION" => "-",
        "LIST_META_KEYWORDS" => "-",
        "LIST_PROPERTY_CODE" => array(0=>"",1=>"",),
        "MESSAGE_404" => "",
        "MESS_BTN_ADD_TO_BASKET" => "В корзину",
        "MESS_BTN_BUY" => "Купить",
        "MESS_BTN_COMPARE" => "Сравнение",
        "MESS_BTN_DETAIL" => "Подробнее",
        "MESS_NOT_AVAILABLE" => "Нет в наличии",
        "PAGER_BASE_LINK_ENABLE" => "N",
        "PAGER_DESC_NUMBERING" => "N",
        "PAGER_DESC_NUMBERING_CACHE_TIME" => "36000",
        "PAGER_SHOW_ALL" => "N",
        "PAGER_SHOW_ALWAYS" => "N",
        "PAGER_TEMPLATE" => ".default",
        "PAGER_TITLE" => "Товары",
        "PAGE_ELEMENT_COUNT" => "30",
        "PARTIAL_PRODUCT_PROPERTIES" => "N",
        "PRICE_CODE" => array(0=>"ATTR_PRICE",),
        "PRICE_VAT_INCLUDE" => "Y",
        "PRICE_VAT_SHOW_VALUE" => "N",
        "PRODUCT_ID_VARIABLE" => "id",
        "PRODUCT_PROPERTIES" => array(),
        "PRODUCT_PROPS_VARIABLE" => "prop",
        "PRODUCT_QUANTITY_VARIABLE" => "",
        "SECTIONS_HIDE_SECTION_NAME" => "N",
        "SECTIONS_SHOW_PARENT_NAME" => "Y",
        "SECTIONS_VIEW_MODE" => "TILE",
        "SECTION_BACKGROUND_IMAGE" => "-",
        "SECTION_COUNT_ELEMENTS" => "N",
        "SECTION_ID_VARIABLE" => "SECTION_ID",
        "SECTION_TOP_DEPTH" => "2",
        "SEF_FOLDER" => "/catalog/",
        "SEF_MODE" => "Y",
        "SEF_URL_TEMPLATES" => array("sections"=>"","section"=>"#SECTION_CODE_PATH#/","element"=>"#SECTION_CODE_PATH#/#ELEMENT_ID#/","compare"=>"compare.php?action=#ACTION_CODE#","smart_filter"=>"#SECTION_ID#/filter/#SMART_FILTER_PATH#/apply/",),
        "SET_LAST_MODIFIED" => "N",
        "SET_STATUS_404" => "N",
        "SET_TITLE" => "Y",
        "SHOW_404" => "N",
        "SHOW_DEACTIVATED" => "N",
        "SHOW_PRICE_COUNT" => "1",
        "SHOW_TOP_ELEMENTS" => "N",
        "SIDEBAR_DETAIL_SHOW" => "Y",
        "SIDEBAR_PATH" => "",
        "SIDEBAR_SECTION_SHOW" => "Y",
        "TEMPLATE_THEME" => "blue",
        "TOP_ELEMENT_COUNT" => "9",
        "TOP_ELEMENT_SORT_FIELD" => "sort",
        "TOP_ELEMENT_SORT_FIELD2" => "id",
        "TOP_ELEMENT_SORT_ORDER" => "asc",
        "TOP_ELEMENT_SORT_ORDER2" => "desc",
        "TOP_LINE_ELEMENT_COUNT" => "3",
        "TOP_PROPERTY_CODE" => array(0=>"",1=>"",),
        "TOP_VIEW_MODE" => "SECTION",
        "USE_COMPARE" => "N",
        "USE_ELEMENT_COUNTER" => "Y",
        "USE_FILTER" => "N",
        "USE_MAIN_ELEMENT_SECTION" => "N",
        "USE_PRICE_COUNT" => "N",
        "USE_PRODUCT_QUANTITY" => "N",
        "USE_STORE" => "N",
        "VARIABLE_ALIASES" => array("compare"=>array("ACTION_CODE"=>"action",),)
    )
    

    );?>

    • Что такое умный фильтр
    • В чем сложность и вопрос?
    • История исследования и разработки умного фильтра
    • Почему нельзя использовать умный фильтр Битрикса «из коробки»?
    • Ожидания покупателя от работы фильтра
      • Какие флажки помещать в умный фильтр?
    • Требования SEO-специалистов к умному фильтру
      • Уникальные title, keywords, description, h1.
      • «Быстрые ссылки» — готовые результаты фильтра
      • Размещение текста на странице с фильтром
      • Правильные canonical и отсутствие дублей
      • Шаблон правил для robots.txt
      • Автоматическое добавление в sitemap.xml
      • Умный фильтр и коды ответа
      • Фильтр не требует квалификации программиста для настройки
      • Пример реализации механизма расстановки уникальных заголовков на страницах фильтра (сайт dg-home.ru).
    • Ожидания директора магазина
    • Внедрение умного и готового к seo фильтра на ваш проект

    Есть проекты — интернет-магазины. Это сложные проекты и для продвижения, и для веб-разработки.

    В них сотни и тысячи товаров. Десятки и сотни категорий.

    Есть особый тип страниц — страницы фильтра. Их на порядок больше. Они собирают трафик по огромному количеству запросов и важны для SEO.

    Пример: на сайте, где продаются стройматериалы, в категории «облицовочный кирпич» ставим флажок «желтый». Видим новую страницу, идеально отвечающую на запрос «желтый облицовочный кирпич». Таким образом можно обеспечить посадочными страницами семантическое ядро любого размера. Настройка ЧПУ и умного фильтра в Битрикс позволяет оптимизировать страницы правильно и для клиента и для поисковых роботов.

    Много посадочных также хорошо и для контекстной рекламы — любой запрос найдет свою страницу.

    фильтр в битриксе

    Вывод: страницы выдачи фильтров интернет-магазина исключительно важны для SEO.

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

    Что такое умный фильтр

    Фильтр — инструмент выбора товаров в интернет-магазине. Например, в строительном интернет-магазине, чтобы из множества однотипных кирпичей выбрать желаемый цвет, пользователь ставит галочку, страница обновляется, появляются «Абрикосовые кирпичи». Также выбирают Производителя, Размер, и прочие характеристики. Чем больше параметров выберет пользователь, тем уже будет выборка, тем точнее результат.

    Фильтры можно любить или нет, но не обращать на них внимание нельзя. Для магазина с 1000 товаров и 30 категориями страниц-фильтров будут десятки тысяч. Про них знают поисковики, они занимают большой процент всех проиндексированных страниц. Это ваш актив, работайте с ним.

    Фильтр — это ваш актив. Работайте с ним!

    Умный фильтр не только показывает товары, но обладает дополнительными удобствами:

    • Знает, какие комбинации характеристик не дают результата, и запрещает их выбор. Например, бренд Braer не производит абрикосовый кирпич.
    • Знает, в какой категории какие характеристики бывают. Для строительного кирпича не показывает характеристику «Цвет».

    В статье описан наш опыт разработки и seo продвижения магазинов с использованием умного фильтра.

    Знакомьтесь, Умный Фильтр.

    умный фильтр в битриксе

    Знакомьтесь, господин Уэф. Никакого отношения к статье не имеет, но созвучно

    господин Уэф

    В чем сложность и вопрос?

    Фильтр — штука «чисто программерская». Ставишь галочки, сайт «вжух-вжух» и показывает результат.

    Никакой ручной настройки не подразумевает — SELECT-запросы к базе данных в чистом виде.

    Однако, есть 2 отрасли, о которых нужно подумать — поисковое продвижение и юзабилити. Первое важно для сеошника, второе — для пользователя. Ведь он покупает ваши товары! Пусть ему будет удобно!

    Задача веб-интегратора — заботиться о личном счастье каждого участника веб-системы. Мы провели анализ и придумали компромиссную реализацию умного фильтра, удовлетворяющего всех. В том числе директора магазина.

    Мы проработали варианты использования умного фильтра, придумали правильное решение и рекомендуем внедрять на каждом проекте, с которым работаем.

    Список требований к умному фильтру участников проекта оформили в виде mindmap (увеличивается при нажатии).

    интеллект-карта разработки умного фильтра

    История исследования и разработки умного фильтра

    Ранее мы касались темы в статьях:

    • Рассказали, чем хорош умный фильтр и как он работает — Подбор по параметрам как на Ситилинке
    • Немного раскрыли в статье технику реализации ЧПУ фильтра на портале недвижимости.
    • Упомянули «быстрый фильтр» — младшего брата «умного фильтра», заточенного для SEO.

    Почему нельзя использовать умный фильтр Битрикса «из коробки»?

    Битрикс сделал хороший фильтр, но традиционно не подумал о SEO. У коробочного фильтра 1С-Битрикс (версия 16.5.4) несколько серьезных недостатков:

    • Длинные избыточные адреса страниц. Также, если удалить последний /apply/ будет 404 ошибка.
      чпу фильтра битрикса из коробки
    • Отдельную страницу с результатами фильтра нельзя оптимизировать — разместить заголовок и текст. Приходится использовать дополнительные модули (например, наши «Инструменты SEO-специалиста»).
    • Нельзя настроить канонический адрес автоматически.
    • Сброшенный фильтр возвращает вас к оригинальному списку товаров, но меняет адрес страницы: /catalog/pants/filter/clear/apply/ вместо /catalog/pants/.
    • Если у магазина товаров до 50 тысяч, а общее количество свойств не превышает 500, можно смело использовать умный фильтр битрикса. Он справится. Если товаров или свойств в разы больше, придется делать собственную разработку.

    Ожидания покупателя от работы фильтра

    1. Фильтр помогает найти товар.
    2. Покупатель хочет, чтобы фильтр работал быстро. Выбрал галки, перезагрузил страницу, увидел результат.
    3. Покупатель хочет, чтобы адреса страниц не менялись. Страницей фильтра можно поделиться, сохранить в закладки, выучить наизусть.
    4. Поведение фильтра предсказуемо и понятно. Владельцы магазинов не всегда хотят тратить ресурсы на удобство работы пользователя с сайтом, оставляют задачи «на потом». Страдают, как правило, пользователи.

    Пример страдания: Угадайте, за что отвечает флажок «Тип: Отвертка аккумуляторная» в категории «Отвертки аккумуляторные»? Правильно, ни за что;)

    аккумуляторные отвертки в фильтре

    Для удовлетворения ожиданий покупатели (и увеличения конверсии в итоге) разработчик должен подумать и выполнить задачи:

    1. Сделать удобный и понятный интерфейс фильтра.
    2. В каждой категории магазина показывать важными несколько свойств, которые помогают покупателю совершить выбор. Остальные скрывать.
    3. Продумать архитектуру фильтра так, чтобы запросов было минимальное количество и работал кеш. Влияет на скорость работы фильтра. Бонус — быстрые страницы хорошо влияют на пользовательские факторы сайта (важно для SEO).
    4. Дополнительное требование про кеш: кэшированные страницы отдают правильный заголовок Last-Modified на дату кеширования.
    5. Порядок сортировки и постраничная навигация должны передаваться в GET-параметрах. Вопрос про канонические страницы ниже в блоке про SEO.
    6. Сделать минимум изменений в существующем программном коде. В идеале — небольшие надстройки «поверх» фильтра из коробки.

    Какие флажки помещать в умный фильтр?

    Как мы решали проблему сортировки характеристик / свойств фильтра в категориях.

    Есть категории — Диваны и Люстры. У диванов есть свойства: двухместный, трехместный. У люстр — материал (сталь, стекло) и стиль (прованс, лофт). Какие флажки должны остаться в фильтре, в каком порядке? На основании чего принимать решение?

    Для электроники, бытовой техники, инструментов, компьютеров можно подсмотреть флажки-свойства в Яндекс.Маркете. Как быть для других тематик?

    Мы придумали следующий алгоритм:

    • собираем ключевые фразы по названиям всех категорий каталога сайта (включая слова «купить», «цена»)
    • группируем в соответствии с исходными категориями. В «Диваны» кладем «купить кожаный диван», «купить угловой диван», «диван аккордеон купить». В «Люстры» — «купить хрустальную люстру», «купить потолочную люстру».
    • сортируем в каждой группе ключи по убыванию частотности, отсеиваем низкочастотные запросы.
    • Получаем по 2-3 базовых характеристики, которые интересуют покупателей товаров конкретной категории. Для диванов важен тип и материал. Для люстр — материал на первом месте.

    пример работы фильтра

    Требования SEO-специалистов к умному фильтру

    Заметили, да? У всех ожидания, а у нас — требования. Отвечу от имени сеошников. Фильтр может оказаться бомбой замедленного действия, неповоротливой и инертной для поисковой машины. Лучше заранее все продумать и не совершать ошибок.

    Фильтр может оказаться бомбой замедленного действия

    Для внедрения SEO-требований подойдет «коробочный» фильтр Битрикса. Приблизительная оценка внедрения: ~100 человеко-часов. Перечисляем в порядке важности приоритета. Если бюджета не хватает, отказывайтесь от нижних.

    1. Уникальные title, keywords, description, h1 на страницах умного фильтра. Бонус — красивый и кликабельный сниппет в выдаче.
    2. «Быстрые ссылки» — готовые результаты фильтра
    3. Размещение текста на странице с фильтром
    4. Правильные canonical и отсутствие дублей
    5. Шаблоны правил для robots.txt
    6. Автоматическое добавление в sitemap.xml
    7. Генерация sitemap.xml с правильными ЧПУ одной кнопкой
    8. Фильтр отдает правильные коды ответа.
    9. SEO-специалист справится с настройкой без программиста.

    Пояснения некоторых требований.

    Уникальные title, keywords, description, h1.

    Обратим особое внимание на важность уникальных заголовков и прочих мета-тегов. Если не предусмотреть автоматическую расстановку уникальных мета-тегов, в индекс попадет множество дублей. Поисковик посчитает страницы нерелевантными, поискового трафика не будет.

    «Быстрые ссылки» — готовые результаты фильтра

    Мы неоднократно писали про удобство «Быстрых фильтров» для пользователя:

    • https://www.intervolga.ru/blog/marketing/fix-seo-problems-integration/#section9
    • https://www.intervolga.ru/blog/projects/tipovye-pozhelaniya-seo-spetsialistov-dlya-internet-magazinov-na-1s-bitriks-i-sposoby-ikh-realizatsi/#section12

    Быстрая ссылка (быстрый фильтр) — это страница с подборкой товаров под конкретный запрос. Например, «фрезеры бош». Быстрая ссылка имеет ЧПУ и находится в зоне видимости пользователя (заодно, и поисковика).

    Как программировать быстрые фильтры:

    1. В 1С создаем и загружаем на сайт пустые категории в соответствии с группами фраз из семантического ядра. Группы нельзя переименовывать, это важно.
    2. На стороне сайта настраиваем привязки «Адрес категории — Адрес страницы фильтра».
    3. Пишем код, который подставляет на страницу пустой категории список товаров с указанной страницы фильтра. Получается «ЧПУ над ЧПУ».

    настройка быстрых ссылок

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

    Некоторые SEO-специалисты считают, что в интернет-магазине вообще надо закрыть от индексации все страницы с результатами фильтра

    Наша позиция — если вы настроите «Быстрые ссылки» и заведете необходимое количество по всему семантическому ядру, остальные страницы можно «спрятать». На продвигаемые запросы будут страницы (что хорошо). Не используемые — закрыты от поискового робота.

    Размещение текста на странице с фильтром

    В конкурентных тематиках на войне за поисковый трафик мы используем возможности сайта по-максимуму.

    Размещение текстов на страницах категорий каталога помогает получить коммерческий трафик на сайт.

    Чаще всего эту задачу делают вместе с предыдущей. Если есть категория — быстрая ссылка, значит можно разместить и опубликовать ее описание.

    Правильные canonical и отсутствие дублей

    На скриншоте ссылки «сортировка по цене», «алфавиту», «показывать по 20 — 40 — 60» не изменяют товары на странице, только их порядок. С точки зрения поисковика, никакой ценности эти страницы не представляют. SEO-специалисты используют специальный «канонический тег» для указания поисковой машине, какую страницу считать главной и оставить в выдаче.

    генератор дублей

    Инструментов для настройки канонических тегов категорий в битриксе нет. Наш подход к настройке канонических страниц фильтра:

    1. По умолчанию по адресу категории без GET-параметров выводим страницу с сортировкой по цене по возрастанию и внешним видом «Плитка». Эту страницу назначаем канонической с помощью тега
      <link rel="canonical" href="<адрес страницы>" />
    2. 2-я, 3-я и все следующие страницы ссылаются на каноническую страницу по умолчанию. Для Google делаем дополнительно атрибуты
      rel="next" и rel="prev"
    3. Все прочие направления сортировок и внешнего вида товаров (страницы с GET-параметрами, как правило) закрываем от индексации через robots.txt.

    Будьте аккуратнее — если среди запросов пользователей попадаются запросы «дорогие диваны», можно специально для них сделать релевантной страницу с сортировкой по цене от большей к меньшей.

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

    Шаблон правил для robots.txt

    К сожалению, шаблона для настройки robots.txt в части фильтра нет. Каждый проект индивидуален, и задача по настройке файла лежит на плечах SEO-специалиста. Некоторые типовые инструкции:

    Правило Пояснение
    Disallow: /*PAGEN_
    		

    Закрываем все страницы пагинации.

    Работает для всех битриксов.

    Disallow: /*ORDER_BY=
    Disallow: /*desc=
    Disallow: /*sort=
    Disallow: *sort_by=*
    

    Закрываем все страницы сортировки.

    Может отличаться в зависимости от проекта.

    Disallow: */filter/
    Disallow: */apply/
    Disallow: /?set_filter=
    

    Запрещают индексацию страниц фильтра.

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

    Для облегчения первичной настройки воспользуйтесь «Стартовым набором robots.txt» от битрикс.

    стартовый набор robots.txt от битрикс

    Автоматическое добавление в sitemap.xml

    В зависимости от того, закрываете вы страницы фильтра от индексации, или нет — подход к решению задачи может быть различным.

    Сейчас мы делаем карту сайта «по старинке» — автоматически генерируем средствами битрикса и полуавтоматически добавляем адреса страниц фильтра.

    Умный фильтр и коды ответа

    Мы рекомендуем дорабатывать механизм фильтра так, чтобы он умел отдавать следующие коды состояния.

    Код состояния Условие
    200 OK
    

    Страница с результатами фильтра существует и содержит хотя бы 1 товар.

    301 Moved Permanently
    		

    Для случая, когда вы настраиваете «быструю ссылку». Страница с оригинальным адресом должна отдавать 301 редирект на нее.

    304 Not Modified
    		

    Если поисковик обращается к странице с заголовком If-Modified-Since и страница не изменилась, сервер должен вернуть 304 Not Modified. Ниже цитата из документации Google.


    Убедитесь, что ваш веб-сервер поддерживает HTTP-заголовок If-Modified-Since. С его помощью Google может узнать, изменился ли контент сайта с момента последнего сканирования. Эта функция помогает сократить лишнюю нагрузку на сервер — https://support.google.com/webmasters/answer/35769

    404 Not Found
    		

    Для случая, когда адрес страницы неверный.

    410 Gone
    		

    Если сайт знает, что раньше по этому адресу были товары, и больше не будут. — Мы не используем, слишком накладно отслеживать подобные страницы.

    Фильтр не требует квалификации программиста для настройки

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

    Пока, лучшее решение — все настройки выносить в отдельные инфоблоки (highload-блоки), которые можно редактировать в интерфейсе админки.

    Альтернативная попытка — сделать настройку через CSV или другой табличный формат — привела к провалу. Разобраться в хитросплетениях шаблонов названий элементов смог только его автор:

    убер-csv для настройки мета-информации
    Пример файла настроек

    Пример реализации механизма расстановки уникальных заголовков на страницах фильтра (сайт dg-home.ru).

    1. Разработали техническое задания для программирования — описали, какие должны быть заголовки и мета-теги страниц рубрики, фильтра, карточки товара. ТЗ для программиста
    2. Используем бесплатную библиотеку морфологического анализа phpMorphy (http://phpmorphy.sourceforge.net/dokuwiki/). phpMorphy умеет склонять слова русского языка — заголовки и мета-описания получаются фонетически грамотными и привлекательными для пользователей.
    3. Готовим CSV-файлики с настройками для какой категории какое свойство в каком порядке выводить и как правильно склонять его название.
    4. На странице каталога в component_epilog.php размещаем код, который проверяет настройки в CSV для данной категории и устанавливает в соответствии с ними Title, H1, мета-теги. При большом объеме настройки надо выносить в инфоблоки или highload-блоки.

    Ожидания директора магазина

    1. Минимум, а лучше отсутствие изменений в учетной системе (1С). Все решать на стороне сайта. Если в 1С установлен свежий модуль обмена данными, никаких доработок на стороне 1С не потребуется. Максимум — аккуратно создать свойства товаров и привязать товары к соответствующим категориям.
    2. Подрядчик должен решить задачу комплексно и ничего не сломать. Подрядчик умеет проектировать интерфейсы и оптимизировать сайты. Желательно участие SEO-специалиста в процессе написания технического задания на фильтр.

    Скажем честно — комплексные веб-интеграционные проекты — это ни разу не весело. Мы справляемся, но тяжко всем. Заказчикам в том числе.

    Если вы решили поручить работу с умным фильтром своему разработчику — пусть сначала читает нашу статью.

    Внедрение умного и готового к seo фильтра на ваш проект

    Можно внедрять постепенно, можно сразу все. Трудоемкость разработки всех описанных задач — 80 — 100 часов для среднего интернет-магазина.

    Для больших (50 тысяч товаров и больше) появятся проблемы с производительностью, время увеличится на 30-50%.

    Мы рассмотрели решение задач, которые возникают перед веб-разработчиками и SEO-специалистами при настройке умного фильтра на проектах с 1С-Битрикс. Будем рады, если вы поделитесь статьей в социальных сетях и напишете в комментариях, если мы что-то забыли.

    Статья появилась благодаря работе с нашими заказчиками и их проектами:

    • ООО «КирпичРУ» (kirpich.ru);
    • ООО «Декор и Дизайн» (dg-home.ru);
    • ООО «ЛидерСтройИнструмент» (liderstroyinstrument.ru)
    • ООО «Империя Садовода» (www.imperia-sadovoda.ru)

    При использовании многосайтовости в пункте 5 доступен выбор требуемого сайта.

  • Тип фильтра – в поле требуется выбрать используемый в каталоге фильтр.
    • Стандартный фильтр с ЧПУ.
    • Стандартный фильтр без ЧПУ.
    • Фильтр MissShop с ЧПУ.
    • Kombox фильтр с ЧПУ.
    • Kombox фильтр без ЧПУ.
  • ЧПУ фильтра в каталоге — в поле можно указать маску ссылки битрикс, отличной от стандартной, формата /filter/#FILTER_PARAMS#/apply.

  • Отключить индексацию всех страниц – при отмеченной опции будет отключена индексация всех страниц на которых подключен компонент sotbit:seo.meta. Отключение индексации происходит путем добавления тега <meta name=»robots» content=»noindex, nofollow»> в элемент <head> текущей страницы.

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

  • Список источников – в текстовом поле задается список сайтов с которых будут фиксироваться переходы для ведения статистики. Каждый источник требуется указывать с новой строки.

    Переходы будут фиксироваться только с тех источников, адреса которых присутствуют в списке. По умолчанию в список включены следующие источники: yandex.ru, google.ru, www.yahoo.com, www.rambler.ru.

  • Пагинация – в поле указывается часть url адреса, которая будет отображаться в адресной строке при пагинации. В поле вводится шаблон, содержащий в себе элемент «%N%» — номер страницы. Например: «/page_%N%/».

    Данное поле нужно использовать, если пагинация на сайте реализована через URL (в конце адресной строки на страницах пагинации присутствует запись типа /page_2/).

    Подстановка части url адреса, отвечающей за пагинацию производится только для ЧПУ адресов.

  • Текст для метаинформации при пагинации – в поле вводится текст, который отображаться после метаинформации на страницах пагинации, где «%N%» — номер страницы. Например: (страница %N%).

  • Включить тегированное кеширование.

    Не стоит использовать этот механизм при частом обновлении элементов или разделов. С другой стороны это должно быть удобным для редакторов сайтов: изменения моментально отображаются на сайте. Еще один плюс — можно задавать практически бесконечное время кеширования.

  • Делать активными ЧПУ после генерации — опция, которая позволяет генерировать сразу активные ссылки.

    Рекомендуем всё же генерировать неактивные чпу ссылки и производить проверку редиректа активируя одну или несколько ЧПУ ссылок после генерации. Если в шаблоне для новой ссылки была допущена ошибка, а все ссылки сгенерируются активными, то при выборе соответствующих условию параметров будет происходить перенаправление на «битую» ссылку, в результате чего возникнет 404 ошибка.

  • Добавлять канонический url (canonical) – опция, при включении которой в метаинформации размещается каноническая ссылка.

    Каноническая страница – это страница сайта, адрес которой является каноническим (предпочитаемым) в группе схожих по содержимому страниц. Проще говоря канонический URL страницы – это адрес, который будет индексироваться при наличии страниц-дублей.

  • Перехват ajax-запросов – опция, при включении которой, перехватываются AJAX запросы из которых, при выполнении условий, будут формироваться новые метатеги.

    AJAX запрос – AJAX (аббревиатура от «Asynchronous Javascript And Xml») – технология обращения к серверу без перезагрузки страницы, за счет чего уменьшается время отклика и веб-приложение по интерактивности больше напоминает десктоп. Под AJAX подразумевают любое общение с сервером без перезагрузки страницы, организованное при помощи JavaScript.

  • Перегенерировать все ЧПУ ссылки при построении карты сайта — При установленном чекбоксе, во время генерации карты сайта, все ЧПУ ссылки будут перегенерированны в каждом из условий.
    При установленном чекбоксе время построения карты сайта может значительно увеличиться.

  • Исключить из фильтрации — Указанные поля ( ключи массива ${$FilterName} ) не будут учитываться при работе в условиях. В качестве разделителя использовать ;

  • Исключить страницы с параметрами из обработки — Исключает страницы из обработки с указанными параметрами.

    Пример:
    У нас есть ajax запрос который «ломается» на странице сгенерированной нашим модулем и в запросе есть параметр:
    is_ajax=Y
    Чтобы исключить этот запрос из обработки требуется просто указать этот параметр по шаблону:
    ключ=значение
    ( ajax=Y; В качестве разделителя нужно использовать ; )

  • Количество ссылок обрабатываемых за один шаг, при генерации карты сайта — При установленном чекбоксе, будет браться установленное количество ссылок для обработки.
    Если во время генерации карты сайта возникает ошибка, завершения скрипта из-за истечения времени ожидания (TIME OUT),
    рекомендуется уменьшить указанное значение.

    Для увеличения скорости построения карты сайта можно увеличить это значение, но скрипт может завершить свое выполнение по истечению времени (TIME OUT), поэтому данное значение подбирается опытным путем.

  • Максимальный количество ссылкой в одном файле (seometa_sitemap) — Указывается для ограничения максимального количества ссылок записываемых в файл карты сайта, генерируемый модулем.

    Для правильной работы максимальный размер равен 50000. (по умолчанию установлено значение равное 50000).

  • Максимальный размер файла (seometa_sitemap) — Указывается для ограничения максимального размера файла карты сайта, генерируемым модулем.

    Размер требуется писать в мегабайтах, только число. (пример: 30 — что равно 30Mb).
    Для правильной работы максимальный размер равен 50 Mb. (по умолчанию установлено значение равное 50 Mb).

  • Нужна помощь в настройке решения

    Оставьте заявку и мы свяжемся с вами!

    • Что такое умный фильтр
    • В чем сложность и вопрос?
    • История исследования и разработки умного фильтра
    • Почему нельзя использовать умный фильтр Битрикса «из коробки»?
    • Ожидания покупателя от работы фильтра
      • Какие флажки помещать в умный фильтр?
    • Требования SEO-специалистов к умному фильтру
      • Уникальные title, keywords, description, h1.
      • «Быстрые ссылки» — готовые результаты фильтра
      • Размещение текста на странице с фильтром
      • Правильные canonical и отсутствие дублей
      • Шаблон правил для robots.txt
      • Автоматическое добавление в sitemap.xml
      • Умный фильтр и коды ответа
      • Фильтр не требует квалификации программиста для настройки
      • Пример реализации механизма расстановки уникальных заголовков на страницах фильтра (сайт dg-home.ru).
    • Ожидания директора магазина
    • Внедрение умного и готового к seo фильтра на ваш проект

    Есть проекты — интернет-магазины. Это сложные проекты и для продвижения, и для веб-разработки.

    В них сотни и тысячи товаров. Десятки и сотни категорий.

    Есть особый тип страниц — страницы фильтра. Их на порядок больше. Они собирают трафик по огромному количеству запросов и важны для SEO.

    Пример: на сайте, где продаются стройматериалы, в категории «облицовочный кирпич» ставим флажок «желтый». Видим новую страницу, идеально отвечающую на запрос «желтый облицовочный кирпич». Таким образом можно обеспечить посадочными страницами семантическое ядро любого размера. Настройка ЧПУ и умного фильтра в Битрикс позволяет оптимизировать страницы правильно и для клиента и для поисковых роботов.

    Много посадочных также хорошо и для контекстной рекламы — любой запрос найдет свою страницу.

    фильтр в битриксе

    Вывод: страницы выдачи фильтров интернет-магазина исключительно важны для SEO.

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

    Что такое умный фильтр

    Фильтр — инструмент выбора товаров в интернет-магазине. Например, в строительном интернет-магазине, чтобы из множества однотипных кирпичей выбрать желаемый цвет, пользователь ставит галочку, страница обновляется, появляются «Абрикосовые кирпичи». Также выбирают Производителя, Размер, и прочие характеристики. Чем больше параметров выберет пользователь, тем уже будет выборка, тем точнее результат.

    Фильтры можно любить или нет, но не обращать на них внимание нельзя. Для магазина с 1000 товаров и 30 категориями страниц-фильтров будут десятки тысяч. Про них знают поисковики, они занимают большой процент всех проиндексированных страниц. Это ваш актив, работайте с ним.

    Фильтр — это ваш актив. Работайте с ним!

    Умный фильтр не только показывает товары, но обладает дополнительными удобствами:

    • Знает, какие комбинации характеристик не дают результата, и запрещает их выбор. Например, бренд Braer не производит абрикосовый кирпич.
    • Знает, в какой категории какие характеристики бывают. Для строительного кирпича не показывает характеристику «Цвет».

    В статье описан наш опыт разработки и seo продвижения магазинов с использованием умного фильтра.

    Знакомьтесь, Умный Фильтр.

    умный фильтр в битриксе

    Знакомьтесь, господин Уэф. Никакого отношения к статье не имеет, но созвучно

    господин Уэф

    В чем сложность и вопрос?

    Фильтр — штука «чисто программерская». Ставишь галочки, сайт «вжух-вжух» и показывает результат.

    Никакой ручной настройки не подразумевает — SELECT-запросы к базе данных в чистом виде.

    Однако, есть 2 отрасли, о которых нужно подумать — поисковое продвижение и юзабилити. Первое важно для сеошника, второе — для пользователя. Ведь он покупает ваши товары! Пусть ему будет удобно!

    Задача веб-интегратора — заботиться о личном счастье каждого участника веб-системы. Мы провели анализ и придумали компромиссную реализацию умного фильтра, удовлетворяющего всех. В том числе директора магазина.

    Мы проработали варианты использования умного фильтра, придумали правильное решение и рекомендуем внедрять на каждом проекте, с которым работаем.

    Список требований к умному фильтру участников проекта оформили в виде mindmap (увеличивается при нажатии).

    интеллект-карта разработки умного фильтра

    История исследования и разработки умного фильтра

    Ранее мы касались темы в статьях:

    • Рассказали, чем хорош умный фильтр и как он работает — Подбор по параметрам как на Ситилинке
    • Немного раскрыли в статье технику реализации ЧПУ фильтра на портале недвижимости.
    • Упомянули «быстрый фильтр» — младшего брата «умного фильтра», заточенного для SEO.

    Почему нельзя использовать умный фильтр Битрикса «из коробки»?

    Битрикс сделал хороший фильтр, но традиционно не подумал о SEO. У коробочного фильтра 1С-Битрикс (версия 16.5.4) несколько серьезных недостатков:

    • Длинные избыточные адреса страниц. Также, если удалить последний /apply/ будет 404 ошибка.
      чпу фильтра битрикса из коробки
    • Отдельную страницу с результатами фильтра нельзя оптимизировать — разместить заголовок и текст. Приходится использовать дополнительные модули (например, наши «Инструменты SEO-специалиста»).
    • Нельзя настроить канонический адрес автоматически.
    • Сброшенный фильтр возвращает вас к оригинальному списку товаров, но меняет адрес страницы: /catalog/pants/filter/clear/apply/ вместо /catalog/pants/.
    • Если у магазина товаров до 50 тысяч, а общее количество свойств не превышает 500, можно смело использовать умный фильтр битрикса. Он справится. Если товаров или свойств в разы больше, придется делать собственную разработку.

    Ожидания покупателя от работы фильтра

    1. Фильтр помогает найти товар.
    2. Покупатель хочет, чтобы фильтр работал быстро. Выбрал галки, перезагрузил страницу, увидел результат.
    3. Покупатель хочет, чтобы адреса страниц не менялись. Страницей фильтра можно поделиться, сохранить в закладки, выучить наизусть.
    4. Поведение фильтра предсказуемо и понятно. Владельцы магазинов не всегда хотят тратить ресурсы на удобство работы пользователя с сайтом, оставляют задачи «на потом». Страдают, как правило, пользователи.

    Пример страдания: Угадайте, за что отвечает флажок «Тип: Отвертка аккумуляторная» в категории «Отвертки аккумуляторные»? Правильно, ни за что;)

    аккумуляторные отвертки в фильтре

    Для удовлетворения ожиданий покупатели (и увеличения конверсии в итоге) разработчик должен подумать и выполнить задачи:

    1. Сделать удобный и понятный интерфейс фильтра.
    2. В каждой категории магазина показывать важными несколько свойств, которые помогают покупателю совершить выбор. Остальные скрывать.
    3. Продумать архитектуру фильтра так, чтобы запросов было минимальное количество и работал кеш. Влияет на скорость работы фильтра. Бонус — быстрые страницы хорошо влияют на пользовательские факторы сайта (важно для SEO).
    4. Дополнительное требование про кеш: кэшированные страницы отдают правильный заголовок Last-Modified на дату кеширования.
    5. Порядок сортировки и постраничная навигация должны передаваться в GET-параметрах. Вопрос про канонические страницы ниже в блоке про SEO.
    6. Сделать минимум изменений в существующем программном коде. В идеале — небольшие надстройки «поверх» фильтра из коробки.

    Какие флажки помещать в умный фильтр?

    Как мы решали проблему сортировки характеристик / свойств фильтра в категориях.

    Есть категории — Диваны и Люстры. У диванов есть свойства: двухместный, трехместный. У люстр — материал (сталь, стекло) и стиль (прованс, лофт). Какие флажки должны остаться в фильтре, в каком порядке? На основании чего принимать решение?

    Для электроники, бытовой техники, инструментов, компьютеров можно подсмотреть флажки-свойства в Яндекс.Маркете. Как быть для других тематик?

    Мы придумали следующий алгоритм:

    • собираем ключевые фразы по названиям всех категорий каталога сайта (включая слова «купить», «цена»)
    • группируем в соответствии с исходными категориями. В «Диваны» кладем «купить кожаный диван», «купить угловой диван», «диван аккордеон купить». В «Люстры» — «купить хрустальную люстру», «купить потолочную люстру».
    • сортируем в каждой группе ключи по убыванию частотности, отсеиваем низкочастотные запросы.
    • Получаем по 2-3 базовых характеристики, которые интересуют покупателей товаров конкретной категории. Для диванов важен тип и материал. Для люстр — материал на первом месте.

    пример работы фильтра

    Заметили, да? У всех ожидания, а у нас — требования. Отвечу от имени сеошников. Фильтр может оказаться бомбой замедленного действия, неповоротливой и инертной для поисковой машины. Лучше заранее все продумать и не совершать ошибок.

    Фильтр может оказаться бомбой замедленного действия

    Для внедрения SEO-требований подойдет «коробочный» фильтр Битрикса. Приблизительная оценка внедрения: ~100 человеко-часов. Перечисляем в порядке важности приоритета. Если бюджета не хватает, отказывайтесь от нижних.

    1. Уникальные title, keywords, description, h1 на страницах умного фильтра. Бонус — красивый и кликабельный сниппет в выдаче.
    2. «Быстрые ссылки» — готовые результаты фильтра
    3. Размещение текста на странице с фильтром
    4. Правильные canonical и отсутствие дублей
    5. Шаблоны правил для robots.txt
    6. Автоматическое добавление в sitemap.xml
    7. Генерация sitemap.xml с правильными ЧПУ одной кнопкой
    8. Фильтр отдает правильные коды ответа.
    9. SEO-специалист справится с настройкой без программиста.

    Пояснения некоторых требований.

    Уникальные title, keywords, description, h1.

    Обратим особое внимание на важность уникальных заголовков и прочих мета-тегов. Если не предусмотреть автоматическую расстановку уникальных мета-тегов, в индекс попадет множество дублей. Поисковик посчитает страницы нерелевантными, поискового трафика не будет.

    «Быстрые ссылки» — готовые результаты фильтра

    Мы неоднократно писали про удобство «Быстрых фильтров» для пользователя:

    • https://www.intervolga.ru/blog/marketing/fix-seo-problems-integration/#section9
    • https://www.intervolga.ru/blog/projects/tipovye-pozhelaniya-seo-spetsialistov-dlya-internet-magazinov-na-1s-bitriks-i-sposoby-ikh-realizatsi/#section12

    Быстрая ссылка (быстрый фильтр) — это страница с подборкой товаров под конкретный запрос. Например, «фрезеры бош». Быстрая ссылка имеет ЧПУ и находится в зоне видимости пользователя (заодно, и поисковика).

    Как программировать быстрые фильтры:

    1. В 1С создаем и загружаем на сайт пустые категории в соответствии с группами фраз из семантического ядра. Группы нельзя переименовывать, это важно.
    2. На стороне сайта настраиваем привязки «Адрес категории — Адрес страницы фильтра».
    3. Пишем код, который подставляет на страницу пустой категории список товаров с указанной страницы фильтра. Получается «ЧПУ над ЧПУ».

    настройка быстрых ссылок

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

    Некоторые SEO-специалисты считают, что в интернет-магазине вообще надо закрыть от индексации все страницы с результатами фильтра

    Наша позиция — если вы настроите «Быстрые ссылки» и заведете необходимое количество по всему семантическому ядру, остальные страницы можно «спрятать». На продвигаемые запросы будут страницы (что хорошо). Не используемые — закрыты от поискового робота.

    Размещение текста на странице с фильтром

    В конкурентных тематиках на войне за поисковый трафик мы используем возможности сайта по-максимуму.

    Размещение текстов на страницах категорий каталога помогает получить коммерческий трафик на сайт.

    Чаще всего эту задачу делают вместе с предыдущей. Если есть категория — быстрая ссылка, значит можно разместить и опубликовать ее описание.

    Правильные canonical и отсутствие дублей

    На скриншоте ссылки «сортировка по цене», «алфавиту», «показывать по 20 — 40 — 60» не изменяют товары на странице, только их порядок. С точки зрения поисковика, никакой ценности эти страницы не представляют. SEO-специалисты используют специальный «канонический тег» для указания поисковой машине, какую страницу считать главной и оставить в выдаче.

    генератор дублей

    Инструментов для настройки канонических тегов категорий в битриксе нет. Наш подход к настройке канонических страниц фильтра:

    1. По умолчанию по адресу категории без GET-параметров выводим страницу с сортировкой по цене по возрастанию и внешним видом «Плитка». Эту страницу назначаем канонической с помощью тега
      <link rel="canonical" href="<адрес страницы>" />
    2. 2-я, 3-я и все следующие страницы ссылаются на каноническую страницу по умолчанию. Для Google делаем дополнительно атрибуты
      rel="next" и rel="prev"
    3. Все прочие направления сортировок и внешнего вида товаров (страницы с GET-параметрами, как правило) закрываем от индексации через robots.txt.

    Будьте аккуратнее — если среди запросов пользователей попадаются запросы «дорогие диваны», можно специально для них сделать релевантной страницу с сортировкой по цене от большей к меньшей.

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

    Шаблон правил для robots.txt

    К сожалению, шаблона для настройки robots.txt в части фильтра нет. Каждый проект индивидуален, и задача по настройке файла лежит на плечах SEO-специалиста. Некоторые типовые инструкции:

    Правило Пояснение
    Disallow: /*PAGEN_
    		

    Закрываем все страницы пагинации.

    Работает для всех битриксов.

    Disallow: /*ORDER_BY=
    Disallow: /*desc=
    Disallow: /*sort=
    Disallow: *sort_by=*
    

    Закрываем все страницы сортировки.

    Может отличаться в зависимости от проекта.

    Disallow: */filter/
    Disallow: */apply/
    Disallow: /?set_filter=
    

    Запрещают индексацию страниц фильтра.

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

    Для облегчения первичной настройки воспользуйтесь «Стартовым набором robots.txt» от битрикс.

    стартовый набор robots.txt от битрикс

    Автоматическое добавление в sitemap.xml

    В зависимости от того, закрываете вы страницы фильтра от индексации, или нет — подход к решению задачи может быть различным.

    Сейчас мы делаем карту сайта «по старинке» — автоматически генерируем средствами битрикса и полуавтоматически добавляем адреса страниц фильтра.

    Умный фильтр и коды ответа

    Мы рекомендуем дорабатывать механизм фильтра так, чтобы он умел отдавать следующие коды состояния.

    Код состояния Условие
    200 OK
    

    Страница с результатами фильтра существует и содержит хотя бы 1 товар.

    301 Moved Permanently
    		

    Для случая, когда вы настраиваете «быструю ссылку». Страница с оригинальным адресом должна отдавать 301 редирект на нее.

    304 Not Modified
    		

    Если поисковик обращается к странице с заголовком If-Modified-Since и страница не изменилась, сервер должен вернуть 304 Not Modified. Ниже цитата из документации Google.


    Убедитесь, что ваш веб-сервер поддерживает HTTP-заголовок If-Modified-Since. С его помощью Google может узнать, изменился ли контент сайта с момента последнего сканирования. Эта функция помогает сократить лишнюю нагрузку на сервер — https://support.google.com/webmasters/answer/35769

    404 Not Found
    		

    Для случая, когда адрес страницы неверный.

    410 Gone
    		

    Если сайт знает, что раньше по этому адресу были товары, и больше не будут. — Мы не используем, слишком накладно отслеживать подобные страницы.

    Фильтр не требует квалификации программиста для настройки

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

    Пока, лучшее решение — все настройки выносить в отдельные инфоблоки (highload-блоки), которые можно редактировать в интерфейсе админки.

    Альтернативная попытка — сделать настройку через CSV или другой табличный формат — привела к провалу. Разобраться в хитросплетениях шаблонов названий элементов смог только его автор:

    убер-csv для настройки мета-информации
    Пример файла настроек

    Пример реализации механизма расстановки уникальных заголовков на страницах фильтра (сайт dg-home.ru).

    1. Разработали техническое задания для программирования — описали, какие должны быть заголовки и мета-теги страниц рубрики, фильтра, карточки товара. ТЗ для программиста
    2. Используем бесплатную библиотеку морфологического анализа phpMorphy (http://phpmorphy.sourceforge.net/dokuwiki/). phpMorphy умеет склонять слова русского языка — заголовки и мета-описания получаются фонетически грамотными и привлекательными для пользователей.
    3. Готовим CSV-файлики с настройками для какой категории какое свойство в каком порядке выводить и как правильно склонять его название.
    4. На странице каталога в component_epilog.php размещаем код, который проверяет настройки в CSV для данной категории и устанавливает в соответствии с ними Title, H1, мета-теги. При большом объеме настройки надо выносить в инфоблоки или highload-блоки.

    Ожидания директора магазина

    1. Минимум, а лучше отсутствие изменений в учетной системе (1С). Все решать на стороне сайта. Если в 1С установлен свежий модуль обмена данными, никаких доработок на стороне 1С не потребуется. Максимум — аккуратно создать свойства товаров и привязать товары к соответствующим категориям.
    2. Подрядчик должен решить задачу комплексно и ничего не сломать. Подрядчик умеет проектировать интерфейсы и оптимизировать сайты. Желательно участие SEO-специалиста в процессе написания технического задания на фильтр.

    Скажем честно — комплексные веб-интеграционные проекты — это ни разу не весело. Мы справляемся, но тяжко всем. Заказчикам в том числе.

    Если вы решили поручить работу с умным фильтром своему разработчику — пусть сначала читает нашу статью.

    Внедрение умного и готового к seo фильтра на ваш проект

    Можно внедрять постепенно, можно сразу все. Трудоемкость разработки всех описанных задач — 80 — 100 часов для среднего интернет-магазина.

    Для больших (50 тысяч товаров и больше) появятся проблемы с производительностью, время увеличится на 30-50%.

    Мы рассмотрели решение задач, которые возникают перед веб-разработчиками и SEO-специалистами при настройке умного фильтра на проектах с 1С-Битрикс. Будем рады, если вы поделитесь статьей в социальных сетях и напишете в комментариях, если мы что-то забыли.

    Статья появилась благодаря работе с нашими заказчиками и их проектами:

    • ООО «КирпичРУ» (kirpich.ru);
    • ООО «Декор и Дизайн» (dg-home.ru);
    • ООО «ЛидерСтройИнструмент» (liderstroyinstrument.ru)
    • ООО «Империя Садовода» (www.imperia-sadovoda.ru)

    Доброго времени суток!

    На одном проекте встала задача для комплексного компонента каталога, а в частности при выбранном фильтре проверять параметры которые передаются в URL-е и если в нем находятся несуществующие параметры выводить 404 страницу (при ЧПУ для catalog.smart.filter).

    Для примера, есть действующая рабочая страница с адресом/catalog/dveri/filter/tolshina_polotna-is-35/apply/ и есть старый адрес (или просто любой спамный адрес) /catalog/dveri/filter/tolshina_polotna-is-999999999/apply/. Т.е. такого параметра в фильтре нет, но страница все равно отдает 200 код и выводит данные по странице без фильтра. Вот её то нам и нужно убрать, т.е. выводить 404 код и страницу.

    Сразу хочу сказать, что показанная реализация далеко не идеальная и подходит на минимальных изменениях комплексного шаблона компонента, но каждый может её донастроить «под себя». Мне для выполнения задачи хватило минимальных дополнений.

    Что делаем:

    1) убеждаемся, что у нас добавлен обработчик события на эпилоге, проверяющий константу ERROR_404 и при её наличии выводящий 404 страницу с нужным кодом. Примерно такого содержания:

    AddEventHandler("main", "OnEpilog", "error_page");
    function error_page()
    {
        $page_404 = "/404.php";
        GLOBAL $APPLICATION;
        if(strpos($APPLICATION->GetCurPage(), $page_404) === false && defined("ERROR_404") && ERROR_404 == "Y")
        {
            $APPLICATION->RestartBuffer();
            CHTTP::SetStatus("404 Not Found");
            include($_SERVER["DOCUMENT_ROOT"].SITE_TEMPLATE_PATH."/header.php");
            include($_SERVER["DOCUMENT_ROOT"].$page_404);
            include($_SERVER["DOCUMENT_ROOT"].SITE_TEMPLATE_PATH."/footer.php");
            die();
        }
    }
    

    Добавить его можно в init.php например.

    2) Мы будем проверять, что выбран адрес с установленными значениями фильтра (в моём случае это наличие /filter/), а также есть параметры фильтрации для catalog.section (по умолчанию глобальная переменная $arrFilter, у вас может быть другая).

    Для этого идем в шаблон нашего catalog.section в файл result_modifier.php и там ставим проверку (можно её поставить перед вызовом catalog.section, как вам угодно)

    global $arrFilter;
    $curPage = $APPLICATION->GetCurPage(false);
    
    if(strpos($curPage, "/filter/") !== false && empty($arrFilter))
    {
    	define("ERROR_404","Y");
    }
    

    Как вы можете видеть я проверяю вообще на пустоту массива фильтра $arrFilter, если он у вас где-то еще переопределяется и там присутствуют другие значения (кроме тех, что устанавливает catalog.smart.filter) — вам нужна более сложная логика для проверки. Но для общего примера и понимания мне кажется этого достаточно.

    Все, после этого если адрес страницы содержит /filter/, а параметров фильтрации нет никаких, будет отдаваться 404 страница.

    Оглавление

    • ЧПУ в умном фильтре 1С Битрикс
      • Настройка инфоблока
      • Настройка свойств инфоблока
      • Скармливаем ссылки поисковому роботу
    • Комментарий от SEO специалиста Вадима Кабаева
      • Сразу для понимания
      • Теперь по работе фильтра
    • Подведём итоги

    Одним из преимуществ интернет-магазинов на 1С Битрикс на мой взгляд является наличие не так давно доведённого до ума «умного фильтра». Дело в том что теперь фильтр получил возможность выдавать результаты по вполне симпатичным ЧПУ адресам. А это в свою очередь даёт большие возможности по улучшению SEO магазина, большому охвату НЧ запросов, созданию «посадочных страниц» прямо в структуре каталога и многое другое. Давайте по подробнее рассмотрим все эти плюшки.

    Кто не знает что такое ЧПУ — это «человеко понятные url» т.е когда вы заходите на сайт в раздел Каталог / Телевизоры и видите в в адресной строке не /?s=1&ss=15 а читаемый латиницей адрес /katalog/televizori/ это удобно, и поисковые системы относятся лучше к таким адресам.

    Настройка инфоблока

    И так как же настраивается ЧПУ режим умного фильтра. В первую очередь настраиваем URL страниц в параметрах информационного блока, в админке вкладка Контент / Типы инфоблоков / Каталог / Одежда (в вашем случае название типа и инфоблока могут отличаться). На первой вкладке «Инфоблок» настраиваем слудющие поля:

    Настройка адресов инфоблока

    где

    • #SITE_DIR# — константа битрикса, обозначает папку сайта;
    • /catalog/ — директория в корне сайта, где будет размещён комплексный компонент каталога;
    • #SECTION_CODE# — переменная куда будет подставлен символьный код раздела (обычно это транслитерированное название раздела);
    • #ELEMENT_CODE# — тоже символьный код транслитерированный из названия элемента.

    Чтобы #SECTION_CODE# и #ELEMENT_CODE# формировались автоматически при создании разделов и элементов не забудьте на вкладках «Поля» и «Поля разделов» установить для поля «Символьный код» такие параметры:

    Символьный код

    т.е. мы делаем поле

    • обязательным (первая галочка);
    • проверяем на уникальность (чтобы не получилось что один URL имеют разные страницы);
    • транслитерировать из названия при добавлении (чтобы не вводить код вручную).

    Настройка свойств инфоблока

    Теперь нужно подготовить свойства инфоблока по которым мы будем фильтровать каталог, в качестве демки я взял демо-магазин одежды 1С битрикс, который устанавливается из коробки, а потому предлагаю использовать свойства одежды, например цвет и фасон. Не смотря на то что свойство цвет есть в демо-каталоге, я предлагаю его немного перенастроить. 

    Дело в том что при составлении ЧПУ адреса страницы с результатом фильтрации по определённому свойству, компонент собирает этот URL из кода свойства и внешнего кода выбранного значения свойства.

    составные части url фильтра

    Для того чтобы нам было легче читать URL предлагаю коды свойств и их значений задавать в формате транслита, например свойство «цвет», имеет код «cvet», значение свойства цвет «красный» имеет код «krasniy» и т.д. В начале прописываем код свойства

    Свойство цвет

    А затем коды значений свойства цвет, колонка «Внешний код» в диалоге редактирования свойства инфоблока.

    Настройка свойства

    После смены внешнего кода значений свойств необходимо переопределять их у торговых предложений, т.к. в БД в параметрах торговых предложений сохранено старое значение внешнего кода и новые они (торговые предложения) автоматически не увидят. Поэтому если затеялись творить такое на большом каталоге, обязательно создавайте резервные копии и скриптом переопределяйте значений свойств занося текущие значения в промежуточные таблицы БД.

    То же самое проделываем с вновь созданным свойством «фасон», для простоты я использовал тип свойства «Список». Код свойства «fason» и несколько значений «Футляр -> futlar» и «Сарафан -> sarafan». Кстати код значений свойства фасон при выбранном типе свойства «Список», прописывается в колонке «XML_ID»

    Свойство фасон

    Не забудьте задать нескольким торговым предложениям каталога свойство «Фасон», чтобы оно отобразилось в умном фильтре. Свойства инфоблока настроили, переходим к настройкам компонента bitrix:catalog.

    Настройка компонента

    Переходим в каталог товаров, включаем режим правки и заходим в параметры компонента. В параметрах компонента bitrix:catalog на вкладке «Управление адресами страниц» ищем поле «Url раздела для умного фильтра» — это и есть шаблон ЧПУ адресов с результатами фильтрации. Для сокращения я обычно убираю последнюю часть /apply/ оставляя такую строку #SECTION_CODE#/filter/#SMART_FILTER_PATH#/ где

    • #SECTION_CODE# — код раздела в котором осуществляется фильтрация;
    • #SMART_FILTER_PATH# — путь собранный из кодов свойств и их значений составленный по определённому алгоритму.
    • /filter/ — что-то вроде директивы позволяющей системе правильно идентифицировать и интерпретировать запрашиваемый адрес (т.е. понять открыть определённый раздел или выполнить фильтрацию текущего)

    Сохраняем настройки компонента. Теперь при фильтрации например по свойству «Цвет» = «Красный» — получаем такой URL /catalog/dresses/filter/cvet-is-krasniy/ а если дополнительно отфильтровать каталог по фасону получим URL /catalog/dresses/filter/cvet-is-krasniy/fason-is-futlar/. Если вы всё сделали правильно у вас должны получаться такие ЧПУ URL фильтра. Переходим к самому интересному, настраиваем seo для полученных страниц.

    SEO для страниц результатов фильтра битрикс

    В первую очередь давайте определимся, что мы будем менять для таких вот страниц как /catalog/dresses/filter/cvet-is-krasniy/ (т.е. каталог / плать/ цвет — красный). На мой взгляд минимальный набор для корректировки это title — страницы, meta-keywords, meta-description, заголовок h1 и дополнительный текст (назовём его SEO-текст) на странице видимый пользователю, описывающий данный раздел в трёх — четырёх предложениях.

    Где все эти данные хранить? Есть два варианта, в инфоблоке и в HL-инфоблоке, т.к. мне привычнее первый, реализуем именно его. И так ещё раз что нам нужно хранить в элементах инфоблока:

    1. заголовок страницы (title)
    2. ключевые слова (meta-keywords)
    3. описание страницы (meta-description)
    4. заголовок (h1)
    5. SEO — текст (текст для посетителя)
    6. URL страницы на которой все эти данные нужно изменить / вывести

    Создадим инфоблок с соответствующими полями.

    Для удобства дальнейшей работы с инфоблоком сохраните его идентификатор в константу IBLOCK_SEO в файл /bitrix/php_interface/init.php это позволит подставлять в код функции осмысленное значение IBLOCK_SEO а не просто число, что в последствии повысит качество и восприятие кода.

    Поле URL страницы делаем обязательным т.к. по нему будет определяться к какой странице применить заданные свойства. В результате получаются вот такие элементы:

    Настройка SEO элемента

    Теперь необходимо в файле шаблона section.php комплексного компонента каталога после вызова компонента catalog.section разместить следующий код:

    
    //Получаем SEO параметры текущей страницы
    	$currentPageUrl = $APPLICATION->GetCurPage();
    	$currentPageSeo = array();
    	$arSelect = Array("ID", "PROPERTY_TITLE", "PROPERTY_META_KEYWORDS", "PROPERTY_META_DESCRIPTION", "PROPERTY_HEADER", "PROPERTY_SEO_TEXT");
    	$arFilter = Array("IBLOCK_ID"=>IBLOCK_SEO, "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y", "PROPERTY_PAGE_URL"=>$currentPageUrl);
    	$res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect);
    	while($ob = $res->GetNextElement()){
    		$arFields = $ob->GetFields();
    		$currentPageSeo = array(
    				"TITLE" => $arFields["PROPERTY_TITLE_VALUE"],
    				"KEYWORDS" => $arFields["PROPERTY_META_KEYWORDS_VALUE"],
    				"DESCRIPTION" => $arFields["PROPERTY_META_DESCRIPTION_VALUE"],
    				"HEADER" => $arFields["PROPERTY_HEADER_VALUE"],
    				"SEO_TEXT" => $arFields["PROPERTY_SEO_TEXT_VALUE"]["TEXT"],
    			);
    	}
    
    	//Устанавливаем полученные параметры
    	if($currentPageSeo["TITLE"]){
    		$APPLICATION->SetPageProperty("title", $currentPageSeo["TITLE"]);
    	}
    
    	if($currentPageSeo["KEYWORDS"]){
    		$APPLICATION->SetPageProperty("keywords", $currentPageSeo["KEYWORDS"]);
    	}
    
    	if($currentPageSeo["DESCRIPTION"]){
    		$APPLICATION->SetPageProperty("description", strip_tags($currentPageSeo["DESCRIPTION"]["TEXT"]));
    	}
    
    	if($currentPageSeo["HEADER"]){
    		$APPLICATION->SetTitle($currentPageSeo["HEADER"]);
    	}
    
    	if($currentPageSeo["SEO_TEXT"]){
    		$arResult["SEO_TEXT"] =  htmlspecialcharsBack($currentPageSeo["SEO_TEXT"]);
    	}
    
    

    Что мы делаем в данном скрипте, первым делом получаем параметры текущей страницы (переменная $curPage) фильтра. Если таковые имеются сохраняем их в массив $arSeo, а дальше дополнительно проверяя каждое конкретное значение устанавливаем соответствующее свойство страницы.

    Блок с SEO-текстом можно красиво оформить и вывести под списком товаров попавших в выборку. Что же нам дал такой механизм? Теперь мы можем «выжать» семантическое ядро сайта по максимуму и фактически для каждой страницы задать уникальный title, keywords, description и т.д. Создава для каждого низкочастотного запроса например «Красное шёлкове платье, фасон сарафан, размера L» — отдельную страницу с уникальным URL и заголовками (страницу результатов фильтра) на которй представить пользователю ассортимент моделей товаров удовлетворяющих его запросу. А это в свою очередь улучшение поведенческих факторов и повышение конверсии, т.к. посетитель сайта сразу получает страницу именно с тем товаром что он искал.

    Давайте создадим несколько элементов для примера. Через SEO инфоблок я создал описание для страницы с фильтром по синему цвету и по цвету + фасону. Получилось следующее:

    Элементы SEO инфоблока

    теперь отфильтровав раздел платья по свойству цвет (цвет = синий) я получаю такой результат:

    Страница фильтра

    Отлично! Теперь можно гибко настроить каталог товаров по большому списку низкочастотных конверсионных запросов. Осталось сделать пару настроек чтобы эти страницы лучше проиндексировались.

    Скармливаем ссылки поисковому роботу

    Во всей этой истории есть один нюанс, поисковый робот сам никак не увидит ссылки на страницы фильтра для которых мы настроили SEO. Как же нам их вывести? Для удобства управления и красоты предлагаю следующее решение. Для разделов каталога добавляем множественное свойство типа «Привязка к элементам инфоблока» и указываем наш SEO-инфоблок. С помощью этой привязки мы сможем выводить в нужных нам разделах блок ссылок-фильтров.

    Для создания такой связи, перейдите к редактирванию любого раздела каталога в админке, на вкладке «Доп. поля» есть ссылка «Добавить пользовательское свойство» и настройте привязку к SEO-инфоблоку:

    Привязка к инфоблоку

    Не забываем отметить галочку «Множественное», т.к. потом сделать созданное пользовательское поле множественным не получится, придётся пересоздавать. А нам нужно именно множественное свойство.

    Своё свойство я назвал «Быстрые ссылки», а код поля задал как UF_SEO_ITEMS. Теперь давайте установим несколько связей для теста. В своём SEO-инфоблоке я создал несколько элементов описывающих различные страницы фильтра, они все относятся к разделу «Платья». Переходим редактированию раздела платья, вкладка «Доп. поля» и в свойстве «Быстрые ссылки» выбираем те элементы SEO-инфоблока которые относятся к этому разделу, у меня таких два «Платья синего цвета» и «Синие платья футляр».

    Быстрые ссылки

    Теперь нужно вывести их посетителю сайта. Идём в компонент каталога, ищем там компонент catalog.section, у меня это папка /bitrix/templates/#шаблон_сайта#/components/bitrix/catalog/#имя_шаблона_компонента#/bitrix/catalog.section/.default/ нас интересует файл result_modifier.php и вставляем следующий код:

    
            //Получаем быстрые ссылки текущего раздела
    	$seoItems = array();
    	$arSectionSelect = array("ID", "UF_SEO_ITEMS");
    	$arSectionFilter = array("IBLOCK_ID"=>$arParams["IBLOCK_ID"], "ID"=>$arResult["ID"]);
    	$dbSectionList = CIBlockSection::GetList(array(), $arSectionFilter, false, $arSectionSelect);
    	while($arSection = $dbSectionList->GetNext()){
    		$seoItems = $arSection["UF_SEO_ITEMS"];
    	}
    
    	//Получаем Анкро и URL быстрых ссылок раздела
    	$fastUrlsList = array();
    	$arSelect = Array("ID", "NAME", "PROPERTY_PAGE_URL");
    	$arFilter = Array("IBLOCK_ID"=>IBLOCK_SEO, "ACTIVE"=>"Y", "ID"=>$seoItems);
    	$res = CIBlockElement::GetList(array("SORT"=>"ASC"), $arFilter, false, false, $arSelect);
    	while($ob = $res->GetNextElement()){
    		$arFields = $ob->GetFields();
    		$fastUrlsList[] = array(
    			"NAME" => $arFields["NAME"],
    			"URL" => $arFields["PROPERTY_PAGE_URL_VALUE"],
    		);
    	}
    
    	//Сохраняем результат в кеш компонента
    	if($fastUrlsList){
    		$arResult["FAST_URL_LIST"] = $fastUrlsList;
    		$this->__component->setResultCacheKeys(array("FAST_URL_LIST"));
    	}
    
    

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

    Быстрые ссылки в разделе

    Во-первых их будет видеть робот проходя по странице раздела, во-вторых это улучшение юзабилити. Теперь клиент переходя в раздел платья будет видеть блок быстрых ссылок-фильтров (напр. Вечерние платья, Платья больших размеров, Платья для выпускного и т.д.) перейдя по которым он попадёт на страницу с товарами категории отфильтрованную по определённому набору параметров (размер, цвет, фасон, тип, назначение и т.д.) что избавит его от необходимости самому использовать фильтр.

    В третьих мы разбавляем анкор-лист документа низкочастотниками (НЧ), что позволяет более широко охватить тематику раздела (в данном случае раздела платья).

    Комментарий от SEO специалиста Вадима Кабаева

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

    Сразу для понимания

    В гугле закрывать от индексации нужно через meta тег robots со значением noindex. Либо noindex добавлять в HTTP-заголовок X-Robots-Tag. Работает для Яндекса и Гугла. Robots.txt не решает вопрос закрытия от индексации для Гугла. Сканирование и индексация это два разных процесса.

    Теперь по работе фильтра

    Возможно данная реализация часть из ниже написанного решает, но всё равно напишу.

    1. При выборе двух и более значений внутри одного свойства, такие страницы не должны индексироваться. /cvet-sinii-or-white/fason-futlar/
    2. Нужно строго соблюдать последовательность в URL, что бы не плодить дубли (/cvet-sinii/fason-futlar/ и /fason-futlar/cvet-sinii/ дубли)
    3. Часто нужны правила перемножения. Внутри раздела может быть 10 свойств (цвет, материал, фасон, сезон, бренд, размер и т.д.). Если мы начнём генерить страницы перемножением всё на всё, мы можем получить страницы пустышки (без поискового спроса) «Платье синее из шерсти футляр летнее Бренд 42 размера…»
      Такие страницы нужны не на всех сайтах, а в некоторых случаях могут даже навредить.
    4. Краулинговый бюджет. На каждый сайт ПС выделяют лимит по кол-ву страниц для обхода в сутки, так как мощности ПС не бесконечны. Создавая страницы без спроса мы можем расходовать наш краулинговый бюджет не эффективно. Поэтому нам нужно составлять список таких страниц и закрывать их в Robots.txt. Идеально наличие в URL паттернов по которым можно страницы закрывать от сканирования.
    5. Шаблоны для страниц фильтров — хорошо бы использовать шаблоны для генерации мета-данных, заголовков и текстов.
    6. На некоторых сайтах встречаются страницы полученные фильтрами без товаров. Это тоже косяк.

    Подведём итоги

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

    Administrator

    • #1

    Wizzard добавил(а) новый ресурс:

    Сотбит SEO умного фильтра – мета-теги, заголовки, карта сайта (sotbit.seometa) — Инструмент, позволяющий значительно увеличить трафик интернет-магазина.

    Описание:

    SEO умного фильтра

    – инструмент, позволяющий значительно увеличить трафик интернет-магазина. Это происходит за счет создания множества уникальных страниц умного фильтра.

    Функциональность модуля:

    — Уникальные мета-теги.

    Для каждой страницы умного фильтра создается своя уникальная мета-информация, позволяющая продвигать эти страницы в интернете.
    — Карта сайта. Модуль позволяет генерировать карту сайта страницы умного фильтра. Это упрощает индексацию страниц…

    Узнать больше об этом ресурсе…

    KurtDCobain

    • #2

    Спасибо за модуль! Попробую, отпишусь.

    Smolvelles

    • #3

    Спасибо за модуль! Сейчас проверим.

    MARVEL

    • #4

    Ну сотбит плохого вроде не делает. Спасибо.

    Последнее редактирование модератором: 03.03.21

    Никита

    • #5

    Спасибо за модуль, очень полезный.

    Administrator

    frady

    • #7

    Спасибо за модуль! Сейчас проверим.

    zbwj

    • #8

    Спасибо за модуль! Сейчас проверим.

    Biti

    • #9

    Спасибо за модуль! Сейчас проверим.

    Veronicka

    • #10

    Спасибо большое будем пробовать модуль

    uroboros

    • #11

    Спасибо за модуль! Сейчас проверим.

    Administrator

    • #12

    Спасибо за модуль! Сейчас проверим.

    Не проверите! Все ресурсы доступны только для платных групп «VIP-пользователь».

    corp-kvatr41952

    • #13

    Спасибо за модуль! Попробую, отпишусь.

    • #14

    Спасибо за модуль, долго искал.

    Administrator

    Cania

    • #16

    Спасибо за модуль! Попробую, отпишусь.

    • #17

    Классный модуль . Давно искал.

    Последнее редактирование модератором: 23.09.21

    Administrator

    Morphium

    • #19

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

    Последнее редактирование модератором: 16.11.21

    le0ruslan

    • #20

    Рекомендую к установке. Скачиваю обновления.

    Последнее редактирование модератором: 22.11.21


    Нюансы внедрения seo фильтра сотбит

    27.04.2020
    Очень часто люди думают, купил модуль и всё готово, мол там работы на 5 минут. В этой заметке расскажу о нюансах внедрения seo фильтра сотбит, которые не очевидны, но кардинально влияют на стоимость работ по доработке Битрикс
    .
    1) Если в каталоге нет разделов, тогда seo фильтр сотбит работать не будет. 
    2) Если редакция старт (стандарт), вероятность, что там seo фильтр сотбит работать не будет очень высока и потребуется комплекс работ по доработке битрикса
    3) Если каталог без комплексного компонента каталога, а его часто делают на базе компонента news, в этом случае тоже не будет работать.
    4) Если шаблон smart filter не поддерживает штатный функционал, либо он кардинально переделан, в этом случае также seo фильтр сотбит работать не будет. Придётся переделывать шаблон фильтра с сохранением дизайна. А это дело я вам скажу не быстрое, фильтр является одним из сложных элементов для доработок.

    И только после выполнения всех необходимых доработок seo фильтр сотбит заработает, и мы получим результат ради чего всё затевалось.
    Управление настройками условий для облака тегов

    сотбит условия для облака тегов.png

    И собственно сами теги на страницах каталога

    сотбит облако тегов.png

    Ещё статьи:

    18.01.2023
    Нюансы перехода битрикс на РНР 8.0
    С февраля битрикс прекращает поддерживать РНР 7.4 и в битрикс сегменте сайтов начался переход на РНР 8 для получения обновлений.
    Но без нюансов и ошибок…
    ID: 431

    10.01.2023
    БУС окончательно всё?
    Появилась информация от битрикс, что грубо говоря поддержка по отраслевому медицинскому решению от битрикс будет до 1 февраля 2024 года, а что потом б…
    ID: 426

    30.08.2022
    Типовые претензии к подрядчику и к битрикс
    По свежим следам я собрал типовые претензии к подрядчику и к битрикс. Мной был проведён аудит и я увидел, что техническое состояние сайта хорошее, нареканий…
    ID: 338

    Новые статьи в блоге:

    Возврат к списку

    Распространенной задачей SEO оптимизации является переход умного фильтра на человекопонятный url.

    Для возможности продвижения сайта по низкочастотным запросам было принято решение по переходу фильтра со стандартного $_GET запроса (?width=165&radius=13&profile=35&proizvoditel=Bridgestone&section=tyre) на ЧПУ (/filter/manufacturer-is-continental/p_width_tyres-is-155/p_profile_tyres-is-65/p_radius-is-r13/apply/).

    Основными моментами перехода служит параметр компонента фильтра catalog.smart.filter :
    SEF_MODE => «Y» и установкой пути построения url SECTION_CODE_PATH  => путь к каталогу товаров/filter/#SMART_FILTER_PATH#/apply/
    так же рекомендуется заполнять параметр PREFILTER_NAME => массив фильтруемых свойств, в которую передается массив параметров из дополнительного фильтра, для актуальности выводимых свойств фильтра и их совместимости между собой.

    Если используется фасетный индекс и несколько условий выбора цены, то может возникнуть проблема вывода товаров в списке, для этого нужно будет удалить параметр «FACET_OPTIONS» в передаваемом массиве свойств.

    Не забываем изменить файл urlrewrite.php по примеру

      array (
        ‘CONDITION’ => ‘#^/catalog/filter/(.+?)/apply/#’,
        ‘RULE’ => ‘SMART_FILTER_PATH=$1’,
        ‘ID’ => ‘bitrix:catalog.smart.filter’,
        ‘PATH’ => ‘/catalog/index.php’,
      ),

    так как без него фильтр работать не будет или будет выдавать 404 ошибку

    В дальнейшем генерировать карту сайта для фильтра необходимо будет вручную, так как стандартный функционал Битрикса не собирает ссылки с запросов умного фильтра, с помощью CIBlockElement::GetList и создания файла с расширением .xml, тут фильтр выборки для каждого может быть свой из за индивидуальности свойств и нужных разделов для генерации sitemap.

    • Вы здесь : 
    • Разработчик сайтов и магазинов на битриксе . И не только.
    • /Без рубрики /
    • bitrix Если smart.filter в корне выдает 404 для 2х и более чебоксов

    для начала лезем в этот файл
    bitrix/modules/main/classes/general/component_engine.php

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    protected function __checkPath4Template($pageTemplate, $currentPageUrl, &$arVariables)

    {

    if (!empty($this->greedyParts))

    {

    $pageTemplateReg = preg_replace(«‘#(?:».implode(«|», $this->greedyParts).«)#’», «(.+?)», $pageTemplate);

    $pageTemplateReg = preg_replace(«‘#[^#]+?#’», «([^/]+?)», $pageTemplateReg);

    }

    else

    {

    $pageTemplateReg = preg_replace(«‘#[^#]+?#’», «([^/]+?)», $pageTemplate);

    }

    if (substr($pageTemplateReg, 1, 1) == «/»)

    $pageTemplateReg .= «index.php»;

            $re = ‘/^/([^/]*?/)filter/(.+?)/apply//m’;

            /*

             /decking/filter/brand-is-darvolex/s_depth-is-8/apply/sdfsdfsdfsdfsfsdf

            /decking/terrasnaya-doska-plastik/filter/s_color-is-8/apply/

            /decking/filter/brand-is-darvolex/s_depth-is-8/apply/sdfsdfsdfsdfsfsdf

    */

            $matches_f=array();

            preg_match($re, $_SERVER[‘REQUEST_URI’], $matches_f );

            if($matches_f){

                $pageTemplateReg=«filter/(.+?)/apply/index.php»;

            }

    $arValues = array();

    if (preg_match(«‘^».$pageTemplateReg.«$’», $currentPageUrl, $arValues))

    {

    $arMatches = array();

    if (preg_match_all(«‘#([^#]+?)#’», $pageTemplate, $arMatches))

    {

    for ($i = 0, $cnt = count($arMatches[1]); $i < $cnt; $i++)

    $arVariables[$arMatches[1][$i]] = $arValues[$i + 1];

    }

    return true;

    }

    return false;

    }

    и исплавляем работу без категорий
    2) потом для вашего smart фильтер добавочку — проверку на страницу делаем, что бы не попали страницы с категориями

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    $re = ‘/^/(?:.+?)filter/(.+?)/apply//m’;

    /*$str = ‘/decking/filter/brand-is-darvolex/s_depth-is-8/apply/sdfsdfsdfsdfsfsdf

    /decking/herrr/filter/brand-is-darvolex/s_depth-is-8/apply/’; */

    $matches_f=array();

    preg_match($re, $_SERVER[‘REQUEST_URI’], $matches_f );

    if($matches_f){

        $arResult[‘VARIABLES’][‘SMART_FILTER_PATH’]=$matches_f[1];

    }

    $APPLICATION->IncludeComponent(

        ‘bitrix:catalog.smart.filter’,

        ‘catalog’,

        array(

            ‘IBLOCK_TYPE’ => $arParams[‘IBLOCK_TYPE’],

            ‘IBLOCK_ID’ => $arParams[‘IBLOCK_ID’],

            ‘SECTION_ID’ => $arSection[‘ID’],

            ‘FILTER_NAME’ => $arParams[‘FILTER_NAME’],

            ‘PRICE_CODE’ => $arParams[‘PRICE_CODE’],

            ‘CACHE_TYPE’ => $arParams[‘CACHE_TYPE’],

            ‘CACHE_TIME’ => $arParams[‘CACHE_TIME’],

            ‘CACHE_GROUPS’ => $arParams[‘CACHE_GROUPS’],

            ‘SAVE_IN_SESSION’ => ‘N’,

            ‘FILTER_VIEW_MODE’ => ($arTheme[‘FILTER_VIEW’][‘VALUE’] == ‘HORIZONTAL’ ? ‘HORIZONTAL’ : ‘VERTICAL’),

            ‘DISPLAY_ELEMENT_COUNT’ => ‘Y’,

            ‘POPUP_POSITION’ => ($arTheme[‘SIDE_MENU’][‘VALUE’] == ‘LEFT’ ? ‘right’ : ‘left’),

            ‘INSTANT_RELOAD’ => ‘Y’,

            ‘XML_EXPORT’ => ‘N’,

            ‘HIDE_NOT_AVAILABLE’ => ‘N’,

            ‘TEMPLATE_THEME’ => $arParams[‘TEMPLATE_THEME’],

            ‘SEF_MODE’ => strlen($arParams[‘FILTER_URL_TEMPLATE’]) ? ‘Y’ : ‘N’,

            ‘SEF_RULE’ => $arResult[‘FOLDER’].$arParams[‘FILTER_URL_TEMPLATE’],

            ‘SMART_FILTER_PATH’ => $arResult[‘VARIABLES’][‘SMART_FILTER_PATH’],

        ),

        $component

    );

    При использовании многосайтовости в пункте 5 доступен выбор требуемого сайта.

  • Тип фильтра – в поле требуется выбрать используемый в каталоге фильтр.
    • Стандартный фильтр с ЧПУ.
    • Стандартный фильтр без ЧПУ.
    • Фильтр MissShop с ЧПУ.
    • Kombox фильтр с ЧПУ.
  • ЧПУ фильтра в каталоге — в поле можно указать маску ссылки битрикс, отличной от стандартной, формата /filter/#FILTER_PARAMS#/apply.

  • Отключить индексацию всех страниц – при отмеченной опции будет отключена индексация всех страниц на которых подключен компонент sotbit:seo.meta. Отключение индексации происходит путем добавления тега <meta name=»robots» content=»noindex, nofollow»> в элемент <head> текущей страницы.

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

  • Список источников – в текстовом поле задается список сайтов с которых будут фиксироваться переходы для ведения статистики. Каждый источник требуется указывать с новой строки.

    Переходы будут фиксироваться только с тех источников, адреса которых присутствуют в списке. По умолчанию в список включены следующие источники: yandex.ru, google.ru, www.yahoo.com, www.rambler.ru.

  • Пагинация – в поле указывается часть url адреса, которая будет отображаться в адресной строке при пагинации. В поле вводится шаблон, содержащий в себе элемент «%N%» — номер страницы. Например: «/page_%N%/».

    Данное поле нужно использовать, если пагинация на сайте реализована через URL (в конце адресной строки на страницах пагинации присутствует запись типа /page_2/).

    Подстановка части url адреса, отвечающей за пагинацию производится только для ЧПУ адресов.

  • Текст для метаинформации при пагинации – в поле вводится текст, который отображаться после метаинформации на страницах пагинации, где «%N%» — номер страницы. Например: (страница %N%).

  • Включить тегированное кеширование.

    Не стоит использовать этот механизм при частом обновлении элементов или разделов. С другой стороны это должно быть удобным для редакторов сайтов: изменения моментально отображаются на сайте. Еще один плюс — можно задавать практически бесконечное время кеширования.

  • Делать активными ЧПУ после генерации — опция, которая позволяет генерировать сразу активные ссылки.

    Рекомендуем всё же генерировать неактивные чпу ссылки и производить проверку редиректа активируя одну или несколько ЧПУ ссылок после генерации. Если в шаблоне для новой ссылки была допущена ошибка, а все ссылки сгенерируются активными, то при выборе соответствующих условию параметров будет происходить перенаправление на «битую» ссылку, в результате чего возникнет 404 ошибка.

  • Добавлять канонический url (canonical) – опция, при включении которой в метаинформации размещается каноническая ссылка.

    Каноническая страница – это страница сайта, адрес которой является каноническим (предпочитаемым) в группе схожих по содержимому страниц. Проще говоря канонический URL страницы – это адрес, который будет индексироваться при наличии страниц-дублей.

  • Перехват ajax-запросов – опция, при включении которой, перехватываются AJAX запросы из которых, при выполнении условий, будут формироваться новые метатеги.

    AJAX запрос – AJAX (аббревиатура от «Asynchronous Javascript And Xml») – технология обращения к серверу без перезагрузки страницы, за счет чего уменьшается время отклика и веб-приложение по интерактивности больше напоминает десктоп. Под AJAX подразумевают любое общение с сервером без перезагрузки страницы, организованное при помощи JavaScript.

  • Перегенерировать все ЧПУ ссылки при построении карты сайта — При установленном чекбоксе, во время генерации карты сайта, все ЧПУ ссылки будут перегенерированны в каждом из условий. При установленном чекбоксе время построения карты сайта может значительно увеличиться.

  • Исключить из фильтрации — Указанные поля ( ключи массива ${$FilterName} ) не будут учитываться при работе в условиях. В качестве разделителя использовать ;

  • Исключить страницы с параметрами из обработки — Исключает страницы из обработки с указанными параметрами.

    Пример:
    У нас есть ajax запрос который «ломается» на странице сгенерированной нашим модулем и в запросе есть параметр: is_ajax=Y
    Чтобы исключить этот запрос из обработки требуется просто указать этот параметр по шаблону: ключ=значение
    ( ajax=Y; В качестве разделителя нужно использовать ; )

  • Количество ссылок обрабатываемых за один шаг, при генерации карты сайта — При установленном чекбоксе, будет браться установленное количество ссылок для обработки. Если во время генерации карты сайта возникает ошибка, завершения скрипта из-за истечения времени ожидания (TIME OUT), рекомендуется уменьшить указанное значение.

    Для увеличения скорости построения карты сайта можно увеличить это значение, но скрипт может завершить свое выполнение по истечению времени (TIME OUT), поэтому данное значение подбирается опытным путем.

  • Максимальный количество ссылкой в одном файле (seometa_sitemap) — Указывается для ограничения максимального количества ссылок записываемых в файл карты сайта, генерируемый модулем.

    Для правильной работы максимальный размер равен 50000. (по умолчанию установлено значение равное 50000).

  • Максимальный размер файла (seometa_sitemap) — Указывается для ограничения максимального размера файла карты сайта, генерируемым модулем.

    Размер требуется писать в мегабайтах, только число. (пример: 30 — что равно 30Mb). Для правильной работы максимальный размер равен 50 Mb. (по умолчанию установлено значение равное 50 Mb).

  • Нужна помощь в настройке решения

    Оставьте заявку и мы свяжемся с вами!

    Здравствуйте.

    Вопрос в точности как в этой теме, столкнулся с точно такой-же проблемой.

    ЧПУ настроено так, что категория: https://site.ru/catalog/rozetki/retro/
    URL товара: https://site.ru/product/12345/

    Настройки:
    5eaf3df055cf7121171564.png

    Кол-во товаров подсчитывает при фильтрации
    5eaf3f34f3cbf863253009.png

    Но при клике на «показать» переадресовывает на https://site.ru/product/filter (соответственно 404).

    Помогите разобраться, не пойму в чем дело, смотрю везде где только можно…

    urlrewrite.php — не знаю, нужен он для фильтра или нет, но в нем кроме этих записей связанных с каталогом — других нет.

    29 => 
      array (
        'CONDITION' => '#^/catalog/#',
        'RULE' => '',
        'ID' => 'bitrix:catalog',
        'PATH' => '/catalog/index.php',
        'SORT' => 100,
      ),
      30 => 
      array (
        'CONDITION' => '#^/product/#',
        'RULE' => '',
        'ID' => 'bitrix:catalog',
        'PATH' => '/product/index.php',
        'SORT' => 100,
      ),

    • Вопрос задан

      более трёх лет назад

    • 708 просмотров

    Пригласить эксперта

    У вас 2 раздела product и catalog (и видимо и там и там используется компонент catalog). Приведите все к 1 компоненту и потом уже проверяйте (фильтр у вас должен указывать вероятно на /catalog/filter, а не /product/filter ).

    P.S. URL товара не обязательно должен соответствовать его физическому расположению, для этого роутинг и придумали


    • Показать ещё
      Загружается…

    28 июн. 2023, в 00:11

    3000 руб./за проект

    27 июн. 2023, в 23:24

    1000 руб./за проект

    27 июн. 2023, в 23:20

    20000 руб./за проект

    Минуточку внимания

    Доброго времени суток!

    На одном проекте встала задача для комплексного компонента каталога, а в частности при выбранном фильтре проверять параметры которые передаются в URL-е и если в нем находятся несуществующие параметры выводить 404 страницу (при ЧПУ для catalog.smart.filter).

    Для примера, есть действующая рабочая страница с адресом/catalog/dveri/filter/tolshina_polotna-is-35/apply/ и есть старый адрес (или просто любой спамный адрес) /catalog/dveri/filter/tolshina_polotna-is-999999999/apply/. Т.е. такого параметра в фильтре нет, но страница все равно отдает 200 код и выводит данные по странице без фильтра. Вот её то нам и нужно убрать, т.е. выводить 404 код и страницу.

    Сразу хочу сказать, что показанная реализация далеко не идеальная и подходит на минимальных изменениях комплексного шаблона компонента, но каждый может её донастроить «под себя». Мне для выполнения задачи хватило минимальных дополнений.

    Что делаем:

    1) убеждаемся, что у нас добавлен обработчик события на эпилоге, проверяющий константу ERROR_404 и при её наличии выводящий 404 страницу с нужным кодом. Примерно такого содержания:

    AddEventHandler("main", "OnEpilog", "error_page");
    function error_page()
    {
        $page_404 = "/404.php";
        GLOBAL $APPLICATION;
        if(strpos($APPLICATION->GetCurPage(), $page_404) === false && defined("ERROR_404") && ERROR_404 == "Y")
        {
            $APPLICATION->RestartBuffer();
            CHTTP::SetStatus("404 Not Found");
            include($_SERVER["DOCUMENT_ROOT"].SITE_TEMPLATE_PATH."/header.php");
            include($_SERVER["DOCUMENT_ROOT"].$page_404);
            include($_SERVER["DOCUMENT_ROOT"].SITE_TEMPLATE_PATH."/footer.php");
            die();
        }
    }
    

    Добавить его можно в init.php например.

    2) Мы будем проверять, что выбран адрес с установленными значениями фильтра (в моём случае это наличие /filter/), а также есть параметры фильтрации для catalog.section (по умолчанию глобальная переменная $arrFilter, у вас может быть другая).

    Для этого идем в шаблон нашего catalog.section в файл result_modifier.php и там ставим проверку (можно её поставить перед вызовом catalog.section, как вам угодно)

    global $arrFilter;
    $curPage = $APPLICATION->GetCurPage(false);
    
    if(strpos($curPage, "/filter/") !== false && empty($arrFilter))
    {
    	define("ERROR_404","Y");
    }
    

    Как вы можете видеть я проверяю вообще на пустоту массива фильтра $arrFilter, если он у вас где-то еще переопределяется и там присутствуют другие значения (кроме тех, что устанавливает catalog.smart.filter) — вам нужна более сложная логика для проверки. Но для общего примера и понимания мне кажется этого достаточно.

    Все, после этого если адрес страницы содержит /filter/, а параметров фильтрации нет никаких, будет отдаваться 404 страница.

    День добрый подскажите, как можно решить данную проблемку, подключил с начала комплексный компонент каталог, потом умный фильтр. Зашёл в настройки инфоблока и поставил галочки показывать в умном фильтре, вид в умном фильтре, показывать развёрнутым и всё это напротив свойств цена и бренды. После чего появился фильтр с параметрами цена и бренды, но если нажать на кнопку показать ничего не выдаёт?

    Код умного фильтра

     <?$APPLICATION->IncludeComponent(
    "bitrix:catalog.smart.filter",
    ".default",
    Array(
        "CACHE_GROUPS" => "Y",
        "CACHE_TIME" => "36000000",
        "CACHE_TYPE" => "A",
        "COMPONENT_TEMPLATE" => ".default",
        "DISPLAY_ELEMENT_COUNT" => "Y",
        "FILTER_NAME" => "arrFilter",
        "FILTER_VIEW_MODE" => "vertical",
        "IBLOCK_ID" => "1",
        "IBLOCK_TYPE" => "Catalog",
        "INSTANT_RELOAD" => "N",
        "PAGER_PARAMS_NAME" => "arrPager",
        "POPUP_POSITION" => "left",
        "SAVE_IN_SESSION" => "N",
        "SECTION_CODE" => "",
        "SECTION_DESCRIPTION" => "-",
        "SECTION_ID" => $_REQUEST["SECTION_ID"],
        "SECTION_TITLE" => "-",
        "SEF_MODE" => "N",
        "TEMPLATE_THEME" => "blue",
        "XML_EXPORT" => "N"
    )
    

    );?>

    Код каталога

                 <?$APPLICATION->IncludeComponent(
    "bitrix:catalog",
    "Catalog",
    Array(
        "ACTION_VARIABLE" => "action",
        "ADD_ELEMENT_CHAIN" => "N",
        "ADD_PICT_PROP" => "-",
        "ADD_PROPERTIES_TO_BASKET" => "Y",
        "ADD_SECTIONS_CHAIN" => "Y",
        "AJAX_MODE" => "N",
        "AJAX_OPTION_ADDITIONAL" => "",
        "AJAX_OPTION_HISTORY" => "N",
        "AJAX_OPTION_JUMP" => "N",
        "AJAX_OPTION_STYLE" => "Y",
        "BASKET_URL" => "/personal/basket.php",
        "CACHE_FILTER" => "N",
        "CACHE_GROUPS" => "Y",
        "CACHE_TIME" => "36000000",
        "CACHE_TYPE" => "A",
        "COMPONENT_TEMPLATE" => "Catalog",
        "DETAIL_ADD_DETAIL_TO_SLIDER" => "N",
        "DETAIL_BACKGROUND_IMAGE" => "-",
        "DETAIL_BRAND_USE" => "N",
        "DETAIL_BROWSER_TITLE" => "-",
        "DETAIL_CHECK_SECTION_ID_VARIABLE" => "N",
        "DETAIL_DETAIL_PICTURE_MODE" => "IMG",
        "DETAIL_DISPLAY_NAME" => "Y",
        "DETAIL_DISPLAY_PREVIEW_TEXT_MODE" => "E",
        "DETAIL_META_DESCRIPTION" => "-",
        "DETAIL_META_KEYWORDS" => "-",
        "DETAIL_PROPERTY_CODE" => array(0=>"",1=>"",),
        "DETAIL_SET_CANONICAL_URL" => "N",
        "DETAIL_USE_COMMENTS" => "N",
        "DETAIL_USE_VOTE_RATING" => "Y",
        "DETAIL_VOTE_DISPLAY_AS_RATING" => "rating",
        "DISPLAY_BOTTOM_PAGER" => "Y",
        "DISPLAY_TOP_PAGER" => "N",
        "ELEMENT_SORT_FIELD" => "sort",
        "ELEMENT_SORT_FIELD2" => "id",
        "ELEMENT_SORT_ORDER" => "asc",
        "ELEMENT_SORT_ORDER2" => "desc",
        "FILTER_VIEW_MODE" => "VERTICAL",
        "IBLOCK_ID" => "1",
        "IBLOCK_TYPE" => "Catalog",
        "INCLUDE_SUBSECTIONS" => "N",
        "LABEL_PROP" => "-",
        "LINE_ELEMENT_COUNT" => "3",
        "LINK_ELEMENTS_URL" => "link.php?PARENT_ELEMENT_ID=#ELEMENT_ID#",
        "LINK_IBLOCK_ID" => "",
        "LINK_IBLOCK_TYPE" => "",
        "LINK_PROPERTY_SID" => "",
        "LIST_BROWSER_TITLE" => "-",
        "LIST_META_DESCRIPTION" => "-",
        "LIST_META_KEYWORDS" => "-",
        "LIST_PROPERTY_CODE" => array(0=>"",1=>"",),
        "MESSAGE_404" => "",
        "MESS_BTN_ADD_TO_BASKET" => "В корзину",
        "MESS_BTN_BUY" => "Купить",
        "MESS_BTN_COMPARE" => "Сравнение",
        "MESS_BTN_DETAIL" => "Подробнее",
        "MESS_NOT_AVAILABLE" => "Нет в наличии",
        "PAGER_BASE_LINK_ENABLE" => "N",
        "PAGER_DESC_NUMBERING" => "N",
        "PAGER_DESC_NUMBERING_CACHE_TIME" => "36000",
        "PAGER_SHOW_ALL" => "N",
        "PAGER_SHOW_ALWAYS" => "N",
        "PAGER_TEMPLATE" => ".default",
        "PAGER_TITLE" => "Товары",
        "PAGE_ELEMENT_COUNT" => "30",
        "PARTIAL_PRODUCT_PROPERTIES" => "N",
        "PRICE_CODE" => array(0=>"ATTR_PRICE",),
        "PRICE_VAT_INCLUDE" => "Y",
        "PRICE_VAT_SHOW_VALUE" => "N",
        "PRODUCT_ID_VARIABLE" => "id",
        "PRODUCT_PROPERTIES" => array(),
        "PRODUCT_PROPS_VARIABLE" => "prop",
        "PRODUCT_QUANTITY_VARIABLE" => "",
        "SECTIONS_HIDE_SECTION_NAME" => "N",
        "SECTIONS_SHOW_PARENT_NAME" => "Y",
        "SECTIONS_VIEW_MODE" => "TILE",
        "SECTION_BACKGROUND_IMAGE" => "-",
        "SECTION_COUNT_ELEMENTS" => "N",
        "SECTION_ID_VARIABLE" => "SECTION_ID",
        "SECTION_TOP_DEPTH" => "2",
        "SEF_FOLDER" => "/catalog/",
        "SEF_MODE" => "Y",
        "SEF_URL_TEMPLATES" => array("sections"=>"","section"=>"#SECTION_CODE_PATH#/","element"=>"#SECTION_CODE_PATH#/#ELEMENT_ID#/","compare"=>"compare.php?action=#ACTION_CODE#","smart_filter"=>"#SECTION_ID#/filter/#SMART_FILTER_PATH#/apply/",),
        "SET_LAST_MODIFIED" => "N",
        "SET_STATUS_404" => "N",
        "SET_TITLE" => "Y",
        "SHOW_404" => "N",
        "SHOW_DEACTIVATED" => "N",
        "SHOW_PRICE_COUNT" => "1",
        "SHOW_TOP_ELEMENTS" => "N",
        "SIDEBAR_DETAIL_SHOW" => "Y",
        "SIDEBAR_PATH" => "",
        "SIDEBAR_SECTION_SHOW" => "Y",
        "TEMPLATE_THEME" => "blue",
        "TOP_ELEMENT_COUNT" => "9",
        "TOP_ELEMENT_SORT_FIELD" => "sort",
        "TOP_ELEMENT_SORT_FIELD2" => "id",
        "TOP_ELEMENT_SORT_ORDER" => "asc",
        "TOP_ELEMENT_SORT_ORDER2" => "desc",
        "TOP_LINE_ELEMENT_COUNT" => "3",
        "TOP_PROPERTY_CODE" => array(0=>"",1=>"",),
        "TOP_VIEW_MODE" => "SECTION",
        "USE_COMPARE" => "N",
        "USE_ELEMENT_COUNTER" => "Y",
        "USE_FILTER" => "N",
        "USE_MAIN_ELEMENT_SECTION" => "N",
        "USE_PRICE_COUNT" => "N",
        "USE_PRODUCT_QUANTITY" => "N",
        "USE_STORE" => "N",
        "VARIABLE_ALIASES" => array("compare"=>array("ACTION_CODE"=>"action",),)
    )
    

    );?>

    • Что такое умный фильтр
    • В чем сложность и вопрос?
    • История исследования и разработки умного фильтра
    • Почему нельзя использовать умный фильтр Битрикса «из коробки»?
    • Ожидания покупателя от работы фильтра
      • Какие флажки помещать в умный фильтр?
    • Требования SEO-специалистов к умному фильтру
      • Уникальные title, keywords, description, h1.
      • «Быстрые ссылки» — готовые результаты фильтра
      • Размещение текста на странице с фильтром
      • Правильные canonical и отсутствие дублей
      • Шаблон правил для robots.txt
      • Автоматическое добавление в sitemap.xml
      • Умный фильтр и коды ответа
      • Фильтр не требует квалификации программиста для настройки
      • Пример реализации механизма расстановки уникальных заголовков на страницах фильтра (сайт dg-home.ru).
    • Ожидания директора магазина
    • Внедрение умного и готового к seo фильтра на ваш проект

    Есть проекты — интернет-магазины. Это сложные проекты и для продвижения, и для веб-разработки.

    В них сотни и тысячи товаров. Десятки и сотни категорий.

    Есть особый тип страниц — страницы фильтра. Их на порядок больше. Они собирают трафик по огромному количеству запросов и важны для SEO.

    Пример: на сайте, где продаются стройматериалы, в категории «облицовочный кирпич» ставим флажок «желтый». Видим новую страницу, идеально отвечающую на запрос «желтый облицовочный кирпич». Таким образом можно обеспечить посадочными страницами семантическое ядро любого размера. Настройка ЧПУ и умного фильтра в Битрикс позволяет оптимизировать страницы правильно и для клиента и для поисковых роботов.

    Много посадочных также хорошо и для контекстной рекламы — любой запрос найдет свою страницу.

    фильтр в битриксе

    Вывод: страницы выдачи фильтров интернет-магазина исключительно важны для SEO.

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

    Что такое умный фильтр

    Фильтр — инструмент выбора товаров в интернет-магазине. Например, в строительном интернет-магазине, чтобы из множества однотипных кирпичей выбрать желаемый цвет, пользователь ставит галочку, страница обновляется, появляются «Абрикосовые кирпичи». Также выбирают Производителя, Размер, и прочие характеристики. Чем больше параметров выберет пользователь, тем уже будет выборка, тем точнее результат.

    Фильтры можно любить или нет, но не обращать на них внимание нельзя. Для магазина с 1000 товаров и 30 категориями страниц-фильтров будут десятки тысяч. Про них знают поисковики, они занимают большой процент всех проиндексированных страниц. Это ваш актив, работайте с ним.

    Фильтр — это ваш актив. Работайте с ним!

    Умный фильтр не только показывает товары, но обладает дополнительными удобствами:

    • Знает, какие комбинации характеристик не дают результата, и запрещает их выбор. Например, бренд Braer не производит абрикосовый кирпич.
    • Знает, в какой категории какие характеристики бывают. Для строительного кирпича не показывает характеристику «Цвет».

    В статье описан наш опыт разработки и seo продвижения магазинов с использованием умного фильтра.

    Знакомьтесь, Умный Фильтр.

    умный фильтр в битриксе

    Знакомьтесь, господин Уэф. Никакого отношения к статье не имеет, но созвучно ;)

    господин Уэф

    В чем сложность и вопрос?

    Фильтр — штука «чисто программерская». Ставишь галочки, сайт «вжух-вжух» и показывает результат.

    Никакой ручной настройки не подразумевает — SELECT-запросы к базе данных в чистом виде.

    Однако, есть 2 отрасли, о которых нужно подумать — поисковое продвижение и юзабилити. Первое важно для сеошника, второе — для пользователя. Ведь он покупает ваши товары! Пусть ему будет удобно!

    Задача веб-интегратора — заботиться о личном счастье каждого участника веб-системы. Мы провели анализ и придумали компромиссную реализацию умного фильтра, удовлетворяющего всех. В том числе директора магазина.

    Мы проработали варианты использования умного фильтра, придумали правильное решение и рекомендуем внедрять на каждом проекте, с которым работаем.

    Список требований к умному фильтру участников проекта оформили в виде mindmap (увеличивается при нажатии).

    интеллект-карта разработки умного фильтра

    История исследования и разработки умного фильтра

    Ранее мы касались темы в статьях:

    • Рассказали, чем хорош умный фильтр и как он работает — Подбор по параметрам как на Ситилинке
    • Немного раскрыли в статье технику реализации ЧПУ фильтра на портале недвижимости.
    • Упомянули «быстрый фильтр» — младшего брата «умного фильтра», заточенного для SEO.

    Почему нельзя использовать умный фильтр Битрикса «из коробки»?

    Битрикс сделал хороший фильтр, но традиционно не подумал о SEO. У коробочного фильтра 1С-Битрикс (версия 16.5.4) несколько серьезных недостатков:

    • Длинные избыточные адреса страниц. Также, если удалить последний /apply/ будет 404 ошибка.
      чпу фильтра битрикса из коробки
    • Отдельную страницу с результатами фильтра нельзя оптимизировать — разместить заголовок и текст. Приходится использовать дополнительные модули (например, наши «Инструменты SEO-специалиста»).
    • Нельзя настроить канонический адрес автоматически.
    • Сброшенный фильтр возвращает вас к оригинальному списку товаров, но меняет адрес страницы: /catalog/pants/filter/clear/apply/ вместо /catalog/pants/.
    • Если у магазина товаров до 50 тысяч, а общее количество свойств не превышает 500, можно смело использовать умный фильтр битрикса. Он справится. Если товаров или свойств в разы больше, придется делать собственную разработку.

    Ожидания покупателя от работы фильтра

    1. Фильтр помогает найти товар.
    2. Покупатель хочет, чтобы фильтр работал быстро. Выбрал галки, перезагрузил страницу, увидел результат.
    3. Покупатель хочет, чтобы адреса страниц не менялись. Страницей фильтра можно поделиться, сохранить в закладки, выучить наизусть.
    4. Поведение фильтра предсказуемо и понятно. Владельцы магазинов не всегда хотят тратить ресурсы на удобство работы пользователя с сайтом, оставляют задачи «на потом». Страдают, как правило, пользователи.

    Пример страдания: Угадайте, за что отвечает флажок «Тип: Отвертка аккумуляторная» в категории «Отвертки аккумуляторные»? Правильно, ни за что;)

    аккумуляторные отвертки в фильтре

    Для удовлетворения ожиданий покупатели (и увеличения конверсии в итоге) разработчик должен подумать и выполнить задачи:

    1. Сделать удобный и понятный интерфейс фильтра.
    2. В каждой категории магазина показывать важными несколько свойств, которые помогают покупателю совершить выбор. Остальные скрывать.
    3. Продумать архитектуру фильтра так, чтобы запросов было минимальное количество и работал кеш. Влияет на скорость работы фильтра. Бонус — быстрые страницы хорошо влияют на пользовательские факторы сайта (важно для SEO).
    4. Дополнительное требование про кеш: кэшированные страницы отдают правильный заголовок Last-Modified на дату кеширования.
    5. Порядок сортировки и постраничная навигация должны передаваться в GET-параметрах. Вопрос про канонические страницы ниже в блоке про SEO.
    6. Сделать минимум изменений в существующем программном коде. В идеале — небольшие надстройки «поверх» фильтра из коробки.

    Какие флажки помещать в умный фильтр?

    Как мы решали проблему сортировки характеристик / свойств фильтра в категориях.

    Есть категории — Диваны и Люстры. У диванов есть свойства: двухместный, трехместный. У люстр — материал (сталь, стекло) и стиль (прованс, лофт). Какие флажки должны остаться в фильтре, в каком порядке? На основании чего принимать решение?

    Для электроники, бытовой техники, инструментов, компьютеров можно подсмотреть флажки-свойства в Яндекс.Маркете. Как быть для других тематик?

    Мы придумали следующий алгоритм:

    • собираем ключевые фразы по названиям всех категорий каталога сайта (включая слова «купить», «цена»)
    • группируем в соответствии с исходными категориями. В «Диваны» кладем «купить кожаный диван», «купить угловой диван», «диван аккордеон купить». В «Люстры» — «купить хрустальную люстру», «купить потолочную люстру».
    • сортируем в каждой группе ключи по убыванию частотности, отсеиваем низкочастотные запросы.
    • Получаем по 2-3 базовых характеристики, которые интересуют покупателей товаров конкретной категории. Для диванов важен тип и материал. Для люстр — материал на первом месте.

    пример работы фильтра

    Требования SEO-специалистов к умному фильтру

    Заметили, да? У всех ожидания, а у нас — требования. Отвечу от имени сеошников. Фильтр может оказаться бомбой замедленного действия, неповоротливой и инертной для поисковой машины. Лучше заранее все продумать и не совершать ошибок.

    Фильтр может оказаться бомбой замедленного действия

    Для внедрения SEO-требований подойдет «коробочный» фильтр Битрикса. Приблизительная оценка внедрения: ~100 человеко-часов. Перечисляем в порядке важности приоритета. Если бюджета не хватает, отказывайтесь от нижних.

    1. Уникальные title, keywords, description, h1 на страницах умного фильтра. Бонус — красивый и кликабельный сниппет в выдаче.
    2. «Быстрые ссылки» — готовые результаты фильтра
    3. Размещение текста на странице с фильтром
    4. Правильные canonical и отсутствие дублей
    5. Шаблоны правил для robots.txt
    6. Автоматическое добавление в sitemap.xml
    7. Генерация sitemap.xml с правильными ЧПУ одной кнопкой
    8. Фильтр отдает правильные коды ответа.
    9. SEO-специалист справится с настройкой без программиста.

    Пояснения некоторых требований.

    Уникальные title, keywords, description, h1.

    Обратим особое внимание на важность уникальных заголовков и прочих мета-тегов. Если не предусмотреть автоматическую расстановку уникальных мета-тегов, в индекс попадет множество дублей. Поисковик посчитает страницы нерелевантными, поискового трафика не будет.

    «Быстрые ссылки» — готовые результаты фильтра

    Мы неоднократно писали про удобство «Быстрых фильтров» для пользователя:

    • https://www.intervolga.ru/blog/marketing/fix-seo-problems-integration/#section9
    • https://www.intervolga.ru/blog/projects/tipovye-pozhelaniya-seo-spetsialistov-dlya-internet-magazinov-na-1s-bitriks-i-sposoby-ikh-realizatsi/#section12

    Быстрая ссылка (быстрый фильтр) — это страница с подборкой товаров под конкретный запрос. Например, «фрезеры бош». Быстрая ссылка имеет ЧПУ и находится в зоне видимости пользователя (заодно, и поисковика).

    Как программировать быстрые фильтры:

    1. В 1С создаем и загружаем на сайт пустые категории в соответствии с группами фраз из семантического ядра. Группы нельзя переименовывать, это важно.
    2. На стороне сайта настраиваем привязки «Адрес категории — Адрес страницы фильтра».
    3. Пишем код, который подставляет на страницу пустой категории список товаров с указанной страницы фильтра. Получается «ЧПУ над ЧПУ».

    настройка быстрых ссылок

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

    Некоторые SEO-специалисты считают, что в интернет-магазине вообще надо закрыть от индексации все страницы с результатами фильтра

    Наша позиция — если вы настроите «Быстрые ссылки» и заведете необходимое количество по всему семантическому ядру, остальные страницы можно «спрятать». На продвигаемые запросы будут страницы (что хорошо). Не используемые — закрыты от поискового робота.

    Размещение текста на странице с фильтром

    В конкурентных тематиках на войне за поисковый трафик мы используем возможности сайта по-максимуму.

    Размещение текстов на страницах категорий каталога помогает получить коммерческий трафик на сайт.

    Чаще всего эту задачу делают вместе с предыдущей. Если есть категория — быстрая ссылка, значит можно разместить и опубликовать ее описание.

    Правильные canonical и отсутствие дублей

    На скриншоте ссылки «сортировка по цене», «алфавиту», «показывать по 20 — 40 — 60» не изменяют товары на странице, только их порядок. С точки зрения поисковика, никакой ценности эти страницы не представляют. SEO-специалисты используют специальный «канонический тег» для указания поисковой машине, какую страницу считать главной и оставить в выдаче.

    генератор дублей

    Инструментов для настройки канонических тегов категорий в битриксе нет. Наш подход к настройке канонических страниц фильтра:

    1. По умолчанию по адресу категории без GET-параметров выводим страницу с сортировкой по цене по возрастанию и внешним видом «Плитка». Эту страницу назначаем канонической с помощью тега
      <link rel="canonical" href="<адрес страницы>" />
    2. 2-я, 3-я и все следующие страницы ссылаются на каноническую страницу по умолчанию. Для Google делаем дополнительно атрибуты
      rel="next" и rel="prev"
    3. Все прочие направления сортировок и внешнего вида товаров (страницы с GET-параметрами, как правило) закрываем от индексации через robots.txt.

    Будьте аккуратнее — если среди запросов пользователей попадаются запросы «дорогие диваны», можно специально для них сделать релевантной страницу с сортировкой по цене от большей к меньшей.

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

    Шаблон правил для robots.txt

    К сожалению, шаблона для настройки robots.txt в части фильтра нет. Каждый проект индивидуален, и задача по настройке файла лежит на плечах SEO-специалиста. Некоторые типовые инструкции:

    Правило Пояснение
    Disallow: /*PAGEN_
    		

    Закрываем все страницы пагинации.

    Работает для всех битриксов.

    Disallow: /*ORDER_BY=
    Disallow: /*desc=
    Disallow: /*sort=
    Disallow: *sort_by=*
    

    Закрываем все страницы сортировки.

    Может отличаться в зависимости от проекта.

    Disallow: */filter/
    Disallow: */apply/
    Disallow: /?set_filter=
    

    Запрещают индексацию страниц фильтра.

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

    Для облегчения первичной настройки воспользуйтесь «Стартовым набором robots.txt» от битрикс.

    стартовый набор robots.txt от битрикс

    Автоматическое добавление в sitemap.xml

    В зависимости от того, закрываете вы страницы фильтра от индексации, или нет — подход к решению задачи может быть различным.

    Сейчас мы делаем карту сайта «по старинке» — автоматически генерируем средствами битрикса и полуавтоматически добавляем адреса страниц фильтра.

    Умный фильтр и коды ответа

    Мы рекомендуем дорабатывать механизм фильтра так, чтобы он умел отдавать следующие коды состояния.

    Код состояния Условие
    200 OK
    

    Страница с результатами фильтра существует и содержит хотя бы 1 товар.

    301 Moved Permanently
    		

    Для случая, когда вы настраиваете «быструю ссылку». Страница с оригинальным адресом должна отдавать 301 редирект на нее.

    304 Not Modified
    		

    Если поисковик обращается к странице с заголовком If-Modified-Since и страница не изменилась, сервер должен вернуть 304 Not Modified. Ниже цитата из документации Google.


    Убедитесь, что ваш веб-сервер поддерживает HTTP-заголовок If-Modified-Since. С его помощью Google может узнать, изменился ли контент сайта с момента последнего сканирования. Эта функция помогает сократить лишнюю нагрузку на сервер — https://support.google.com/webmasters/answer/35769

    404 Not Found
    		

    Для случая, когда адрес страницы неверный.

    410 Gone
    		

    Если сайт знает, что раньше по этому адресу были товары, и больше не будут. — Мы не используем, слишком накладно отслеживать подобные страницы.

    Фильтр не требует квалификации программиста для настройки

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

    Пока, лучшее решение — все настройки выносить в отдельные инфоблоки (highload-блоки), которые можно редактировать в интерфейсе админки.

    Альтернативная попытка — сделать настройку через CSV или другой табличный формат — привела к провалу. Разобраться в хитросплетениях шаблонов названий элементов смог только его автор:

    убер-csv для настройки мета-информации
    Пример файла настроек

    Пример реализации механизма расстановки уникальных заголовков на страницах фильтра (сайт dg-home.ru).

    1. Разработали техническое задания для программирования — описали, какие должны быть заголовки и мета-теги страниц рубрики, фильтра, карточки товара. ТЗ для программиста
    2. Используем бесплатную библиотеку морфологического анализа phpMorphy (http://phpmorphy.sourceforge.net/dokuwiki/). phpMorphy умеет склонять слова русского языка — заголовки и мета-описания получаются фонетически грамотными и привлекательными для пользователей.
    3. Готовим CSV-файлики с настройками для какой категории какое свойство в каком порядке выводить и как правильно склонять его название.
    4. На странице каталога в component_epilog.php размещаем код, который проверяет настройки в CSV для данной категории и устанавливает в соответствии с ними Title, H1, мета-теги. При большом объеме настройки надо выносить в инфоблоки или highload-блоки.

    Ожидания директора магазина

    1. Минимум, а лучше отсутствие изменений в учетной системе (1С). Все решать на стороне сайта. Если в 1С установлен свежий модуль обмена данными, никаких доработок на стороне 1С не потребуется. Максимум — аккуратно создать свойства товаров и привязать товары к соответствующим категориям.
    2. Подрядчик должен решить задачу комплексно и ничего не сломать. Подрядчик умеет проектировать интерфейсы и оптимизировать сайты. Желательно участие SEO-специалиста в процессе написания технического задания на фильтр.

    Скажем честно — комплексные веб-интеграционные проекты — это ни разу не весело. Мы справляемся, но тяжко всем. Заказчикам в том числе.

    Если вы решили поручить работу с умным фильтром своему разработчику — пусть сначала читает нашу статью.

    Внедрение умного и готового к seo фильтра на ваш проект

    Можно внедрять постепенно, можно сразу все. Трудоемкость разработки всех описанных задач — 80 — 100 часов для среднего интернет-магазина.

    Для больших (50 тысяч товаров и больше) появятся проблемы с производительностью, время увеличится на 30-50%.

    Мы рассмотрели решение задач, которые возникают перед веб-разработчиками и SEO-специалистами при настройке умного фильтра на проектах с 1С-Битрикс. Будем рады, если вы поделитесь статьей в социальных сетях и напишете в комментариях, если мы что-то забыли.

    Статья появилась благодаря работе с нашими заказчиками и их проектами:

    • ООО «КирпичРУ» (kirpich.ru);
    • ООО «Декор и Дизайн» (dg-home.ru);
    • ООО «ЛидерСтройИнструмент» (liderstroyinstrument.ru)
    • ООО «Империя Садовода» (www.imperia-sadovoda.ru)

  • Сосчитай количество ошибок допущенных при характеристике реакции fe 2hcl fecl2 h2
  • Сосчитай количество ошибок допущенных при характеристике реакции cucl2 fe fecl2 cu
  • Состязание конных ошибок 6 букв первая буква т
  • Состояние фр 121 ошибка часов
  • Состояние установки отказ сведения об ошибке код 643