Как сделать сайтмап в битриксе

Обновлено: 07.07.2024

В данном уроке мы изменим стандартный модуль cms 1c-битрикс, то есть вмешаемся в ядро, чего КАТЕГОРИЧЕСКИ не рекомендуется делать в обычных условиях.

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

Итак, в чем же проблема стандартного модуля генерации Sitemap ?

Все дело в том, что генерирует он карту сайта следующим образом:

А для лучших seo-показателей сайта нам нужно вот так:

Приступаем к реализации

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

Переходим в папку /bitrix/modules/seo/lib/ .

Работать нужно со следующими файлами:

Для начала изменим файл sitemapfile.php . Примерно на 28 строчке данного файла заменяем:

Находим метод addEntry и примерно в 152 строчке, после строчки Converter::getXmlConverter()->encode($entry['XML_LASTMOD']) добавим следующее:

В массив добавим свойство priority с ключем XML_PRIORITY .

Далее в методе appendEntry находим Converter::getXmlConverter()->encode($entry['XML_LASTMOD']), примерно 271 строчка и добавляем после нее аналогично вышеописанному

После этого изменяем метод removeEntry путем добавления после Converter::getXmlConverter()->encode(date('c')), примерно 311 строка добавим Converter::getXmlConverter()->encode('0')

Дальше необходимо выполнить аналогичные действия в трех методах addFileEntry и в двух addIBlockEntry .

После 'XML_LASTMOD' => date('c', $f->getModificationTime()), Добавим элмент массива

$priority надо добавить в аргументы метода, кроме addFileEntry . И на всякий случай сделать условие

В addFileEntry проверим, если главная страница, то priority 1, а если нет, то 0.7 (Это на самом деле опционально, можете задать свои значения)

А в addIBlockEntry добавим следующее условие

Либо можно третьим параметром в метод addBlockEntry добавить $priority c дефолтным значением:

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

В папке /bitrix/modules/seo/admin находим файл seo_sitemap_run.php

Ищем 516 строку и добавляем первое условие(тут тоже все опционально, в зависимости какой у вас id каталога например, тот и указываете, вообщем формируете как вам надо):

Условие означает, что если ID Инфоблока 3 (у нас это каталог) то priority будет 0.9 , а если нет то 0.7

Уже не помню в какой версии, но в БУС появилась замечательная штука — автогенерация карты сайта из секций и элементов инфоблоков (screenshot 1). Эту функцию давно ждали все, кто хотел держать карту сайта в актуальном состоянии.
Автогенератор действительно работает и до последнего времени он не вызывал каких-то вопросов.

Вопросов бы и не возникло, но у нас появился проект на котором постоянно активируются и деактивируются элементы инфоблоков.

Кейс: медленно работает обмен с 1с, настолько медленно что падает по таймауту в полчаса.

Казалось бы, причем тут sitemap.xml и SEO модуль?
Пришлось разбираться, обмен стал тупить как нештатный, так и родной, изменений в нештатном обмене за последние 2 месяца не производилось, система не обновлялась — из этого можно сделать вывод что косяк находятся за пределами непосредственно обмена.

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

Но как это обычно и бывает, за разгадками мы лезем сразу в глубь, не замечая при этом того что творится под носом!
В один прекрасный момент кто-то обратил внимание на sitemap.xml, точнее на их количество и суммарный вес.

Количество файлов не вспомню, но их было много (screenshot 2), а суммарный вес превышал 500 мегабайт!

Как так вышло? Oo

Все дело в SEO модуле и его классе генерации и апдейта карты сайта.
Каждый раз когда элемент инфоблока деактивируется или удаляется, в карте сайта строка с url этого элемента заменяется на пробелы! (screenshot 3)

И ладно бы они удалялись из этих карт сайта, нет! Эти пробелы останутся в карте сайта до тех пор пока не будет запущена полная перегенерация всех карт сайта!

Неожиданно да? Автоматическая генерация карты сайта = автоматическое забивание места на хосте =)
Тут кстати и нарисовался ответ на вопрос относительно упавшей производительности обмена, пока SEO модуль прочесывал полгига xml файлов, проходила целая вечность.

