Инструкция по настройке плагина «SEO-фильтр»
Поддержка Bodysite
3 апреля 2018
Инструкция по настройке плагина «SEO-фильтр»
1

Инструкция по настройке плагина «SEO-фильтр»

Содержание

1. Общие настройки плагина

2. Создание общего шаблона. Использование переменных

3. Использование модификаторов

4. Добавление фильтров

5. Настройка плагина «SEO-фильтр» на примере

6. Примеры разных конструкций

7. Пример встраивания html-кода из инструкции к плагину

8. Перелинковка характеристик товаров и страниц «SEO-фильтра»

9. Настройка CRON


1. Общие настройки плагина

Настройки плагина расположены в 2-х местах:

  • Магазин / Плагины / SEO-фильтр (здесь расположены общие настройки и шаблоны)
  • Магазин / вкладка «SEO-фильтр» (настройки конкретных характеристик)

Общие настройки плагина

Статус – включен плагин или выключен. Чтобы включить, выберите соответствующий статус и сохраните изменения.

Передавать URL в Яндекс.Метрику – плагин позволяет Яндекс.Метрике учитывать страницы, созданные SEO-фильтром. Если нужно передавать данные о страницах фильтра, нужно выбрать значение из списка «да». Появится поле «Номер счётчика Яндекс.Метрики». Здесь нужно указать номер счетчика Метрики, иначе данные передаваться не будут. Можно добавить номер счетчика для всех витрин или же для каждой витрины (если для разных витрин установлены разные счетчики).

Пример номера счетчика Метрики: 00001111 (8 цифр).

Sitemap – вариант добавления ссылок в карту сайта для роботов.

2 варианта:

  • Стандартный (ссылки на страницу фильтра добавляются в стандартный sitemap.xml, который генерируется движком);
  • Отдельный (ссылки на страницы фильтра добавляются в отдельный sitemap, который находится по адресу /filter-sitemap.xml).

Тип формирования URL – выбор вида ссылки для страниц фильтра. Возможно 2 значения: короткий и простой. Короткий – URL-адрес формируется по названию характеристик, ничего лишнего не добавляется. Простой – URL-адрес формируется по названию характеристики, перед названием характеристики добавляется приставка filter.

Примеры:

  • Короткий URL http://site.ru/category/shiny/simmetrichnyy/
  • Простой URL http://site.ru/category/shiny/filter/simmetrichnyy/

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

Обновление sitemap – вариант добавления ссылок на страницы, созданные плагином «SEO-фильтр», в sitemap.xml.

Есть 2 варианта настроек:

  • Автоматически (увеличивает время ответа сайта);
  • По расписанию (cron) – собирает файл sitemap по раписанию.

Общий шаблон формирования мета-тегов и описаний

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

Title – поле для формирования шаблона тега <title>.

META Description – поле для формирования шаблона мета-тега description .

META Keywords – поле для формирования шаблона мета-тега keywords.

H1 заголовок – поле для формирования шаблона заголовка <h1>.

Описание – поле для формирования шаблона описания.

Дополнительные поля для витрин

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

Дополнительные поля для фильтров

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

Опции плагина

Поля дополнительного описания категорий – опция включает поле дополнительного описания категории (добавить само поле нужно в шаблоне сайта, для вывода вставьте код {$category.additional_description|default:''} в category.html )

Номер страницы – опция проставляет номер страницы в мета-тегах начиная со второй страницы (для категорий).

2. Создание общего шаблона. Использование переменных

Переменные отображаются в блоке на сером фоне справа. Пример использования переменных в поле title:

{$category.seo_name} {$seo_name} купить в Москве в интернет-магазине {$store_info.name}

Примеры переменных

{$seo_name} – seo название значения характеристики

SEO-название прописывается для каждой характеристики в настройках плагина «SEO-фильтр».

{$value_name} – название значения характеристики

{$value_names[n]} – название n-ой характеристики

Вместо n прописывается id. Пример использования в шаблоне: {$value_names[1]}

