Убираем дубли детальных страниц товаров
Приветствую, Друзья!
В этом видеоуроке вы узнаете о том, как настроить ЧПУ интернет-магазина на 1С-Битрикс таким образом, чтобы не было дублей детальных страниц товаров.
После летнего перерыва мы продолжаем разбираться в тонкостях создания интернет-магазинов на Битриксе. И за время перерыва мне пришло несколько одинаковых вопросов – некоторые мои подписчики привлекали сторонних специалистов для продвижения своего магазина на Битриксе, некоторые сами делали магазины «под заказ», и наткнулись на проблему дублей детальных страниц. И вопрос один – как избавиться от этих дублей.
Дело в том, что дубли могут появиться из-за особенностей обработки ЧПУ Битрикса. Движок позволяет нам положить один и тот же товар в разные категории. Например, зарядка для телефона бренда Sony может лежать в категории Sony и в категории Аксессуары одновременно. И в адресной строке мы в итоге получим два разных адреса для отображения одной и той же страницы товара.
Но эту проблему можно решить штатными методами, просто немного подкорректировав шаблоны создания ссылок на детальную страницу в 2-х местах. Проблема решается за 2 минуты, все подробности в видео чуть ниже.
Итак, всем, кто живо интересуется SEO оптимизацией своего интернет-магазина на Битриксе, рекомендую посмотреть новое видео:
На этом сегодня все! Не забываем жать на социальные кнопки слева и задавать свои вопросы чуть ниже в комментариях!
Если вам понравилась статья, то нажмите на одну из кнопок социальных сетей для размещения ссылки на страницу в своей ленте в этой соцсети.
Метки:SEO, Битрикс, видеоуроки, Доп для курса, ЧПУ
Комментарии (26):
Антон
| #
А видео то пропало
Ответить
Дмитрий Акифьев
| #
Все на месте. Вот когда дойдут руки все снести, вместе с сайтом, тогда и пропадет. А пока работает этот сайт все видео будут доступны как тут, так и в открытом доступе на моем канале на Youtube
Ответить
Сергей
| #
Удачно я к Вам попал!
Начал наполнять магазин товаром и сразу обратил внимание на эти возможные дубли.
Сам с Битриксом после Вопресса еще не очень освоился — написал в поддержку, обещали помочь. Но с Вашей помощью я их опередил — все сработало, косяков вроде-бы не видно.
Спасибо!
Ответить
Александр
| #
Дмитрий, добрый день!
Сделал все как у вас в видео, все отлично получилось.
Вот только древообразное меню перестало быть открытым на разделе товара, так как этот товар вроде как уже не принадлежит этому разделу.
Это можно как то исправить?
Ответить
Дмитрий Акифьев
| #
Исправить можно только доработкой компонента меню через внедрение каких-то меток принадлежности к категории. Типовыми способами (стандартными) этот вопрос не решить. Всегда есть выбор — или SEO, или юзабилити. Если надо и то и другое, то чаще всего это доработка кода под конкретный проект.
Ответить
Бобков Сергей Аркадьевич
| #
Дмитрий, добрый день! Вы не подскажите как убрать дубли в sitemap.xml?
На сайте 1 товар привязан к нескольким категориям соответсвенно в sitemap находится столько же url сколько и привязок
Ответить
Дмитрий Акифьев
| #
Типовыми средствами такую проблему не решить. Я могу посоветовать 2 варианта, сложный и простой.
Сложный — привести в порядок архитектуру каталогов. Сделать альтернативные рубрикаторы на основе отдельных инфоблоков со своей структурой разделов и выключить их индексацию. Если архитектура получится сложная, то может понадобится доработка компонентов для вывода альтернативных рубрикаторов с привязкой к какому-то свойству товара.
Простой — найти в Маркетплейсе Битрикса платное решение, которое устранит проблему. Такие там есть.
Ответить
Денис
| #
Подскажите, а возможно ли сохранить как то директорию из которой пришел пользователь при таком изменении? чтобы и хлебные крошки были разные на детальных страницах и пункт меню выделялся нужный в зависимости от директории, из которой пользователь пришел на детальную страницу.
Ответить
Дмитрий Акифьев
| #
Можно, но для этого надо дорабатывать компонент хлебных крошек под логику Вашего проекта. С какой страницы перешел покупатель есть информация в $_SERVER['HTTP_REFERER']. Хотя информация там есть не всегда и зависит от настроек браузера посетителя. Поэтому нужна четкая логика что показывать, когда неизвестно откуда пришел покупатель, или пришел с главной или вообще по ссылке с другого сайта, а также уметь разбирать адресную строку в соответствии с настроенным в проекте ЧПУ и вынимать данные о том из какого именно пришел раздела покупатель. Потом зная раздел и товар вынуть из БД всю цепочку навигации и подменить ею текущую.
Работа в принципе не сложная, но сильно зависит от настроек конкретного проекта, поэтому я записывать урок на эту тему не буду, народ только запутается. Закажите доработку на фриланс, обойдется дешево и не долго.
Ответить
Станислав
| #
Дмитрий, спасибо за ценный материал.
Подскажите, а как удалось оставить цепочку breadcrumbs?
Меняю настройки генерации ЧПУ в комплексном каталоге, в инфоблоке. Всё по ссылкам работает, УРЛы вида catalog/elements/element_id прописываются.
Но: теряется вся цепочка крошек: любой товар любой секции в крошках виден как: Главная→Каталог→.
Не подскажите, в какую сторону смотреть?
Ответить
Станислав
| #
Да, забыл добавить: в категориях с крошками все ОК, они пропадают только на самих карточках товара (catalog.element)
Ответить
Дмитрий Акифьев
| #
Я цепочку даже не трогал, у нее типовая настройка. Проверяйте все настройки путей, которые показаны в уроке, а главное — смотрите настройки путей в самом инфоблоке, где хранятся товары. Дело в том, что хлебные крошки запрашивают путь до товара из БД, и Ваша ситуация может быть, если товары лежат в нескольких категориях, причем первой категорией выдается вариант без привязки к категории. То есть, проверьте еще и привязку товаров к разделам, там не должно быть выделен наряду с реальным разделом еще и корневой раздел каталога.
Ответить
Станислав
| #
Благодарю за ответ! Дело было в кастомных крошках (достались от прошлых разработчиков), которые в результате пытались обратиться к пустым переменным. Небольшие правки в шаблон исправили ситуацию. Еще раз спасибо за представленный метод!
Ответить
Сергей
| #
Дмитрий, спасибо за видео. Подскажите мне можно ли сделать вместо element, выводился бы основной пункт меню в вашем случае это было бы так, если товар лежит в разделе смартфоны то вместо element выводилось бы smartphone/ , если товар лежит в аксессуарах то выводилось бы accessories/ для ЧПУ так на много было бы логичнее и не было бы дублей
Ответить
Дмитрий Акифьев
| #
Все можно сделать, Битрикс — это гибкий фреймворк.
Но, для решения Вашей задачи придется писать свой механизм ЧПУ в комплексном компоненте, чтобы учитывались не все категории, а только первая из них. Либо разносить разные категории по разным инфоблокам и делать вручную разные страницы для отображения этих инфоблоков. Можно еще накидать вариантов, но оставлю это упражнение для Вас :)
Ответить
Сергей
| #
Дмитрий благодарю за очередной lesson. Возник вопрос, а как можно сделать похожее ЧПУ но только с полными путями до товара.
К примеру если поставить в раздел — #SECTION_CODE_PATH#/ а в Детальная страница #SECTION_CODE_PATH#/#ELEMENT_CODE#/
то путь, и ссылка детальной будет строится исходя из раздела откуда мы на неё заходим, что делает дубли. Есть ли какая нибудь возможность сделать полный путь до товара в независимости откуда ты на него заходишь? Есть пример сайта [censored]. Возможно это можно сделать через обработчик или есть какая нибудь документация на сей счёт за любую помощь буду при много благодарен.
Ответить
Дмитрий Акифьев
| #
Вообще не понял вопрос. Что значит полный путь? Если с категориями, то именно от этого мы и избавлялись в уроке. Если надо оставить только одну категорию, базовую, то ищите расширения в Маркетплейс, их там несколько, которые дают такую возможность. Ну и 301 редирект Вам в помощь в связке с robots.txt, как и писалось чуть ниже.
Ответить
Сергей
| #
Полный путь — это от site dir до .php все разделы и подразделы. А разве мы избавлялись не от дублей? Пример приведу чтобы было понятнее. Есть каталог -> раздел 1 -> подраздел -> подподраздел -> товар
Если я зайду в товар с подраздела то ссылка будет выглядеть так каталог -> раздел 1 -> подраздел -> товар,
а хотелось бы —
каталог -> раздел 1 -> подраздел -> подподраздел -> товар
с любого места ссылка имела бы такую структуру.
Благодарю за ответ!
Ответить
Дмитрий Акифьев
| #
Такое поведение можно сделать либо сторонними приложениями для SEO, либо настроить вручную редиректы в .htaccess. Штатными способами такое поведение не настроить из-за логики работы ЧПУ.
Ответить
Сергей
| #
Благодарю!
Ответить
КОнстантин
| #
Добрый день Дмитрий ! у меня один вопрос с конкретным примером.
Товар так же как у вас в примере доступен по 2 ссылкам
kroy-master.ru/katalog/vykroyki-spetsodezhdy/kostyum-povara-muzh/
kroy-master.ru/katalog/vykroyki-muzhskikh-kostyumov/
от дублей спасаюсь закрывая 1 из разделов: robots.txt Disallow: /katalog/vykroyki-spetsodezhdy/*
По вашему примеру хочу сделать вот такой урл для всех товаров
вместо element — gotovye-vykrojka-lekala
kroy-master.ru/katalog/gotovye-vykrojka-lekala/vykroyki-muzhskikh-kostyumov/
Стоит ли применять то что вы описали в данной статье с точки зрения Seo? Если учесть что редирект сделать не проблема.
Ответить
Дмитрий Акифьев
| #
Если редирект 301 не проблема, то делайте его, чтобы не менять всю ссылочную базу сайта. Я показал вариант, который больше подходит для новых магазинов. А редиректы в связке с robots.txt всегда решают любые проблемы SEO без изменений логики сайта, что наиболее предпочтительно.
Ответить
Андрей
| #
Могу прокомментировать с позиции владельца сайта, пережившего смену адресов. Применять 301 редирект НУЖНО ОБЯЗАТЕЛЬНО, иначе — страницы потеряют имеющиеся позиции. Фактически страницы набирают вес с нуля.
А robots.txt поисковики довольно часто игнорируют, чего, собственно и не скрывают сами. Особенно если находят ссылки на запрещенные страницы.
Ответить
Антон
| #
Дмитрий, вы молодец!!!
Отличная идея избавиться от дублей, я чет даже не задумывался об этом, спасибо большое, буду знать!!)
Дмитрий, скажите пожалуйста, сайт на вашем видео — это какой-то локальный сервер или web-сервер?
Очень шустро работает у Вас сайт, у меня локальный сервер Open-Server, но на нем у меня все так тормозит, никакие их патчи не помогают...
Ответить
Дмитрий Акифьев
| #
Все видео я делаю на реальном VPS. Работать с Битриксом локально сложно, так как очень много файлов и дисковая подсистема вешается. Если мне надо разрабатывать сайт локально, то я всегда использую виртуальную машину Битрикса (на блоге есть подробный урок как запустить). В крайнем случае пользуюсь OpenServer, но он у меня работает на разделе, который полностью вынесен в оперативную память, поэтому работает шустро.
Ответить
Антон
| #
Все понял, благодарю Дмитрий!
Ответить