Я подумал, что проблема может быть решена в более поздних версиях БУС, но в 16-й версии все ровно также!

Недолго думая я отключил автогенерацию карты сайта, сгенерил ее руками и пошел писать в саппорт. (screenshot 4)

Скриншот тикета в саппорт bitrix

Screenshot 4.

Если у вас часто деактивируются и удаляются элементы инфоблока то прямо сейчас отключайте автогенерацию карты сайта из инфоблоков!
Ну и ждем правок в SEO модуле, из моего тикета сделали заявку в отдел разработки, ждать правда наверняка придется долго.

Update от 22.10.2016

Скриншот закрытого тикета в саппорт bitrix

Screenshot 5.

Создание XML-карты сайта (sitemap.xml) — обязательный пункт в списке работ по внутренней оптимизации. Зачем нужен файл sitemap, где он находится и как его создать, разбираемся в статье.

На сайте должны присутствовать и HTML карта, и XML. Первая нужна для пользователей, вторая — для роботов. Далее будем говорить об XML-карте сайта.

XML-карту удобно использовать для парсинга данных с сайтов. Парсер мета-тегов и заголовков системы PromoPult: быстро, с любого сайта. Соберем мета-теги и заголовки H1 с любого сайта. Подгрузите список страниц или карту сайта.

Первой строкой в файле sitemap указывается ссылка на пространство имен языка XML (описание стандарта, на основе которого составлен файл). Строка стандартная и всегда выглядит вот так:

XML-карта сайта должна иметь кодировку UTF-8 и содержать следующие теги:

  • — открывающий/закрывающий тег, в него заключаются все ссылки файла sitemap.
  • — заключает в себе всю необходимую для робота информацию о каждой ссылке: URL, с какой периодичностью обновляется информация по этому адресу, дату последнего обновления и приоритет в индексировании.
  • — задает периодичность обновления информации на странице: always, hourly, daily, weekly, monthly, yearly, never (всегда, ежечасно, ежедневно, еженедельно, ежемесячно, ежегодно, никогда). Благодаря этому тегу робот может понять, насколько часто меняется содержание в документе и нужно ли его сканировать. Тег необязателен и сейчас используется крайне редко.
  • — указывает на дату последнего обновления страницы. Так робот понимает, изменилось ли что-нибудь с момента его предыдущего посещения.

— дает роботам рекомендацию о приоритете индексирования. Главная страница всегда имеет

Модуль SEO в системе Promopult: все инструменты для улучшения качества сайта и поискового продвижения. Полный комплекс работ — с нами вы не упустите ни одной мелочи. Чек-листы, подсказки, прозрачная отчетность и рекомендации профессионалов. Гарантии, оплата работ в рассрочку.

Важно понимать, что указания в файлах robots.txt и sitemap.xml — только рекомендации для роботов.

1. Указать ссылку на файл в директиве sitemap файла robots.txt:

Яндекс и Google не только просканируют добавленный файл, но и укажут на возможные ошибки.

  • Разместить файл sitemap.xml нужно в корень сайта.
  • Ссылки в sitemap не должны конфликтовать с правилами в файле robots.txt. Иначе говоря, страниц, закрытых от индексации в robots.txt, не должно быть в XML-карте сайта.
  • После автоматической генерации нужно проверить и скорректировать XML-карту на предмет попадания в нее ненужных для индексации URL.

Рассмотрим подробнее самые популярные способы создания XML-карты.

Если на сайте небольшое количество страниц, создайте sitemap при помощи онлайн-генераторов.

Большой недостаток онлайн-генераторов — они создают файл sitemap.xml раз и навсегда. Если на сайт постоянно добавляются новые страницы, такой способ не подходит.

Во всех популярных системах управления сайтом (CMS) есть возможность создать XML-карту. Файлы sitemap в этом случае обновляются автоматически, вам не придется генерировать карту сайта заново после каждой добавленной страницы.

Добавьте файл, назовите его и активируйте чекбокс о добавлении ссылки в robots.txt:

XML-карта сайта настраивается в двух популярных SEO-плагинах: All in One SEO Pack и Yoast SEO. Есть также отдельный плагин для создания XML-карты — Google XML Sitemaps.