{$feature_name} – название характеристики

{$category.name} – название категории

{$category.seo_name} – seo название категории

Выводит «SEO-название» категории, которое формируется плагином «SEO-оптимизация».

{$root_category.name} – название корневой категории

Выводит название характеристики в том виде, в котором оно записано в админке сайта.

{$parent_category.name} – название родительской категории


{$parent_categories_names|sep:' '} – путь к странице через пробел

{$filter.products_count} – количество товаров

{$store_info.name} – название магазина

{$store_info.phone} – телефон магазина

Создание дополнительных полей для витрин

Кликните по кнопке «Добавить поле»

Введите название поля

Сохраните изменения. Переменная появилась в списке переменных.

Теперь ее можно использовать в общем шаблоне.

Значение переменной необходимо задать в настройках витрины.

3. Использование модификаторов

Плагин поддерживает использование 3-х модификаторов:

  • |lower - преобразует в нижний регистр
  • |ucfirst - преобразует первый символ в верхний регистр
  • |lcfirst - преобразует первый символ в нижний регистр

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

Пример: {$category.seo_name|lower}

Примеры использования модификаторов:

  • |lower – преобразует слово «ADIDAS» в «adidas»
  • |ucfirst – преобразует слово «adidas» в «Adidas»
  • |lcfirst – преобразует слово «Adidas» в «adidas»

Написание шаблонов с использованием модификаторов

Пример написания SEO-названия для характеристики:

Пример использования модификатора в шаблоне:


Вывод на сайте:


4. Добавление фильтров

Список всех фильтров расположен по адресу: http://site.ru/webasyst/shop/?plugin=seofilter

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

4.1. Добавление нового фильтра

Перейдите во вкладку «SEO-фильтр». Кликните по кнопке «Добавить фильтр».

Отметьте «Включен», если пункт не отмечен.


Выберите витрину. Если используете одну витрину или нужна настройка характеристик для всех витрин, оставьте значение пункта «Все».

Если нужно выборочно указать витрины, для которых будут применяться правила, то можно выбрать эти витрины, отметив пункт «Только для», или отсеять витрины, для которых не должны применяться правила, выбрав пункт «Для всех кроме».

Укажите категории, для которых нужно добавить фильтры. Как и в случае с витринами есть два варианта:

  • Только для;
  • Для всех кроме.

Добавьте значения характеристик.

Можно добавить несколько значений.


Отредактируйте значение поля «SEO-наименование». По умолчанию в него вписываются значения характеристик.

Отредактируйте URL-адрес при необходимости.

Если нужно, добавьте персональные правила фильтрации.

4.2. Добавление персональных правил для фильтра

Плагин «SEO-фильтр» позволяет гибко настроить оптимизацию результатов работы фильтра.

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

В настройках плагина сформируйте шаблоны:

Пример 1. Нужно создать 1 характеристику для бренда Apple, чтобы в каждой категории при выборе бренда Apple в title, description, <h1> и описании проставлялся бренд, а параметры в ссылке менялись на ЧПУ.

Пропишите шаблоны для характеристики:

Перейдите на страницу категории (сейчас там такие настройки):

В фильтре на значение «Apple» появилась ссылка (о том, как проставлять ссылки указано в п. 7.):


Если выбрать пункт «Apple» ссылка пропадает и title и <h1> формируются по шаблону.

Description тоже поменялся:

Описание поменялось:

Пример 2. Нужно добавить фильтр для двух значений – Apple и HP.

Пропишите шаблоны характеристик и сохраните результат. На витрине отображается:


Пример 3. Для характеристики Apple нужно прописать другой title, который бы начинался со слова «Купить».

Отредактируйте шаблон для характеристики Apple. Откройте форму для персональных правил и заполните поле «META Title» (т.к. персональное правило нужно только для title):

Сохраните персональное правило и параметры фильтра.

На сайте получится:

Но если выбрать другие добавленные фильтры, то будут применяться общие шаблоны:

