8 способов увеличить производительность сайта на 1С-Битрикс. Битрикс оптимизация
Оптимизация 1С-БИТРИКС - Краткое Руководство
Автор: QWNet
Категория: SEO Создано: 08.07.2015 21:35Краткое руководство по Оптимизации 1С-Битрикс для начинающих.
1C-Bitrix - является одной из самых популярных CMS в рунете. Из платных она достойно занимает первое место, и удерживает лидерство довольно долгий промежуток времени. На ней сделаны сайты правительства, финансовых учреждений (различные банки), многие интернет-магазины, корпоративные сайты и многие другие. Такое количество сайтов, сделанных на 1С- Битрикс, поражает. Исходя из чего, можно предположить, что информация в интернете, касающаяся оптимизации Битрикса, должна быть размещена в большом количестве. Однако это вовсе не так.
Эту обусловливается тем, что разработчики предоставляют большое количество документации к своему продукту, которая отвечает всем требованиям, и рассматривает все стороны подробно. Проводется курсы по обучению работы с системой, существуют специальные курсы, которые может пройти абсолютно любой. Главное - пройти теоретический курс обучения, затем сдать "экзамены" (тесты), и если все требования по сдаче были выполнены, вы прошли все тесты, и ваше прохождение не вызвало подозрений у модераторов, то вам дают сертификат специалиста, согласно курсу, который вы прошли.
Это безусловно большой плюс системы, но это же и минус. Многие просто теряются, когда перед ними тысячи мемуаров, рассказывающие, как правльно работать с Битриксом, и какими способностями он обладает. И довольно зря. Если вы работаете с 1C-Bitrix, вам необходимо почитать документацию. Так вот, многие пугаются количество, и обращаются к поисковой системе с вопросом "Как оптимизировать битрикс", либо "Оптимизация 1C-Bitrix". В общем это не важно, главное - что задаются такие вопросы.
В этом посте я не буду полностью раскрывать все аспекты оптимизации, а лишь дам вам краткое руководство, с основами оптимизации Битрикса. Если вас более глубоко волнуют данный вопрос - ознакомьтесь с документацией разработчика.
Оптимизация 1C-Bitrix
Мы разобьем по пунктам возможности, которые нам предоставляет разработчик. Это следующие возможности:
Оптимизация сайта - важнейший момент, которому стоит уделять особое внимание. Именно над "вылизыванием" кода заключается большинство работы, любого SEO-оптимизатора. Многие считают, что это не важно, главное подобрать правильные анкоры и расставлять ссылки со всего, с чего только является возможным. И это ошибочное мнение. Так считаю не только я, но и большинство моих коллег.
Давайте поговорим подробней о пунктах, приведенных мною ранее.
Возможности 1С - Битрикс
Управление метаданными - пользователю предоставляются все возможности, для настройки метаданных. Изменение возможно многими способами: через визуальный редактор HTML, текстовой редактор, настройки элемента в инфоблоке, и массово задать данные в инфоблоке, с переменными.
Список переменных доступен при настройке инфоблока, и имеет достаточно большой объем. Что бы задать данные для определенного инфоблока, следуем маршрутом: Контент -> Инфоблоки -> Типы инфоблоков -> *нужный тип* -> *нужный инфоблок*. Открываем вкладку SEO.
В данных настройках мы можем указывать Description, Keywords, Title, а так-же заголовок товара, который при грамотной версте, будет отображаться в h2.
В данном случае, переменная это {=this.Name} - название текущего раздела. Таким переменных довольно много, и это очень удобно - ведь вам не придется работать над каждой страницей по отдельности, особенно если их тысячи.
Заголовок окна браузера (Title) - это самый основной элемент, который мы только можем оптимизировать. Наверное, именно по этому, я решил выделит его отдельно от предыдущего пункта. В Заголовок окна браузера - вам необходимо вместить ключевые слова, продвижение по которым планируется именно для этой страницы. Желательно, уместить это все в 70 символов.
Настроить его вы можете через тот-же инфоблок, через вкладку SEO в панели управления, через настройки элемента (либо раздела), а так-же через отдельные компоненты, которые могут менять Title. Способов так много, что мне не хватит времени и слов, что бы описать их всех. Читайте документацию Битрикса, и ваши знания вырастут.
Так-же вам будет интересно:
Стили заголовков страницы (h2 ... h4) - данные заголовки могут настраиваться по разному. По умолчанию, битрикс разрешает редактировать h2 через административную панель, и h3...H6 через визуальный и текстовой HTML редактор. По мимо этого, многое зависит от верстки страницы. Если программист решил, что вы легко не отделаетесь - то будьте готовы к тому, что вам придется менять все в PHP коде сайта, в файлах шаблона. Это последнее, чего хотелось бы. Поэтому оговаривайте такие моменты с программистом до того, как он переносит дизайн на ваш сайт.
Исключение CSS кода из кода страницы для поисковых систем - файлы каскадной таблицы стилей CSS, могут быть как загружены в код сайта, так и выведены в отдельный файл. Настройки в большинстве зависят от того, просматривается ли страница посетителем сайта, либо ее запросил поисковый робот. Конечно, существуют и другие варианты, в принципе, как и в любой другой системе управления (CMS).
Никаких ограничений на внешний вид сайта - это просто замечательный возможности, которые будут полезны пользователям, знающим языки интернет-программирования на достаточном уровне. Продукты Битрикса не имеют никаких ограничений на внешний вид сайта. Вы можете сделать его как на основе таблиц, так и на основе слоев. Это позволяет размещать определенный участок кода в начале, но отображаться он будет в конца. И в обратном направлении, естественно. будет полезно для тех, кто продает ссылки, однако это обмен поисковой системы, и вообще, это отдельная тема.
Человеко-понятный URL (ЧПУ) - на сколько я помню, он идет включенным по умолчанию. Это позволяет создавать адресы страниц, которые будут содержать в себе ключевые слова, и отображать структуру сайта. ЧПУ полезен для оптимизации, и является важным фактором в SEO. Улучшает понимание сайта пользователем и поисковой машиной. Обязательно используйте данную возможность.
Использование метаданных для динамического контента страниц - отличная возможность создавать уникальные метаданные для динамического контента (новости, каталог товаров, галерея и т.д.). Сегодня, практически все современные системы управления сайтом, поддерживают эту опцию, однако и встречаются исключения. Битрикс - исключением не является.
Статистика и аналитика - битрикс умеет интегрироваться с системами аналитики. Это Google Analytics, Яндекс Метрика и другие. Возможность интеграции, дает вам возможность отслеживать посещаемость вашего сайта, источники переходов пользователей на ваш сайт, анализировать эти данные и многое другое. Системы статистики и аналитики - это довольно важный инструмент. О том, как добавить Яндекс Метрику на сайт Битрикс я уже писал, а вот статья о Google Analytics возможно будет позже. Хотя, разницы в установке практически нет.
Ограничение активности поисковых роботов - я не буду говорить про файл Robots.txt, тег rel=canonical, и прочее. Ограничение активности поисковых роботов в Битрикс подразумевает собой немного другое - встроенные в систему инструменты, позволяют ограничить доступ к сайту определенному поисковому роботу, на конкретный период, который указывает администратор. Это будет полезно в тех случаях, если робот проявляет слишком большую активность на вашем сайте, загружает сервер до предела. А так-же в других случаях.
Возможность удаления идентификатора PHP сессии из адреса URL страницы - добавление ID сессии в строку URL, является больной темой многих CMS. 1C-Bitrix позволяет исправить это, и исключить появления идентификатора сессии в адресе страницы. Достаточно прописать определенную строчку в файле конфигурации .htaccess, либо php.ini.
Если ваш сайта находится на сервера Apache, который поддерживает php флаги, то в файле .htaccess, который находится в корне сайт, раскомментируйте строку
Если данный способ не подошел вам, то в файле php.ini необходимо изменить параметр session.use_trans_sid на Off.
На этом, мое краткое руководство по оптимизации 1С-Битрикса закончилось. Я предоставил только возможности системы для оптимизации, и нечего более. Если вы хотите узнать чего-то большего о SEO, то читайте мой блог, блоги моих коллег, SEO форумы. Если вы хотите узнать больше о CMS Bitrix, то изучайте документацию, которая широко предоставляется на сайте разработчика.
Закрепленные
Понравившиеся
www.qwnet.ru
Ускорение загрузки нагруженного сайта на Битриксе или зачем программисту знать как работает mySQL
ИНТЕРВОЛГА – компетентный веб-интегратор .
Веб-интеграция это создание крупных информационных веб-систем , глубоко интегрированных в бизнес Заказчика. Это снижение затрат на работу с клиентами, рост продаж и автоматизация процессов.
Мы можем решить все задачи веб-интеграции собственными силами. Большинство наших проектов – комплексные, интеграционные.
Наш принцип: приносить пользу бизнесу клиента за счет осмысленного применения веб-технологий.
Ключевая компетенция веб-интегратора: создание сложных и хорошо работающих веб-проектов.
Сегодняшняя статья – об ускорении работы нагруженного интернет-магазина.
Этот интернет-магазин – mybox.ru. Внутри – 1C-Битрикс. Почитать об архитектуре проекта.Оглавление статьи:
- Кто пациент? Что умеет сайт mybox.ru?
- Скорость работы после старта
- Оптимизация скорости работы сайта, снижение нагрузки на сервер
- Ошибки программистов
- Неоптимальная работа стандартных компонентов и страниц Битрикса
- Результаты оптимизации
- Выводы
Сначала несколько слов о Битриксе
Есть два лагеря, между которыми – пламя войны.
Один – студии, работающие на Битриксе. Их директора продают Битрикс всем, потому что это мейнстрим, потому что рейтинги, потому что “Битрикс позволяет рубить бабло”. Программисты внутри таких компаний иногда пищат тоненькими голосами, но их никто не слышит. Даже их директора.
Второй – люди снаружи “мира Битрикса”. Они пишут на “правильных платформах”. Они боятся, не знают и не любят битриксоидов. Они оставляют у нас на сайте ядовитые комментарии. Они испускают вопли ненависти. Их никто не слышит. Даже их клиенты. Их клиенты хотят перейти на Битрикс. Потому что мейнстрим, потому что оттуда нет воплей ненависти. Потому что там как-то все работает. Потому что найти профессиональную и организованную команду разработчиков под Битрикс проще чем под “правильную платформу”.
Лишь малая доля веб-разработчиков думает не штампами, а головой. Например – мы.
Профессионалы понимают, что тиражируемый софт и промышленная разработка это не то же самое что “команда одного проекта”. Мы знаем для чего подходит Битрикс и почему он такой.
При этом мы не идеализируем платформу. Мы знаем о стольких странностях Битрикса, что людям “снаружи” и не снилось.
В каждом крупном проекте – Евраз, MYBOX, Альфа, многочисленные “Уберы маркетплейсов” – мы думаем “черт возьми, причем тут Битрикс!? Тут же все нетиповое!”. Каждый раз мы начинаем проект и осознанно делаем его на Битриксе.
Я понимаю что люди по ту стороны пламени войны сейчас скажут “мыши плакали, кололись, но продолжали жрать кактус”. Но – это неправда.
В команде ИНТЕРВОЛГИ есть такие люди как Алексей Шкарупа и Сергей Горелов, руководители двух продакшн-отделов. Первый пришел “укушенный питоном”, второй первые пару лет “пописывал на Zend’e”. Я сам так вообще на голом php с 2005 по 2009 столько странного написал, что самому удивительно.
Мы не фанатики и не фанаты Битрикса. Не устаю повторять, это не нам платит Битрикс чтоб мы его хвалили на каждом углу. Наоборот: мы платим Битриксу сильно больше миллиона рублей в год, приобретая лицензии.
В статье — реальный кейс ускорения работы сайта на Битрикс, объемом в 3000+ часов и пример оптимизации его работы.
Тем, кто “поделится” статьей в социальных сетях, мы пришлем инструкцию по поиску проблемных мест сайта на Битриксе для не-программистов. Со скриншотами и указанием мест, на которые стоит указать разработчику.
Кто пациент? Что умеет сайт mybox.ru?
Mybox.ru – сайт, highload проект на Битрикс, где можно заказать суши и другие блюда азиатской кухни в 100+ городах.
Сайт показывает доступность блюд в 250+ точках выдачи. Статусы заказов обновляются через веб-сервисы 2 раза в минуту. Обновление наличия товаров и меню идет почти непрерывно. На сайте делается ежедневно более 1000 заказов, в месяц – несколько десятков тысяч.
Ну хорошо, а нагрузка?
Утром (когда заказов почти нет) в минуту бывает около 35 хитов. Мало.
Днем в 14-00 по Москве (восточные регионы начинают активно работать) в минуту сайт обрабатывает 220 запросов. Уже не так мало.
Вечером — когда поток заказов максимальный — в минуту около 500 хитов.
Вечером в праздник (например 8 марта) обычный показатель перекрывается в 2-2.5 раза.
Итого до 1300 хитов в минуту. Это 22 хита в секунду.
Нагрузка эта – от покупателей, без признаков хакерских DDOS-атак, неумелого парсинга, буйных ботов Яндекса и всего такого.
Со временем сайт стал работать заметно медленнее. Особенно на некоторых страницах. В данных мусора нет, посещаемость здоровая, конверсия – обзавидуешься.
Ясно, что причины “тормозов” надо искать в коде и в обработке данных.
Начнем с истории.
Скорость работы после старта
Сайт был разработан нами и выпущен осенью 2015 года. После сдачи сайт был проверен на скорость – все было в пределах нормы.
Что такое норма?
Лирическое отступление: в частных беседах сотрудники 1С-Битрикс говорят что сайт должен “без кеша” отдавать любую страницу за 0.1-0.5 секунды и это они считают нормой.
При этом сайт Битрикса контентные страницы отдает за 0.2-0.3 с, а страницу отфильтрованного списка партнеров — сначала за 0.8 с, потом за 0.25 с.
Штатная “мерилка” Битрикса (серверное + в браузере) помечает любое время свыше 1 с – “не быстро”.
Разумно считать около 0.5 секунды серверного времени – допустимой нормой.
Иногда прямо в договоре на запуск сайта мы записываем требования к скорости работы и “на выходе” проводим нагрузочное тестирование: Яндекс.Танк + Munin, Nagios + штатные инструменты Битрикса.На момент старта сайт был “бодрячком”: среднее время генерации страниц составляло около 0.3 секунды.
...и через год расширения сети и развития сайта
За год посещаемость, число точек и городов выросли процентов на 30.
База данных имеет стандартную для Битрикса структуру – инфоблоки (товары, SKU, маркетинговый контент), немного хайлоадблоков. Данных немало: например, в инфоблоке SKU (“наличие по точкам”) хранится более 400 тысяч записей.
Кроме того, сайт хранит более 6 миллионов записей – позиций ранее сделанных заказов. Каждый раз когда сайт обращается к истории заказов, выполняет операции с корзинами – этот объем записей затрагивается.
Как следствие – те программные решения, которые были оптимальны год назад, при накоплении объема данных и росте нагрузки потребовали проверки и переработки.
За год на сайт было добавлено много новых функций. Вот неполный список:
-
Добавлена паназиатская кухня с конструктором заказов, что сделало весь код работы с корзиной “сильно нестандартным”
-
Создана адаптивная версия сайта . На мобильных доступна вся функциональность.
-
Сделали “гео-доставку”. Это значит, что в зависимости от местоположения покупателя сайт показывает ему точный состав доступных к заказу блюд и условия доставки. Помимо координат клиента сайт учитывает нюансы работы сети MYBOX во всех городах (цена доставки, время, наличие блюд в ближайшей точке).
-
Разработаны и запущены 2 мобильных приложения (приложения берут данные из того же сайта и добавляют ему нагрузки; мы разработали стыковочное API для мобильных приложение, это API реализует логику работы с товарами, заказами и доставкой)
-
Реализован и запущен интранет-портал обучения и проверки уровня сотрудников (в платформе есть модуль Обучение, неплохо покрывающий задачи HR-департамента, мы использовали тот же сайт).
Выросла и нагрузка. Сайт перестал быть “бодрячком”. Перед нами встал вопрос - как увеличить скорость загрузки сайта.
По самым продающим и самым нагруженным страницам время за год сильно выросло (на графике показано серверное время).
В сентябре 2016 года мы начали оптимизацию. Результаты видны на графике, далее — подробности.
Оптимизация скорости работы сайта, снижение нагрузки на сервер
Расскажем что мы нашли, как исправили и к чему привела оптимизация скорости работы сайта.
Внимание:
Дальше много специальных терминов! Если вы не понимаете языка программистов, сразу читайте выводы и результаты .
Симптомы
Хозяйке на заметку: Даже если вы не специалист в веб-разработке, для определения медленно работающих частей сайта прекрасно подходит штатный монитор производительности Битрикса и его инструменты “Страницы”, “Хиты”, “SQL-запросы”. Запустите мониторинг на 20-60 минут и посмотрите статистику. Все как на ладони.
Выяснилось что узкое место — медленные запросы базы данных. Мы отобрали 500 самых долгих запросов, выбрали и сгруппировали по типам:
Вы спросите: как так вышло? Ответ прост:
-
непрерывный рост базы и замедление запросов;
-
постоянное изменение логики и “наслаивание кода”;
-
весь год мы работали над проектом в таком темпе, что не проводили регулярное нагрузочное тестирование, перестали применять модульное и интеграционное виды тестирования. Мы оставили только “смок-тесты” и мониторинг работоспособности основного бизнес-процесса через Selenium. Скорость разработки была на первом месте, и накопился технический долг. Это плохо, но это неизбежное следствие режима “давай-давай”.
Важно время от времени наводить порядок.
Еще вопрос: как при таких показателях вообще удавалось работать?
Нужно похвалить кеширование Битрикса: большинство медленных запросов работали редко.
Парадокс, но жалоб от пользователей до определенного момента было крайне мало. Только тогда, когда долгий запрос оказался на пути конверсии при тестировании геозависимости доставки, вопрос стал ребром: надо оптимизировать.
А может сервер посильней?
Очевидная мысль — для ускорение работы сайта мало ресурсов, давайте добавим.
Но мы решили этого не делать до наведения порядка в коде. Добавлять мощности — значит консервировать проблему. Да и Антон Гойхман, ИТ-директор сети, совершенно разумно отказался “тушить пожар бензином”.
Сайт работает на обычном виртуальном сервере на SSD.
Сервер соответствует требованиям Битрикса, поэтому начинать надо не с него.
Напоминание:
Тем, кто “поделится” статьей в социальных сетях, мы пришлем инструкцию по поиску проблемных мест сайта на Битриксе для не-программистов. Со скриншотами и указанием мест, на которые стоит указать разработчику.
Мы нашли и устранили кучу мест “потери скорости”. Первая группа проблем называется
Ошибки программистов
Логически верные, но неоптимально написанные вызовы API Битрикса
API Битрикса – инструмент. Инструмент непростой. С его помощью очень легко написать такой код, который будет логически верен, но крайне непроизводителен. И требуется квалификация “сильно выше средней” чтобы это найти и исправить быстро и изящно.
Пример: Многие сущности на сайте связаны между собой и с внешней системой учета по XML_ID. В коде огромное число getlist-запросов с отбором XML_ID. При этом иногда программисты не указывали фильтрацию по iblock_id.
Логически это допустимо: если XML_ID уникален, то проблем нет.
Но в Битриксе для поиска по iblock_id, XML_ID есть составной индекс. А при запросе без указания инфоблока он не используется.
В огромном учебном курсе Битрикса “разработчик на bitrix framework” этот момент четко не описан.
Эта не бросающаяся в глаза особенности стиля кодирования здорово тормозила многие запросы.
Нашли, исправили.
Update: После нашего уточняющего запроса руководитель отдела документирования Роберт Басыров скорректировал текст документации Битрикс по этому поводу: http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblockelement/getlist.php
SQL в цикле вместо более сложной, но быстрой методики получения данных
Пример: Больное место — result_modifier компонента catalog.section.
На сайте есть особый вид товаров — наборы в виде “коробочек паназии”. У них специфический жизненный цикл от синхронизации с учетной системой до ценообразования, доступности по городам, расчету геоданных.
В коде страницы каталога каждой коробки-вока в коде узнавали ее состав с помощью метода getBoxProductItems (в самом методе еще 2 раза вызывается Getlist по компонентам коробочек). Затем опять делали запрос для получения значения свойства. Все это для того чтобы узнать с чем коробка.
Работает, но неоптимально. Код избыточен.
Что сделали:
Добавили интересующее нас свойство в параметр DISPLAY_PROPERTIES, собрали ID-записей и разом получили необходимые нам значения.
После:
Результат: Ускорение этого логического блока в сотни раз.
Запросы с пустой фильтрацией
Фильтры при отборах иногда формируются по сложной логике “в пару экранов кода”.
Завершается все это getlist’ом.
При исследованиях мы нашли несколько случаев, когда фильтр оказывался пустым. Getlist считает это вариантом нормы и срабатывает запрос вида "выбери мне все элементы всех инфоблоков".
Совет: при больших (или даже при любых) объемах данных проверяйте, не пустой ли у вас фильтр.
Повторный запрос тех же данных
В проект вложено примерно 3400 часов работы, участвовало много людей, и порой следующий программист писал в result_modifier примерно то же, что уже делалось в компоненте, с чуть измененной под новую логику структурой данных.
В идеальном мире каждый раз проводится code review, а по пятницам еще и комплексное нагрузочное тестирование. В реальном мире всегда есть срочные задачи, добавление новых фич.
Результат – накопилось вот такое: если на странице выводилось 50 товаров, то для каждого товара выполнялся запрос, определяющий текущий тип цены, одинаковый у всех.
Отсутствие нужных индексов на нагружающие запросы select
Пример: при работе с товарами наиболее часто производятся выборки по городу.
Город в нашей структуре данных — свойство инфоблока товарных предложений. Получается “запрос через 2 ступени”: товар-предложение-город. Запросы сложные, данных много, все тормозит.
Для ускорения сайта на Битрикс, сконвертировали в Инфоблоки 2.0 и добавили индекс на поле “город”.
Еще пример: довольно много данных хранится в highload-блоках, например расширенные профили покупателей — сотни тысяч записей, по которым часто ведется поиск и отбор.
Проанализировав запросы, мы добавили индексы почти на все highload-блоки.
Следующая группа проблем интереснее.
Напоминание:
Тем, кто “поделится” статьей в социальных сетях, мы пришлем инструкцию по поиску проблемныхмест сайта на Битриксе для не-программистов. Со скриншотами и указанием мест, на которые стоит указать разработчику.
Неоптимальная работа стандартных компонентов и страниц Битрикса
Метод CIBlockPriceTools::GetOffersArray используемый в компоненте Catalog.Section
Смысл этого метода в том, чтобы получить определенное число торговых предложений для каждого товара.
Делает он это довольно странным образом.
Сначала получает все возможные предложения для списка товаров (в корне каталога получим все элементы инфоблока с торговыми предложениями), затем проходит циклом по всем полученным элементам и оставляет только n предложений для каждого товара из списка (см скриншот).
Наверное, можно представить логичное объяснение такой реализации, но с нашей структурой данных это работало ужасно медленно.
Работа со свойствами элементов инфоблока в компонентах
Стандартные компоненты каталога делают “лишние” для нас операции при извлечении свойств товаров.
В идеале хочется чтобы свойства доставались в одном запросе вместе с элементами, но в стандартных компонентах свойства достаются отдельно, причем опять же довольно странно.
Пример: Список полей которые мы получаем вместе с элементами
Стандартные компоненты получают свойства отдельно, с помощью метода CIBlockElement::GetPropertyValuesArray.
Чем больше свойств нам надо получить, тем медленнее метод работает.
В каталоге нам требуется всего 12 свойств, для интернет-магазина это не много.
На скриншоте профилировщика XHprof видно, что вызовы методов получения свойств (внешние) занимают очень много времени.
Следите за руками.
В методе GetPropertyValuesArray мы (в смысле код Битрикса) получаем значения всех активных свойств, причем двумя отдельными запросами: сначала список существующих свойств,
затем сами значения для выбранных элементов каталога
Далее если свойство имеет тип свойства “привязка” и свойство указано в параметре PROPERTY_CODE идет получение привязанного элемента, причем запросом в цикле (метод GetDisplayValue).
Время затраченное на исполнение функции GetDisplayValue
Можно порекомендовать разработчикам сайтов на Битриксе, если данных много и этот метод тупит, как у нас, не передавать в параметр PROPERTY_CODE компонента это свойство.
Тогда этот связанный элемент не будет извлекаться из базы без толку.
Напоминание:
Тем, кто “поделится” статьей в социальных сетях, мы пришлем инструкцию по оптимизации SQL-запросов Битрикса.
Удивительная страница sale_buyers.php
Эта страница доступна в админке вашего Битрикса по ссылке /bitrix/admin/sale_buyers.php?lang=ru. Она показывает покупателей и много данных по каждому: сумма заказов, число, время последнего логина.
На малых данных все отлично, а на больших — нет.
Она генерирует такой вот запрос:
Любители пописать SQL-запросы спросят — почему бы сумму и число заказов не получить одним подзапросом, а не двумя одинаковыми? Причина известна: так работает автоматический построитель запросов на основе настраиваемого визуального представления.
И черт с этим, проблема не в двух запросах вместо одного.
Проблема в том, что на нашей боевой базе этот запрос выполняется 20+ минут, неторопливо пережевывая данные и используя все больше ресурсов сервера.
Пришлось сообщить в техподдержку и временно заблокировать эту страницу.
Update : Трудами сотрудников компании Битрикс Дениса Шаромова и Николая Рыжонина пример 20+ - минутного запроса был стремительно исследован, в продукт внесены изменения, которые придут с обновлениями. Ждем.
Результаты оптимизации
После переработки структуры данных, оптимизации запросов и кода (нашего и Битриксового), при той же (и даже растущей нагрузке) не осталось запросов, которые бы исполнялись более 0.2 секунды (условия измерения те же — 500 самых нагружающих запросов вечером).
Сравните результаты “до и после”. Среднее время нагружающих запросов:
Даже самые тяжелые страницы теперь отдаются менее чем за 0.4 секунды (напомню, при 10+ хитах в секунду).
Сайт снова стал бодрячком.
Осталось еще одно “место потери времени” – проблемы клиентская оптимизация, работы в браузере.
Ей мы займемся в ближайшее время.
На диаграмме внизу зеленое — серверное время, синее – время на клиенте, в браузере.
Напоминание:
Тем, кто “поделится” статьей в социальных сетях, мы пришлем инструкцию по поиску проблемных мест сайта на Битриксе для не-программистов. Со скриншотами и указанием мест, на которые стоит указать разработчику.
Выводы
Универсальность Битрикса, гибкость инфоблоков и буйство фантазии заказчика позволяет многим веб-разработчикам забыть, как платформа устроена внутри. Забыть про уровень протокола, сессий, индексов, таймаутов.
А забывать не надо.
Каждый проект имеет уникальную структуру нагрузки. Каждая задача требует анализа и принятия решения, независимо от платформы.
И если в простых случаях можно программировать “спинным мозгом”, то нагруженный проект не позволит этого.
Затраты времени на рефакторинг составили около 60 часов.
Мы написали эту довольно откровенную статью и убедили руководство заказчика в необходимости публикации, потому что знаем — проблемы организации и качества есть во всех проектах.
Важно как компания работает над ними.Оцените статью:
Спасибо, ваш голос успешно добавлен!
www.intervolga.ru
SEO оптимизация 1C БИТРИКС
С 14 версии в битрикс появились SEO настройки, которые помогают SEO оптимизировать 1С Битрикс под свои задачи. Одним из ключевых моментов этой оптимизации является возможность делать автоматизированные шаблоны, в которых можем задавать мета-теги: h2, title, description, ключевые слова и ключевые слова у картинок такие как title и название самой картинки alt.
Как вы догадались, в данном уроке пойдет речь о SEO настройках 1С битрикс и рассмотрим принципы работы данного функционала.
SEO поля имеют свойства наследования, их можно задавать начиная с инфоблоков, далее разделов, и заканчивая каждым элементом, который можно сформировать под конечный запрос.
Можно разделить формирование SEO полей на три этапа:
- Настройка SEO полей инфоблока;
- Настройка SEO полей разделов и элементов;
- Настройка комплексного компонента.
Определение:
SEO настройки – набор правил, определяющие, шаблоны вывода мета данных для оптимизация сайта по SEO параметры поисковых машин.
Оптимизация SEO полей инфоблока
Давайте на примере нашего каталога товаров, проведем SEO оптимизацию инфоблоков в битрикс. Перейдем в административную часть сайта, Инфоблоки, выберем каталог товаров, открываем вкладку SEO и по порядку проводим настройки полей.
Первая секция настроек предназначена для шаблонов мета-тегов title, description, keywords, а также заголовки страницы h2. С помощью данной кнопки […], которая расположена рядом с каждым полем мы можем формировать необходимые нам шаблоны для СЕО оптимизации сайта на битрикс.
Сформируем шаблон META TITLE, в поле пропишем:
Каталог {=this.Name} от интернет-магазина dws.mcdir.ru.
Добавляя в конец название, или домен нашего магазина мы тем самым уникализируем TITLE. Чуть ниже отобразилось наше полное название TITLE, и обратите внимание, что подставляемое поле «Имя раздела» выводится с заглавной буквой. Можно оставить как есть, но желательно что бы предложение было сформировано правильно. Воспользуемся другим оператором {=lower arg1 ... argN} который приведет название раздела к нижнему регистру.
Прописываем и название сразу изменилось, так же этот фильтр-обработчика доступен при нажатии следующей кнопки […], где далее выбираем Поля раздела, Название текущего раздела в нижнем регистре.
Перечень операторов в битрикс:
- {=lower arg1 ... argN} - приведение к нижнему регистру;
- {=upper arg1 ... argN} - приведение к верхнему регистру;
- {=concat arg1 ... argN ", "} - сцепление строк через разделитель;
- {=limit arg1 ... argN "<delimiter>" NN} - ограничение NN элементов по разделителю;
- {=translit arg1 ... argN} - транслитерация выбранных аргументов;
- {=min arg1 ... argN} - выборка минимального числового значения;
- {=max arg1 ... argN} - выборка максимального числового значения;
- {=distinct arg1 ... argN} - уникальные (без дублей) значения.
Для оптимизации шаблона META KEYWORDS просто пропишем перечисление ключевых слов с нашим заголовком раздела в нижнем регистре. Первым по приоритетный выводим название раздела в нижнем регистре, далее разбавляем наши заголовки словами (заказать, купить, приобрести в своем городе, и т.д.)
Пример seo оптимизации META KEYWORDS:{=lower this.Name}, заказать {=lower this.Name}, купить {=lower this.Name}, приобрести в Краснодаре {=lower this.Name}, {=lower this.Name} от дистрибьютора
Внизу видим, как даны ключевые слова сформировались. Далее настроим краткое описание для мета-данных DESCRIPTION разделов каталога.
Пишем тематический текст, в котором будет сочетаться название сайта, имя раздела и раскрываться суть текущих страниц каталога.
Пример seo оптимизации DESCRIPTION: Интернет магазин dws.mcdir.ru, в разделе {=lower this.Name} представлен огромным выбор одежды на любой вкус. Наш магазин находится в Краснодаре и мы являемся официальным дистрибьютором в России.
Внизу отобразился готовый результат шаблона DESCRIPTION, теперь сформируем Заголовок раздела, он же будет выводиться в h2.
Переходим к следующей секции "Настройка для элементов". Оптимизируем по аналогии как работали с разделами за исключением шаблона DESCRIPTION куда выведем производителя товара с закрепленного свойства элемента.
По аналогии заполняем, мета данные для свойств самих картинок, таких как ALT и TITLE. Если до этого раннее картинки были загружены на сайт то данные к ним не применяться, они останутся как прежние, а срабатывание этого функция будет в том случае, когда картинка будет обновлена или при создании нового элемента, когда будете загружать файл.
Чуть ниже в битрикс находится секция «Управление», с помощью отмеченной вкладки "Очистить кеш вычисленных значений", сможете сразу видеть отображения всех внесенных изменений, кеш будет обновляться и результат будет сразу отображаться.
После проведенных нами настроек обязательно сохраним инфоблок.
SEO настройки разделов и элементов
С оптимизацией инфоблока в битрикс разобрались, теперь перейдем в каталог одежды и при необходимости настроим разделы, которые не соответствуют нашему описанию. К примеру, мы в описании DESCRIPTION писали, что у нас в интернет магазине «…. огромным выбор одежды на любой вкус…», это описание не соответствует некоторым разделам как «Обувь», «Аксессуары» и текущие разделы подкорректируем под свое описание.
Выбираем, изменить раздел «Обуви», открываем вкладку «SEO», и проверяем текущие описания разделов. Если данная вкладка не отображается, проведите настройки текущей формы, как это сделать я объяснял в уроке "Формы редактирования". В описании DESCRIPTION видно явное несоответствие разделу «… раздел обувь с огромным выбором ОДЕЖДЫ на любой вкус …». Давайте в данном случае напишем не Обувь, а Продукция.
Для этого можно отмечаем «Изменить для этого раздела и его подразделов», поле стало активным для редактирования. Теперь внесем свои правки и в дальнейшем если сейчас сохранимся, то все подразделы текущего раздела унаследуют данное свойство.
Всегда начинайте правки SEO полей с основного раздела.Спустимся ниже и проверим описание для элементов. Проверим формирование описание подразделов, и далее проводим соответствующие правки в разделе Аксессуары.
Добавление нового элемента в битрикс
Давайте для примера добавим новый элемент в данный раздел. Жмем кнопку Создать товар, заполняем основные поля. Переходим на вкладку SEO, а тут видим, что не отображаются в готовом варианте наши заголовки, хотя по умолчанию свойства везде проставлены. Даже если по умолчанию проставим новое свойство, результат система нам не покажет.
Для того что бы битрикс отобразил полные мета-данные, элемент нужно сохранить и желательно сделать это таким образом что бы другие пользователи не видели отображение этого элемент и в тоже время мы могли его видеть из под своей учетной записи Администратора.
Нам нужно настроить права доступа к текущему элементу, для этого, переходим на вкладку доступ и устанавливаем права для групп «Все пользователи» и «Все авторизованные пользователи» Нет доступа. Как вывести вкладку «Доступ» и настроить ее поля я показывал в уроке Настройка прав доступа.
После того как закончили с настройками формы в битрикс, переходим на вкладку SEO и жмем кнопку Применить. У нас сформировался полные заголовки при этом сам элемент Активный, но все пользователи кроме группы администраторов его на сайте не видят. Это поверьте очень удобно, дает возможность администратору полностью проверить элемент до конечной его публикации.
Включаем SEO в компоненте
После оптимизации, инфоблока, разделов и элементов в битрикс перейдем в каталог на визуальную часть сайта и посмотрим отображение наших заполненных форм шаблонами мето-данных. Если у нас не отображается в компоненте заголовок элемента или раздела и на всех страничка он не изменяем, это говорит о том, что в компоненте, в Дополнительных настройках, не установлен параметр «Устанавливать заголовок страницы».
Перейдем в настройки компонента и активируем данный параметр.
Включаем режим быстрой правки, жмем на шестеренку, выбираем пункт Дополнительные настройки, и устанавливаем галочку в соответствующее поле, сохраняемся.
У нас сразу изменился заголовок страницы. Открыв страницу в режиме кода, мы видим корректное отображение SEO данных битрикс.
Как видите, с помощью оптимизации SEO параметров в 1С битрикс, можно гибко настроить сайт под поисковые запросы, а простота настройки механизма понятна даже ребенку.
Пользуйтесь данным параметров SEO настроек в битрикс для оптимизации и развивайте своего сайта.
Оставить комментарий:
dwstroy.ru
8 способов увеличить производительность сайта на 1С-Битрикс
Что будет, если нагрузить фуру и старую клячу грузом в 1 тонну? Правильно: первый поедет на максимальной скорости, а вторая не сможет сдвинуться с места. Так и сайты: у каждого из них свои требования к хостингу, конфигурации, настройкам платформы 1С-Битрикс.Каждую неделю в нашу поддержку приходят жалобы на низкую скорость загрузки. В 99,9% случаев оказывается, что проблема кроется в слабеньком хостинге и неправильных настройках. Рассказываем, что делать, если сайт или интернет-магазин тормозит, и как правильно произвести диагностику и самостоятельно увеличить производительность — так, чтобы летал.
1. Оцените производительность
Модуль «Монитор производительности» 1С-Битрикс позволит протестировать производительность сайта и сравнить результаты с эталонными показателями. Он укажет на слабые места: сайт, CMS, конфигурация, некачественная разработка или хостинг. Вы можете развернуть ваш сайт или «чистый» 1С-Битрикс на разных площадках и сравнить эти цифры.Что нужно знать о показателях производительности:
- меньше 30 пунктов – забудьте про производительность и быструю загрузку страниц. Показателя «Очень быстро» вам не видать. Тормозить будет все!
- от 30 до 60 – подойдет для небольших проектов (корпоративные сайты или интернет магазины с небольшим количеством товаров, небольшим количеством SKU и параметров в умном фильтре)
- от 60 до 100 — конфигурация сервера приемлема, но не оптимальна. Подойдет для большинства проектов. Сайт работать будет, но не на сверхскоростях.
- от 100 – вы молодцы: не поленились выбрать нормальную хостинг площадку! Админка летает, большие объемы данных из 1С выгружаются на ура, страницы отдаются быстро. Вы спите спокойно и даже не думаете писать в техподдерожку с жалобами на проблемы с загрузкой сайта, ни разу не видели ошибок Request timeout или 502 Bad Gateway.
- 200 и выше – идеально!
Как протестировать сайт
Перейдите в панель производительности: Настройки → Производительность → Панель производительности. Нажмите кнопку «Тестирование производительности» и подождите несколько минут.2. Перейдите на PHP7
3 декабря 2015 года вышла седьмая версия PHP. Она разрабатывалась с упором на увеличение производительности и уменьшение потребления памяти. Тесты это убедительно показывают (пример 1, пример 2) — прирост производительности после перехода на новое ядро составляет от 40%!
Сидеть на старых версиях PHP — осложнять жизнь пользователю и делать этот интернет хуже. Если ваш хостинг не поддерживает PHP7, меняйте его (например, на этот с бесплатным переносом). Если ваш сайт не поддерживает PHP7, срочно исправляйтесь. А еще лучше, используйте решения с поддержкой PHP7 — например, от Аспро.
3. Настройте кеширование
Использовать композит и автокомпозит — это хорошо и правильно. Но просто включить их — полдела. Чтобы получить ощутимый прирост в скорости, нужно корректно задать время жизни кеша в зависимости от частоты обновления данных на сайте и посещаемости.Как не надо:
- Оставлять настройки по умолчанию (120 секунд).
Почему: первый посетитель заходит на страницу товара. Формируется кеш. Второй посетитель заходит на сайт через час. Кеш нужно формировать заново — его время истекло. В итоге кеш генерируется каждый раз при открытии страницы. Прироста производительности и скорости не просто нет — она даже снижается.
- Не соотносить время жизни кеша с частотой обновления данных на сайте и посещаемости сайта.
- Задавать для отдельных разделов (новости, статьи) огромное время кеширования.
- Цены на сайте обновляются вручную или несколько раз в неделю. Рекомендуемое время кеширования: не менее 172800 секунд (2 суток).
- Цены на сайте обновляются один раз в день, выгрузка из 1С или другой системы складского учета происходит ночью. Рекомендуемое время кеширования: 86400 секунд (1 сутки).
- Нечасто, но бывает: цены обновляются через реал-тайм обмен с 1С и бывает, что несколько раз в течение дня. Рекомендуемое время кеширования: 7200 секунд (2 часа).
4. Создайте фасетные индексы для умного фильтра
Фасетные индексы ускоряют работу умного фильтра. Обычно умному фильтру нужно перебрать все товары каталога и сравнить их свойства с заданными параметрами. Если товаров много, такой процесс может занять определенное время. Фасета же заранее просчитывает и составляет варианты запросов, сохраняет в системе и выдает по запросу.
На словах все здорово, на деле — не очень: фасеты редко создают и используют. Попробуйте это сделать и сравните скорость загрузки результатов фильтрации. Инструкция в нашей документации
5. Проанализируйте и создайте индексы в базе данных
Индексы анализируются и создаются здесь: Настройки → Производительность → Индексы → Анализ индексов.
Нажмите на кнопку «Выполнить анализ собранных SQL запросов». Если появившиеся индикаторы зеленые, все в порядке: индексы созданы. Если индикаторы желтые, создайте их самостоятельно. Инструкция в мануалах 1С-Битрикс
6. Отключите неиспользуемые модули
При инциализации ядра 1С-Битрикс подключается большой список модулей. Они отнимают ресурсы, но при этом не нужны для полноценной работы сайта. Отключаем лишние модули — получаем прирост производительности. Перед тем, как это делать, обязательно сделайте резервную копию сайта.Какие модули используются редко и их можно отключить без последствий для работы сайта:
- AD/LDAP интеграция (ldap)
- Push and Pull (pull)
- Wiki (wiki)
- А/B-тестирование (abtest)
- Веб-аналитика (statistic)
- Веб-кластер (cluster)
- Веб-мессенджер (im)
- Веб-сервисы (webservice)
- Дизайнер бизнес-процессов (bizprocdesigner)
- Документооборот (workflow)
- Календарь событий (calendar)
- Конструктор отчетов (report)
- Менеджер идей (idea)
- Мобильная платформа (mobileapp) - если не подключено мобильное приложение
- Мобильное приложение для интернет-магазина (eshopapp) - если не подключено мобильное приложение
- Обучение (learning)
- Перевод (translate)
- Почта (mail)
- Техподдержка (support)
- Универсальные списки (lists)
- Управление масштабированием (scale).
7. Настройте CDN
Еще одна неоднозначная вещь, которая может как разогнать сайт, так и заставить его хорошенько притормозить. Что это такое?
Теория:
«Модуль Ускорение сайта (CDN), который позволяет загружать весь статический контент вашего сайта (картинки, файлы стилей css, скрипты js) через сеть дистрибуции контента (Content Delivery Network или Content Distribution Network, CDN). Тем самым значительная часть ресурсов сайта загружается посетителем с ближайшего к нему сервера. Это позволяет увеличить скорость загрузки страниц до нескольких раз.
Также подключение CDN снижает нагрузку на основные серверы сайта. Так как весь статический контент загружается посетителями вашего сайта не напрямую с ваших серверов, а с узлов CDN, которые умеют очень эффективно кэшировать контент, снижается количество обращений непосредственно к вашим серверам» (отсюда)Настраивается CDN здесь: Настройки → Облако 1С-Битрикс → Ускорение сайта (CDN).
Практика
Не все так однозначно: для кого-то включенный CDN дает реальный прирост производительности, а у кого-то, напротив, снижает скорость загрузки сайта. Выход один: тестировать и замерять результаты.
8. Включите объединение и сжатие CSS и JS-файлов
В настройках главного модуля сайта есть волшебный блок, который позволяют улучшить показатели скорости загрузки сайта. Называется он “Оптимизация CSS”. Отмечайте галочками все, сохраняйте изменения и тестируйте скорость загрузки страниц.
Как это все работает в деталях, читайте в нашей базе знаний. А оценить в количественных и качественных характеристиках эти «до» и «после» поможет старый добрый Google PageSpeed Insights.
aspro.ru
SEO-оптимизация, robots txt и плагины
Есть проблемы с ранжированием, проект не растет, хотите проверить работу своих специалистов по продвижению? Закажите профессиональный аудит в Семантике
Мы выпустили новую книгу «Контент-маркетинг в социальных сетях: Как засесть в голову подписчиков и влюбить их в свой бренд».
Подпишись на рассылку и получи книгу в подарок!
1C Bitrix — самый популярный коммерческий движок. Он широко используется во многих студиях, хотя идеальным его не назовешь. И если говорить о SEO-оптимизации, то здесь надо быть предельно внимательным.
Правильный robots.txt для 1C Bitrix
В новых версиях разработчики CMS изначально заложили robots.txt, который способен решить почти все проблемы с дублями страниц. Если у вас не обновлялась версия, то сравните и залейте новый robots.
Также внимательней нужно подойти к вопросу роботс, если ваш проект в настоящий момент дорабатывается программистами.
</pre> <p>User-agent: * Disallow: /bitrix/ Disallow: /search/ Allow: /search/map.php Disallow: /club/search/ Disallow: /club/group/search/ Disallow: /club/forum/search/ Disallow: /communication/forum/search/ Disallow: /communication/blog/search.php Disallow: /club/gallery/tags/ Disallow: /examples/my-components/ Disallow: /examples/download/download_private/ Disallow: /auth/ Disallow: /auth.php Disallow: /personal/ Disallow: /communication/forum/user/ Disallow: /e-store/paid/detail.php Disallow: /e-store/affiliates/ Disallow: /club/$ Disallow: /club/messages/ Disallow: /club/log/ Disallow: /content/board/my/ Disallow: /content/links/my/ Disallow: /*/search/ Disallow: /*PAGE_NAME=search Disallow: /*PAGE_NAME=user_post Disallow: /*PAGE_NAME=detail_slide_show Disallow: /*/slide_show/ Disallow: /*/gallery/*order=* Disallow: /*?print= Disallow: /*&print= Disallow: /*register=yes Disallow: /*forgot_password=yes Disallow: /*change_password=yes Disallow: /*login=yes Disallow: /*logout=yes Disallow: /*auth=yes Disallow: /*action=ADD_TO_COMPARE_LIST Disallow: /*action=DELETE_FROM_COMPARE_LIST Disallow: /*action=ADD2BASKET Disallow: /*action=BUY Disallow: /*print_course=Y Disallow: /*bitrix_*= Disallow: /*backurl=* Disallow: /*BACKURL=* Disallow: /*back_url=* Disallow: /*BACK_URL=* Disallow: /*back_url_admin=* Disallow: /*index.php$</p> Host: www.site.ru Sitemap: http://www.site.ru/sitemap.xml <pre>
Начальная SEO оптимизация сайта на 1С Битрикс
В 1С Битрикс есть SEO модуль, который идет уже в тарифе “Старт”. Данный модуль имеет очень большие возможности, которые удовлетворят все потребности seo специалистов при начальной оптимизации сайта.
Его возможности:
- общее ссылочное ранжирование;
- цитирование;
- количество ссылок;
- поисковые слова;
- индексация поисковиками.
SEO модуль + Веб-аналитика
Инструменты для поисковой оптимизации по страницам:
- представляется вся информация, которая нужна пользователю для модификации страницы;
- в публичной части выводится базовая информация по контенту страницы;
- отображается специальная информация о странице: частота индексации поисковиками, запросы, которые приводят на эту страницу, дополнительная статистическая информация;
- дается наглядная оценка результативности работы страницы;
- возможность тут же вызвать необходимые диалоги и произвести изменения на странице.
Инструмент для поисковой оптимизации по сайту:
- отображается вся информация, необходимая для модификации сайта;
- базовая информация по содержимому сайта выводится в публичной его части;
- применительно ко всему сайту выводится: общее ссылочное ранжирование, цитирование, количество ссылок, поисковые слова, индексация поисковиками;
- наглядная оценка результативности работы сайта;
- возможность тут же вызвать необходимые диалоги и произвести изменения на сайте.
1С-Битрикс: Marketplace
Также в Битрикс имеется свой Маркетплейс, где есть несколько модулей для SEO оптимизации проекта. Они дублируют функции друг друга, так что выбирайте по цене и функциям.
Простое управление мета-тегами для SEO
Бесплатный
Модуль, который позволяет добавить уникальные SEO-данные (title, description, keywords) на любую страницу сайта, включая элементы каталога.
http://marketplace.1c-bitrix.ru/solutions/kaycom.oneplaceseo/
SEO-инструменты
Платный
- Управление ЧПУ сайта на одной странице.
- Возможность переопределения заголовков, и мета-тегов страниц.
- Возможность установки редиректов.
- Тестирование OpenGraph-тегов.
- Последний заход реального бота Гугла или Яндекса (отложенная проверка валидности бота по его IP-адресу).
- Список переходов на ваши страницы, поисковый трафик
- Подсчет количества лайков к вашим страницам, сторонним сервисом
http://marketplace.1c-bitrix.ru/solutions/asd.seo/#tab-action-link
SEO инструменты: Управление мета-тегами PRO
Платный
Инструмент для автоматической генерации мета тэгов title, description, keywords, а также заголовка h2 для ЛЮБЫХ страниц сайта.
- использование правил и шаблонов;
- применение правила с учетом таргетинга;
- возможность настройки проекта на ЛЮБОЕ количество ключей;
- централизованное управление мета-тегами на любых проектах;
- оперативный контроль состояния мета-тегов на любой странице проекта.
http://marketplace.1c-bitrix.ru/solutions/alexkova.megametatags/
Инструменты SEO специалиста
Платный
Модуль позволяет:
- Устанавливать мета-теги (title, keywords, description).
- Принудительно менять h2 (заголовок страницы), устанавливаемый любыми компонентами на странице.
- Устанавливать признак канонического адреса.
- Устанавливать до трех SEO-текстов в любое место страницы с использованием визуального редактора или без него.
- Многосайтовость.
- Редактировать все вышеуказанное как "с лица" сайта, так и из админки.
- Устанавливать и использовать модуль на редакции Битрикса "Первый сайт".
http://marketplace.1c-bitrix.ru/solutions/intervolga.seo/
ASEO редактор-оптимизатор
Платный
Модуль позволяет задать уникальные SEO данные (title, description, keywords) и изменить контент для HTML-блоков на любой странице сайта, имеющей свой URL, либо для определенного шаблона URL на основе GET-параметров.
http://marketplace.1c-bitrix.ru/solutions/ipol.aseo/
SeoONE: комплексная поисковая оптимизация и анализ
Платный
- Настройка "URL без параметров".
- Настройка "META-данные страниц".
- "Статичные" — здесь вы сможете легко задать уникальные meta-данные (keywords и description) для страницы, а также уникальный заголовок браузера и заголовок страницы (обычно h2).
- "Динамические" — эта настройка аналогична предыдущей. Отличие заключается лишь в том, что она создается для динамически генерируемых страниц (например, для каталога товаров).
- Настройка "Подмена адресов" позволяет задать вторичный URL для страницы.
- Настройка "Экспресс-анализ". На этой странице вы сможете добавить неограниченное число сайтов для анализа.
http://marketplace.1c-bitrix.ru/solutions/imyie.seo1/
ЧПУризатор (выставляем символьный код)
Платный
Модуль позволяет выставить на сайте символьные коды для элементов и разделов в автоматическом режиме.
http://marketplace.1c-bitrix.ru/solutions/imyie.chpurizator/
Linemedia: SEO блоки на сайте
Платный
Предоставляет компонент, который позволяет добавить несколько SEO-блоков текста на любую страницу, установить meta-информацию о странице.
http://marketplace.1c-bitrix.ru/solutions/linemedia.seo/
Ссылка на разделы и элементы инфоблоков
Платный
С помощью данного модуля в стандартном визуальном редакторе появляется возможность добавлять и редактировать ссылки на элементы/разделы инфоблоков.
http://marketplace.1c-bitrix.ru/solutions/studio7spb.iblocklink/
Веб-аналитика в 1C Bitrix: Яндекс Метрика и Google Analytics
Существует несколько вариантов размещения счетчиков в cms:
Яндекс Вебмастер и Google webmaster в 1C Bitrix
Да , чтобы добавить сайт в сервис Вебмастер (как в Гугл, так и в Яндекс) существуют встроенные решения, но мы настойчиво рекомендуем напрямую работать с этими сервисами.
Потому, что:
Если вы только создаете сайт и задумались о том, насколько 1C Bitrix подходит для продвижения в поисковых системах и нет ли в нем каких-то проблем, то беспокоиться не нужно. Движок является лидером среди платных cms на рынке и уже очень давно, все seo специалисты (я не только про нашу студию говорю) уже не раз сталкивались с Битриксом и у всех есть опыт.
Продвижение сайта на 1C Bitrix не отличается от продвижения на других cms или самописных движках. Различия можно увидеть лишь в инструментах для оптимизации, о которых мы написали выше.
Но стоит помнить о том, что инструменты сами по себе не продвинут ваш сайт. Здесь нужны специалисты, которые правильно их настроят.
Кстати, у нас полно статей-инструкций, в которых много практических советов с историей многолетней практики. Конечно, мы думали над тем, чтобы наладить тематическую рассылку, но пока не успеваем. Так что удобней всего подписаться на группу нашего блога, куда мы сразу расшариваем новые статьи, как только они появляются в блоге.
semantica.in
Bitrix optimize image - OptiPic plugin to image compression for Bitrix
The 1 C-Bitrix system is considered to be one of the most popular not only on the Russian market, but also among foreign developers. It offers the convenience of site maintenance and flexibility of settings.
The 1 C-Bitrix system is used by sites of diverse complexity: news agency sites, business card sites, social media sites, e-stores and etc. However, over time the pages are loaded more slowly.
The core of the problem is Bitrix image optimization which is not performed by the CMSown means and has to be fulfilled by the third-party tools. In order to make pictures occupy less disk space and get loaded faster one should use a plugin to optimize images in Bitrix. The solution for that is OptiPic plugin.
Website image optimization in Bitrix through OptiPic allows accelerating the website loading by 2-3 times. Practice has shown that the resources do load faster, which is confirmed by the users themselves. This is especially critical for online stores and catalogs, because the customers might not wait for the page to load and leave for the online competitors.
Image compression in Bitrix
OptiPic plugin for image compression in Bitrix is built on an algorithm that identifies the technical data in the image file and removes them. These data do not affect the quality and external view of the picture, but nevertheless affect its size. In some cases, technical data take up to 90% of the file size.
That is the reason why OptiPic plugin is used for image compression in Bitrix. The average image reduction is 70%. Besides, plugin needs to be setup once and afterwards it keeps working both with the pictures that are already available on the site and with the newly uploaded ones.
Website image compression in Bitrix runs in the background and does not require large computing power. Nothing changes for the website visitors apart from accelerated web page loading. Administrators will be able to see how the plug-in frees up space on the hard disk of the server by reducing the size of images.
The optimization of pictures in Beatrix will no longer require manual administrator intervention. OptiPic plugin should be setup once and then all necessary operations will be performed automatically.
How to get started with OptiPic service for 1С-Битрикс for image compression?
Register and add your site to your personal account
After completing registration, you will receive an email with a link for activating your account. Follow that link. Next on our site enter your personal account Profile > My Sites click the Add Site, button, specify the URL of your site and click Connect Site.
Download and install the plugin on your site
After your site is added to the system, go to the Download plugin tab.
There you need to download the archive with the plugin. Unpack this archive and upload it to your site (to the root folder of the site). As a result, you should see theoptipic.io folder in the root of the site with this structure:
- optipic.io
- config.php
- help.php
- index.php
On your site after that such page should be work http://your-domain.com/optipic.io/index.php.
Select a package and fund your account
After you upload the plugin to your site, you will need to activate the indexing of the site in the site settings and wait for the OptiPic system to perform the first indexing of your site - it will be done within 24 hours. If you want to speed up the process - manually submit your site for indexing.
After the first indexing is completed, the system will show the number of images (the number of gigabytes) that will be found on your site. You can do this on the Compression index and statistics tab.
Now when you have the number of images on your site - purchase the package you need and start compression in the site settings.
Please wait. The site is being analyzed.
Soon you will be redirected to the verification results page.
optipic.io
Ускорение сайта на Битрикс
Дата создания: 10.07.2015
Битрикс довольно сложная и большая система, очень большая, настолько большая, что у неё есть свои тонкости работы практически во всех аспектах разработки и поддержки. В данной статье я расскажу о специфичных моментах в ускорении работы сайта на этой CMS, но, конечно же, приёмы из этой статьи остаются более чем актуальными.
Настройка системы
В админпанели CMS есть много полезных кнопок и настроек, распишу по пунктам.
Кеширование
Включите кеширование! ("Автокешировние", /bitrix/admin/cache.php?lang=ru). Это, наверное, самое главное, что можно сделать, так как запросы к БД - одна из самых медленных операций в вебе, а встроенный механизм кеширования снижает их количество в теории до нуля, в самом плохом случае он всё равно уменьшит их количество на пару порядков.
На последних версиях Битрикса нет смысла настраивать работу с html-кешированием (третья вкладка), так как появилась технология "Композитный сайт", который заменяет данный механизм. Подробно об его настройке будет написано позже.
Оптимизация css
В настройках главного модуля есть опции, которые сильно помогут вам с размером страницы. Названия говорят сами за себя:
Для правильной работы этого механизма вы должны подключать стили шаблона через SetAdditionalCSS, а скрипты через AddHeadScript, это позволит переносить скрипты вниз страницы. "Подключать минифицированные версии CSS и JS файлов" означает, что если у вас рядом с файлом лежит файл с тем же именем и расширением, но перед расширением стоит ".min", то Битрикс подключит его, удобно.
CDN
О роли CDN уже было упомянуто в этом разделе в статье "Общие принципы ускорения сайтов", здесь стоит отметить лишь то, что в Битриксе есть успешная кнопка "Включить ускорение сайта" ("Ускорение сайта CDN", /bitrix/admin/bitrixcloud_cdn.php?lang=ru). Учтите, что она работает только при активной лицензии.
Статистика
Я бы рекомендовал отключить сбор статистики (в модуле "Веб-Аналитика" нужно отключить все сохранения). Наверняка, вы подключили хотя бы метрику от Яндекса, так что, как минимум, нет смысла дублировать этот функционал (к тому же как-то странно она работает), тем более на своём сервере.
Обновления
Обновиться - всегда хорошая идея, да и глупо не делать этого в столь дорогом продукте. Новые обновления улучшают работу с кешем, уменьшают количества запросов, оптимизируют код и делают много чего ещё хорошего. Сделайте бекап и обновитесь.
Панель производительности
В Битриксе есть страница настроек "Панель производительности" (/bitrix/admin/perfmon_panel.php?lang=ru), она сильно поможет вам в оптимизации сайта, проведёт множество тестов, выявит ошибки и недочёты, подскажет пути исправления. Просто выполняйте её рекомендации и точно заметите разницу.
Работа с компонентами
В 1С-Битрикс практически вся информация выводится через компоненты. В рамках данной статьи я не буду объяснять что это такое и как с ними работать, но расскажу как нормализовать их работу в целях быстродействия сайта.
Используйте подходящие компоненты
Не очень очевидный шаг. В большинстве случаев вы используете при работе только стандартные компоненты, меняя лишь их шаблоны вывода, и это правильно. Для вывода элементов инфоблока вы используете news.list, а для вывода товаров catalog.section.
В основном компоненты не взаимозаменяемые, но есть, к примеру, пара компонентов sale.basket.basket.line и sale.basket.basket.small, которые очень часто оба подходят к шаблону сайта. Необходимо понимать, что sale.basket.basket.line совершает меньше запросов к бд, поэтому очевидно, что выбрать надо его. Обращайте на это внимание при выборе компонентов.
Используйте стандартные компоненты
Иногда вы можете подумать, что работу какого-то компонента можно ускорить, создав свой со своим component.php, и иногда даже будете правы, но я бы рекомендовал использовать дефолтные хотя бы только из-за интеграции с ядром.
Здесь есть несколько причин.
- Во-первых, механизм кеширования в Битриксе довольно скользкая тема и нет ничего более заточенного под работу с ним, чем родные компоненты. Да и если нет, то новые обновления когда-нибудь решат этот вопрос.
- Во-вторых, обновления. Со временем они улучшают всё.
Подключение компонентов
Очень редко, если, вообще, когда-либо ваш шаблон будет меняться в зависимости от группы пользователя, поэтому у всех компонентов необходимо убрать параметр "Учитывать права доступа" (выставить "CACHE_GROUPS" в "N"). За счёт этого кеш будет создаться лишь однажды и показываться всем группам пользователей, а это сэкономит нам количество обращений к БД и место на сервере.
Также там, где у вас компоненты подключены с каким-то условием по фильтру (или фильтрации даже и близко нет), стоит включить "Кешировать при установленном фильтре" ("CACHE_FILTER" => "Y"), иначе на каждом хите будут выполняться лишние запросы.
Если не надо выводить количество товаров в списке категорий, отключите подсчёт элементов в catalog.section.list ("Показывать количество элементов в разделе", "COUNT_ELEMENTS"). Это сэкономит сотни запросов.
Стили и скрипты шаблона компонента
В Битриксе шаблон компонента может подключать свои собственные стили и js-скрипты, поэтому хорошим шагом будет вынести js и css из шаблона сайта в компоненты там где это возможно, тем самым подключая на странице только нужный код, что уменьшает размер страницы. Да и в плане поддержки это правильное решение.
Несказанные очевидности из прошлой статьи
Некоторые моменты не были рассмотрены в данной статье, так как они вытекают из предыдущей и Битрикс не привнёс в них свою специфику.
Как и везде вам также надо самим следить за своим кодом. Старайтесь оптимизировать тот код, который вы пишите в result_modifier.php и component_epilog.php. Если вы работайте со своими компонентами и модулями, добавляете код в php_interface, и они тормозят сайт, то это совсем не по вине Битрикса. То же самое касается css и js на страницах.
Обязательно сжимайте картинки. Для небольшого упрощения этой задачи зайдите в настройки инфоблока и настройте создание картинки анонса нужного размера из детальной картинки с уменьшением размера. Это к тому же ещё и упростит жизнь контент-менеджера.
Заключение
Держите эти советы в голове при разработке сайта на 1С-Битрикс, они не самые очевидные, но сильно помогут вам в вашем деле.
Похожие статьи
aristov-vasiliy.ru