Покажем настройку на примере первого.

В нем активируем модуль, который отвечает за XML-карту:

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

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

  • Joomla: используйте плагины OSMap (бесплатная версия Free и платная Pro), jSitemap (платное расширение, фактически целый набор SEO-инструментов).
  • Drupal: модуль XML Sitemap.
  • Magento: настройте Site Map Configuration.

Выбирайте подходящий способ создания XML-карты сайта и сообщайте поисковым роботам, какие страницы им стоит посетить — это даст вам уверенность в том, что поисковый робот проиндексирует все нужные страницы вовремя.

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

Старый генератор (Который не в "Маркетинге", а "Настройки" - "Поиск" - "Google Sitemap") адекватнее работает.

Для себя на битриксовских сайтах генерирую карту через Screaming Frog SEO Spider в ручном режиме. Им же генерится и отдельный sitemap для изображений, чего "из коробки" никак не сделать.

Федерация креативных индустрий была создана в феврале 2021 года. Чего удалось добиться за время существования организации, какое значение для отрасли имеет утвержденная правительством Концепция развития творческих индустрий, что мешает нашей стране выйти на первые места в области науки и технологий, IPQuorum обсудил с председателем правления…


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

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

Оптимизируем индекс

Инфоблоки

callback

Главный модуль и управление структурой

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

Настроить sitemap

Шаг 1. Переходим на страницу создания карты сайта (Рабочий стол -> Маркетинг -> Поисковая оптимизация -> Настройка sitemap.xml) и добавляем карту сайта.

2016-07-04_19-34-56.jpg

2016-07-04_21-10-56.jpg

Шаг 3. На вкладке "Файл" указываем директории и файлы, которые будут переданы в sitemap. Не указывайте здесь системные файлы и папки, такие как auth, personal, 404.php.

2016-07-04_21-12-26.jpg

Шаг 4. Выберите инфоблоки, их разделы и элементы для экспорта. Соответственно, в карту сайта попадут динамические страницы.

Как создать sitemap в битрикс

В первую очередь, коротко расскажем, зачем нужна карта сайта, то есть sitemap.xml. Его основная задача напрямую связана с внутренней оптимизацией. Именно в этот файл вносятся все страницы, с учетом указаний robots.txt. А именно, следующих важных параметров:

  • когда была создана страница;
  • URL ссылка на страницу;
  • уровень приоритета;
  • с какой частотой происходит обновление.

Заметим, что последний параметр не имеет настройки по умолчанию, в связи с чем, практически, не используется. Для остальных параметров найдется применение в следующих случаях:

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

Добавляем sitemap.xml в кабинет вебмастера

После генерации карты сайта ее необходимо внести в кабинет вебмастера. Естественно, предварительно добавив туда свой сайт. Приведем адреса для поисковых систем, где необходимо внести запись:

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

Создание sitemap.xml

Чтобы создать sitemap.xml, перейдите на вкладку “Администрирование” в панели управления сайтом, а затем откройте раздел “Настройки”/“Поиск”/Google Sitemap:


Далее вам предстоит заполнить несколько полей на странице “Параметры создания”. Обратите внимание на то, что в целом достаточно выбрать сайт, остальные параметры можно не менять:


авторизоваться на сайте сервиса;

подтвердите право собственности на сайт:


После того, как вы выполните действия, описанные выше, в папке сайта появятся три новых файла:

sitemap_index.xml (файлы, которые будут индексировать поисковые роботы);

sitemap_errors.xml (перечень ошибочных ссылок);

sitemap_000.xml (файл, в котором сохраняются ссылки):


Настройка sitemap.xml

Для настройки sitemap.xml нужно открыть старниц “Настройки”/“Настройка продукта”/“Настройка модулей”/“Поиск”/“Индексация”. Здесь доступны самые разнообразные настройки, в том числе и “Маска исключения” — поле, в котором прописываются страницы, не требующие индексации:



Сохраните изменения и нажмите на кнопку “Переиндексация сайта”, а затем кликните на “Переиндексировать” на открывшейся странице:


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