Пример 4. Во всех категориях при выборе характеристики Apple должен быть показан title как в примере №3. Но для категории «Ноутбуки» бы выводился title и <h1> с указанием названия бренда на русском языке.

Перейдите во вкладку «SEO-фильтр».

Откройте настройки фильтра для редактирования. Уже задано персональное правило, которое работает для всех категории. Нужно добавить еще одно для категории «Ноутбуки»:

В категории «Ноутбуки» title и <h1> будут формироваться по индивидуальному шаблону:

В других категориях все останется по-прежнему:

4.3. Массовое создание фильтров

Кликните по кнопке «Массовое создание фильтров». Откроется окно для генерации фильтров.

Доступные опции:

  • Выбор категории, для которых нужно или не нужно генерировать фильтры;
  • Выбор характеристик, для которых нужно сгенерировать фильтры (в том числе и любые их комбинации);
  • Можно задать персональные теги (title, description, keywords), заголовок H1 и описание;
  • Просмотр истории запросов;
  • Возможность удаления сгенерированных фильтров.

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

Откройте окно «Массовое создание фильтров».

Выберите характеристику.

Кликните по кнопке «Создать».

Результат:

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

Выберите две характеристики.

Кликните по кнопке «Создать».

Результат:

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

Укажите категории, для которых нужно сгенерировать фильтры.

Выберите две характеристики. Кликните по кнопке «Создать».

Результат:

Пример генерации фильтров по одной характеристике с указанием персональных тегов

Выберите характеристику.

Пропишите персональные шаблоны.

Кликните по кнопке «Создать».

Результат в админке:

Результат на сайте до выбора характеристики:

Результат на сайте после выбора характеристики

В исходном коде:

Описание на сайте:

4.4. Работа со списком фильтров

Поиск по названию / Поиск по url

Введите фразу для поиска.

Плагин отфильтрует результаты.

Фильтрация по характеристике

Выберите характеристику для фильтрации.

Плагин отфильтрует результаты.

Фильтрация по количеству характеристик

Выберите количество значений характеристик, которое добавлено в фильтры. Например, вы хотите отфильтровать только те характеристики, в которые добавлено 1 значение. Плагин отфильтрует результаты.


Включить / Выключить / Удалить фильтры

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

Включите, выключите или удалите выбранные фильтры.

Результат:


5. Настройка плагина «SEO-фильтр» на примере

Пример 1.

В интернет-магазине аксессуаров для автомобилей создана категория, в которой продаются б/у автоковрики для автомобилей Audi A1. Все товары заведены в конечной категории «б/у», в остальных категориях проставлена настройка «Включить товары из подкатегорий» и разрешена фильтрация товаров.

Выведены фильтры:

  • Модель авто (тип характеристики «Выбор нескольких возможных вариантов (checkbox)»);
  • Цвет (тип характеристики «Выбор значения из списка (select)»);
  • Наличие (тип характеристики «Выбор значения из списка (select)»);
  • Самовывоз (тип характеристики «Да/нет переключатель (boolean)»)

Категория товаров до оптимизации вы выборе значения любой характеристики выглядит так:

URL при выборе характеристики:


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

Подзадачи:

  • Сформировать корректные шаблоны для title, description, keywords;
  • Прописать url для характеристик;
  • Убрать тег <link rel="canonical"> с оптимизируемых страниц;
  • Проставить ссылки со страниц категории на страницы фильтра см. п.7);
  • Сформировать шаблон описания;
  • Добавить ссылки на новые url в карту сайта.

Решение задачи

1. Установите и включите плагин. Нужно сформировать правила для общего шаблона, который расположен в настройках плагина.

Например, так:

Переменная {$parent_categories_names|sep:' '} будет показывать путь до текущей категории.

2. Вторым шагом нужно добавить переменные. Быстрее всего это сделать при помощи функции генерации. Сгенерируйте все одиночные характеристики для всех категорий и витрин без указания персональных данных.

Должно получиться что-то подобное:

Если перейти в категорию «б/у» и отфильтровать товары по любому цвету, получится:

В исходном коде тоже всё поставилось:

Тег <link rel="canonical"> на оптимизированной странице отсутствует.

URL страницы фильтра выглядит следующим образом:


Страницы фильтра появились в файле sitemap.xml.

Однако названия характеристик добавились в том виде, в котором они заведены, и противоречат правилам русского языка. Их нужно отредактировать вручную. При необходимости можно скорректировать и url.

Например, так:

На сайте результат будет таким:

В категориях выше по каталогу:

Выбор других вариантов фильтрации:

При выборе параметра «Audi» появляется следующая картина:

Везде дважды повторяется слово «Audi». Поскольку есть аналогичная категория, смысла в отдельной странице, созданной фильтром, нет. Категории с моделями Audi можно поставить в исключение в настройках характеристики.

SEO-фильтр перестал работать при выборе характеристики Audi.

При прямом переходе по ссылке характеристики выводится страница 404-ошибки.

Двойные характеристики сгенерируйте аналогично:

Отредактируйте каждую, которая создалась не так, как нужно.

Пример 2.

Для каталога, который указан в примере 1, сформировать title вида «Купить белые автоковрики для Audi A1 б/у по цене от ХХХ руб. | MegaShop». Такой title показывать только при выборе цвета (1 характеристика) в категории «Автоковрики» и всех подкатегориях. Пропускать отсутствующие атрибуты, например, «б/у» показывать только в категории «б/у».

В поле title каждой характеристики нужно добавить конструкцию:

Купить {$seo_name} {$parent_categories_names[0]|lcfirst} для {$parent_categories_names[1]} {$parent_categories_names[2]} {$parent_categories_names[3]} {$category.seo_name} по цене от {$filter.min_price} | {$store_info.name}

Для категории со вложенностью «Автоковрики → Audi → A1 → б/у» каждая переменная соответствует:

  • {$seo_name} – «SEO-наименование» характеристики фильтра;
  • {$parent_categories_names[0]|lcfirst} – название корневой категории (поскольку оно с заглавной, то нужен модификатор, делающий первую букву строчной);
  • {$parent_categories_names[1]} – название категории первого уровня;
  • {$parent_categories_names[2]} – название категории второго уровня;
  • {$parent_categories_names[3]} – название категории третьего уровня;
  • {$category.seo_name} – «SEO-наименование» категории (если не используется плагин «SEO-оптимизация» или поле не заполнено, выводится название категории, в которой расположен фильтр);
  • {$filter.min_price} – минимальная цена товара в результатах фильтра;
  • {$store_info.name} – название магазина.

Title выводится из персональных шаблонов.

<h1>, описания и т.д. формируются по общим правилам.

Title в других категориях:


Однако в коневой категории всё выводится некорректно.

Для корневой категории нужно сформировать свои персональные данные.

Нужно перейти в настройки фильтра и добавить еще одно правило для персональных шаблонов.

Выберите категорию «Автоковрики» и добавьте в title строку

Купить {$seo_name} {$category.seo_name|lcfirst} по цене от {$filter.min_price} | {$store_info.name}


6. Примеры разных конструкций

1. Добавление номера страницы, если страница с результатами фильтра не первая (необходимо для уникализации мета-тегов)

{if $page_number != 1} - страница {$page_number}{/if}

Пример использования:

На второй странице выводится:

Title первой страницы остается без изменений:

2. Вывод дампа переменной

{$filter.features|wa_dumpc}

Вставка кода в шаблон:

На странице фильтра выводится вместо описания массив данных (пример при выбранной характеристике «Цвет»).

Можно посмотреть всю информацию по характеристике и использовать ее для составления условий.

3. Если нужно вывести характеристику определенного порядкового номера, необходимо использовать переменную {$value_names[n]}.

Например, заведена такая характеристика: «белого, черного или серебряного цвета»

То такая конструкция в шаблоне

Выведет названия характеристик соответственно (в том порядке, в котором они заведены в настройках фильтра).


Переменную можно использовать в написании условий.

Например, нужно написать условие, что если первой характеристикой выбран белый цвет, то срабатывает один шаблон, в остальных случаях – другой.

При выборе фильтра «белый», «черный», «серебро» срабатывает первый шаблон, т.к. первая характеристика «белый».

При выборе другого фильтра будет срабатывать второй шаблон (т.к. первая характеристика – «черный»).

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


7. Пример встраивания html-кода из инструкции к плагину

Инструкция по внедрению плагина «SEO-фильтр» на сайт описана в инструкции по установке.


7.1. Подстановка необходимых для работы фильтра классов

Убедитесь, что название категории расположено в блоке с классом 'category-name', а описание - в блоке с классом 'category-desc'! Если этих классов нет - обязательно добавьте их, иначе заголовок и описание не будут меняться динамически.

Проверка для заголовка

Перейдите в любую категорию. Наведите мышь на заголовок. Щелкните правой кнопкой и в выпадающем меню нажмите «Исследовать элемент» или нажмите Ctrl+Shift+I.

У заголовка должен быть указан класс 'category-name'. В теме Megashop он есть:


Если его нет, то нужно добавить.

Перейдите в шаблон категорий category.html

При помощи Ctrl + F или вручную найдите код, который отвечает за вывод заголовка. К классу, который указан для тега <h1> допишите через пробел «category-name». Если у тега нет ни одного класса, нужно добавить строку class=" category-name".

Проверка для описания для темы Megashop

У описания должен быть класс 'category-desc'. В примере его нет:

Следовательно, нужно добавить.

Перейдите в шаблон category.html, найдите участок кода, который отвечает за вывод описания.

В данном случае нужно добавить тег <div> с классом 'category-desc'.

Сохраните изменения. Теперь описания будут меняться без перезагрузки страницы.

7.2. Подстановка ссылок в пагинацию

Чтобы ссылки пагинации проставлялись корректно, например, как тут: http://site.ru/category/avtokovriki/belye/?page=2, нужно добавить этот код.

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

Откройте файл list-thumbs.html найдите и замените код:

{wa_pagination total=$pages_count attrs=['class' => "menu-h"]}

на

{capture assign=pagination}

{wa_pagination total=$pages_count attrs=['class' => "menu-h"]}

{/capture}

{shopSeofilterViewHelper::paginationDecorate($pagination)}


Пример для темы Megashop

Найдите строку

{wa_pagination total=$pages_count prev="« [`Prev`]" next="[`Next`] »"}

И замените ее на

{capture assign=pagination}

{wa_pagination total=$pages_count attrs=['class' => "menu-h"]}

{/capture}

{shopSeofilterViewHelper::paginationDecorate($pagination)}

Сохраните полученные изменения.

7.3. Подстановка ссылок в сортировку

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

Откройте файл list-thumbs.html найдите и замените код:

{$wa->shop->sortUrl($sort, $name, $active_sort)}

на

{shopSeofilterViewHelper::sortUrl($sort, $name, $active_sort)}

Пример вывода ссылки без кода:

Добавляется лишний атрибут «color%5B0%5D=», который тут не нужен. Внедрение кода поможет решить эту проблему.

Пример для темы Megashop

Откройте файл list-thumbs.html. Найдите код {$wa->shop->sortUrl($sort, $name, $active_sort)}.

Ссылки стали вида:




7.4. Подстановка ссылок в фильтры

Внесите корректировки в код согласно инструкции. Правки вносятся в шаблон category.html.

Пример настройки для темы дизайна Megashop

Для фильтров с типом «Выбор нескольких возможных вариантов (checkbox)»

Найдите код {foreach $filter.values as $v_id => $v}


и чуть ниже замените код {$v}

На

{$filter_url = shopSeofilterViewHelper::getFilterUrl($filter.id, $v_id, $filter.code)}

{if $filter_url}

<a class="filter-link" href="{$filter_url}">{$v}</a>

{else}

{$v}

{/if}

После изменений код отображается корректно.



Для фильтров с типом «Да/нет-переключатель (boolean)»

Для фильтра «Да» найдите участок кода

<label><input type="radio" name="{$filter.code}"{if $wa->get($filter.code)} checked{/if} value="1"> [`Yes`]</label>

Замените на:

<label>

<input type="radio" name="{$filter.code}"{if $wa->get($filter.code)} checked{/if} value="1">

{$radio_filter_url = shopSeofilterViewHelper::getFilterUrl($filter.id, "1", $filter.code)}

{if $radio_filter_url}

<a class="filter-link" href="{$radio_filter_url}">[`Yes`]</a>

{else}

[`Yes`]

{/if}

</label>



Для фильтра «Нет» найдите отрезок кода:

<label><input type="radio" name="{$filter.code}"{if $wa->get($filter.code) === '0'} checked{/if} value="0"> [`No`]</label>

Замените на:

<label>

<input type="radio" name="{$filter.code}"{if $wa->get($filter.code) === '0'} checked{/if} value="0">

{$radio_filter_url = shopSeofilterViewHelper::getFilterUrl($filter.id, "0", $filter.code)}

{if $radio_filter_url}

<a class="filter-link" href="{$radio_filter_url}">[`No`]</a>

{else}

[`No`]

{/if}

</label>

После внесения изменений на сайте появились ссылки:



7.5. Отображение ссылок фильтра на странице бренда

Вставьте код {shop_seofilter_productbrands_hook} в самое начало Шаблон вывода на витрине страницы бренда: результаты поиска в настройках плагина «Бренды»:


7.6. Перелинковка характеристик

Для работы функционала необходимо произвести изменения в теме дизайна. Перейдите в шаблон product.html (Магазин / Дизайн / Шаблоны / product.html).


Нужно найти код вывода характеристик, он может выглядеть так:

Замените $product.features на shopSeofilterViewHelper::wrapFeatureValues($product.features).


8. Перелинковка характеристик товаров и страниц «SEO-фильтра»

Для работы функционала необходимо произвести изменения в теме дизайна (см. п. 7.6.).

Перейдите в настройки плагина на вкладку «Перелинковка характеристик».

Включите функционал. При необходимости выберите витрину.

Выберите вид ссылок. Их 2:

  • Ссылка-характеристика (в качестве анкора будет использоваться название характеристики);
  • Другие товары (справа от характеристики в скобках будет поставлена ссылка с анкором «другие товары»).

По умолчанию все ссылки во всех товарах будут проставлены на категорию товара. Но если нужно какие-то ссылки убрать или поменять категорию, тогда делайте так. Выберите категории, где в товарах нужны ссылки на страницы «SEO-фильтра», например, «Ноутбуки».

Выберите характеристики, которые необходимо перелинковать. Укажите категории, в которые будут вести ссылки. По умолчанию проставляется текущая категория.

Вы можете массово присвоить категорию.

Или применить правила для подкатегорий.

Сохраните изменения.

Проверьте проставленные ссылки в карточках товаров.


9. Настройка CRON

CRON используется для ускорения добавления ссылок на страницы «SEO-фильтра» в sitemap и для уменьшения времени ответа сервера. Он по расписанию начинает собирать в кеш ссылки и как только все изменения будут добавлены (новые, измененные и удаленные ссылки), sitemap обновится. Этот процесс требует времени, может занимать до нескольких дней (смотря сколько было изменений и сколько используется динамических категорий).

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

* * * * * php /home/web/site.ru/www/cli.php shop seofilterGenerateSitemap

Точное написание команды можно взять в настройках плагина под ссылкой «Инструкция по установке»:

Пример настройки команды CRON на хостинге Netangels.ru (облачный VDS).

Команда будет срабатывать каждый день в 12:00 и 00:00.

Инструкции по настройке CRON на разных хостингах:

Если CRON хоть раз запустился, в настройках плагина появится надпись «cron настроен и работает».

Наверх ↑