Нет, ну серьезно, Битрикс, что за дела? Я понимаю, что приоритетнее, конечно, именно xml карта сайта для роботов. Но оптимизаторы почему-то не перестали просить устанавливать карты сайта и для людей. Вы считаете, что по меню можно действительно построить достойную карту сайта? Путаница же будет дикая.

Есть онлайн-сервисы по генерации таких карт сайта, вот только генерируют они их в основном по тайтлам. Да и ограничение у них стоит на 500 ссылок. Так что для серьезных проектов подобные инструменты не подходят.

Описание компонента

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

В шаблоне по-умолчанию сначала идет главная страница, затем все статичные разделы, и в конце уже содержимое инфоблоков: разделы и элементы.


В компоненте изначально установлен минимальный список из папок, которые не будут обрабатываться картой сайта: bitrix, upload, search, cgi-bin, images. Вы можете дополнить его как захотите.

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

Установка компонента

Тут все очень просто:

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



Дальше используете его как любой другой компонент.

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

UPD 31.07.15: Обнаружена и исправлена ошибка обхода скриптом некоторых файлов.

UPD 05.10.15: Мой коллега, Роман, доработал карту сайта – сделал вывод физических разделов в виде древа.

Ну начнем как всегда. Что часто веб-мастеру приходит задача сделать вывод html карты сайта и разместить её в футере сайта, к примеру.

В этой статье, мы рассмотрим, создание html карты сайта на битриксе.

Стандартными средствами html карта сайта в битриксе делается с помощью вызова на нужной странице компонента bitrix:main.map. Здесь карта сайта будет строиться на основе пунктов меню.

Пример вызова компонента bitrix main map:

Html карта сайта на основе разделов каталога в битрикс может быть выполнена размещением кода, который бегает по всем активным разделам и выводит их с иерархией.

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

Оформить карту сайта можно на свое успотрение, добавить разделение на "Навигация сайта" и "Ассортимент сайта", к примеру, изменить отгображение компонента bitrix:main.map и т.п.

После размещения кода в php файле получим результат: html карту сайта для пользователя. Всем удачи и успехов в работе!

Не секрет, что для ускорения индексации сайта необходимо не только правильно настроить файл в корне вашего проекта robots.txt, но также сформировать карту сайта и сообщить поисковым системам google и yandex о ее существовании. Благо карта сайта в битрикс формируется в 2 клика.

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

Чтобы создать карту сайта, необходимо авторизоваться в системе администрирования bitrix:

После нажатия на данный пункт меню, откроется функционал создания sitemap bitrix. Нажимаем на зеленую кнопку создания карты:


Выбираем свой сайт:


И переходим к процедуре создания карты сайта


Настройка включения в карту из структуры


Настройка включения инфоблоков в карту сайта


Кстати, хотелось бы отметить, в robots.txt необходимо создать правило для карты сайта, делается это очень просто, достаточно отметить галочкой соответствующий блок настроек:


После того как sitemap создастся, вы увидите уведомления вида:


Также в корне вашего проекта, если зайти в вашу структуру сайта в подпункт Файлы, вы увидите созданные файлы карты сайта, которые подключаются в одном файле в формате xml


Причем отмечу, в названии файлов присутствует />

Что же касается robots.txt, то если пройти в режим его редактирования, то можно увидеть правило которое автоматически создалось про создании sitemap.


Далее после того, как на стороне сайта, все сделано, необходимо сообщить поисковым системам что ваша sitemap готова и они могут ее индексировать.

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


И в окне вставить путь к вашей sitemap как на картинке:


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

Система предложит вам авторизоваться в системе google, если у вас есть почта gmail, то этот логин и пароль подойдет к использованию.


Вообще отмечу, часто новички задают один вопрос, а какой мне пароль и логин вводить к тому или иному сервису google или yandex?

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

Добавить ваш сайт и карту сайта


Помимо этого необходимо проверить созданную карту, хотя функционал битрикс создает всегда корректную структуру, но проверка не помешает и у google и у yandex есть сервис проверки карты сайта.

В google это осуществляется непосредственно при загрузке файла.

Для проверки файла sitemap в yandex необходимо пройти по указанной выше ссылке, в анализаторе указать ссылку на файл sitemap.xml


Читайте также: