Композитный сайт
Уникальная технология производства сайтов объединяет в себе высокую скорость загрузки статического сайта и все возможности динамического сайта.
Пользователь мгновенно получает контент страницы.
Почему это выгодно?
Отклик сайта
в 100 раз быстрее
Лучшее ранжирование
сайтов в Google и Яндекс
Значительный рост
конверсии интернет-магазина
Дайте своему сайту преимущество
перед конкурентами
Любой сайт на платформе «1C-Битрикс» может быть разработан по композитной технологии
Динамика загрузки страницы
Людям важно, чтобы страница мгновенно отображалась в браузере
Обычный Композитный
Динамические данные
JavaScript
Изображения
2.5-4.5 сек.
Отображение у пользователя
Отображение у пользователя
Как это работает?
Вы не заметите технических сложностей, вы просто будете знать, что ваш сайт быстрее других!
Страница разделяется на 2 соcтавляющие: статическую
и динамическую
Совершенно новый цикл загрузки страниц
Статическая часть кешируется и отображается мгновенно
Пользователь сразу видит содержимое и может работать с ним
Динамическая часть подгружается в фоновом режиме
и кешируется в браузере посетителя
1С-Битрикс: Управление сайтом
По композитной технологии могут работать все сайты, разработанные на платформе «1С-Битрикс: Управление сайтом»
«1С-Битрикс: Управление сайтом» — профессиональная система управления веб-проектами, универсальный инструмент для создания и управления современным интернет-проектом: корпоративных сайтов, интернет-магазинов, информационных порталов, сайтов сообществ, социальных сетей и других веб-проектов.
Технология «Композитный сайт» от 1С-Битрикс
Мы расскажем что это, как работает, когда полезно и почему иногда эффект трудно заметить.
Технология композитного сайта от 1С-Битрикс
Суть статьи одним абзацем:
Технология композитного сайта — способ отдачи страницы сервером, когда сначала (очень быстро) выдается заранее сохраненный кешированный контент, затем параллельно подгружается графика и изменившаяся с момента кеширования информация. Композит дает комфорт посетителям и скорость индексации поисковиками.
Любой сайт на Битриксе может относительно просто быть переведен на Композит.
Ускорение в 100 раз — правда, но такой эффект наблюдается не всегда.
Композит — это новая технология? Ее придумал Битрикс?
Композит — изящное, красивое и простое совмещение существовавших ранее технологий. Это html-кеширование, ajax-подгрузка информации, учет времени модификации данных.
Главное достижение технологов 1С-Битрикс в том, что они нашли способ без революционных переработок платформы внедрить технологию в уже работающие сайты.
Это маркетинг или реально полезно?
Это реально полезно, и вот почему:
- Сайты, которые отвечают медленно, не нравятся поисковым машинам. Поисковая машина считает время, которое проходит между запросом и началом загрузки ответа. С композитом оно будет намного меньше.
Сайт начинает лучше индексироваться. - Если посетитель на сайте не впервые, есть кешированная версия страницы и загруженная графика, он заметит ускорение загрузки.
Сайт начинает «летать».
Это маркетинг:
- Такая технология пока есть только у 1С-Битрикс.
- Результат «ускорение в 100 раз» на практике заметить почти невозможно. Воспринимаемое человеком время загрузки состоит из многих составляющих.
Композит ускоряет только одну — начало передачи контента от сервера браузеру.
Композитный сайт не избавляет разработчика и администратора сайта от необходимости серверной и клиентской оптимизации.
Как работает композитный сайт?
- При первом открытии страницы сайта с «композитом» сервер сгенерирует кешированную версию html-кода, а браузер запомнит скрипты, графику, css-таблицы.
Страница имеет обычный http-статус «200 OK».
В зависимости от скорости работы вашего сервера и соединения с Интернетом этот шаг занимает десятые доли секунды и более. Можно встретить и 1-2-5 секунд.
Для нашего сайта это более 600 ms. Немало. - При втором открытии той же страницы сервер и клиент поймут что все заново можно не генерировать и не качать. Сервер отдаст кешированную версию со статусом «304 Not Modified».
Загрузка заняла 49 ms. Более чем в 12 раз быстрее.
Затем специальный js-код обратится к серверу с вопросом «что-то новенькое есть?». Сервер подумает и отдаст изменения. Это может занять некоторое время, но ни пользователь, ни поисковая машина от этого не пострадают.
Я не вижу скорости. В чем подвох?
Во-первых, убедитесь что сайт использует «композитную» технологию. Как — написано в следующем разделе.
Во-вторых, серверное время это далеко не все, что влияет на загрузку.
Например, очень приличный (с точки зрения веб-разработки) и почти лишенный статического контента сайт Правительства РФ government.ru загружается так:
После загрузки HTML-кода страницы происходит еще много всего.
66 запросов на легкий и быстрый сайт.
Больше секунды на передачу html, больше 4 секунд на всю статику.
Неоптимизированный и перегруженный картинками, стилями и скриптами сайт может грузиться намного дольше. И композит ему мало поможет.
Даже если у вас работает композит, сайт может загружаться и работать медленно по другим причинам:
- неправильная работа компонентов;
- неправильная настройка сервера;
- проблемы верстки и клиентских скриптов;
- несоблюдение стандартов разработки 1С-Битрикс;
- проблемы интеграции с 1С.
В сайте, как и в человеке, все должно быть прекрасно, и композит — важная составляющая качества.
Есть проблемы — подумайте, не заказать ли вам аудит качества сайта.
Как понять, «на композите» сайт или нет?
Долгий и правильный способ — изучение лог-файлов. Покажем простой.
Откройте браузер Chrome в режиме «инкогнито», нажмите F12 и откройте вкладку Network. Обновите страницу сайта несколько раз. Если вы видите 304 Not modified в колонке Status у первой строки — html-документа, то все работает.
Что увидит робот поисковой системы при открытии сайта «с композитом»?
Все будет хорошо. Робот увидит полноценную страницу с последней версией закешированного html-кода. И увидит он ее очень быстро. Сервер не будет напрягаться, и вы не напрягайтесь.
Как сайт перевести на композит?
Это займет от 5 до 50 часов работы. Обратитесь к партнеру с полученной и подтвержденной компетенцией .
Композитный сайт 1C-Битрикс
Композитный сайт является результатом совмещения технологии html-кеширования и ajax-подгрузки информации, произведенного компанией 1С-Битрикс. Включение этой технологии приводит к тому, что сайт становится быстрым и удобным в использовании.
Рассмотрим преимущества технологии:
- Удобство для пользователей сайта. С композитом сайт будет открываться в десятки и даже сотни раз быстрее, что уменьшит количество отказов.
- Улучшенное ранжирование в поисковой системе. Композит увеличивает шансы попасть сайту в топ результатов поисковой системы Яндекса и Гугла.
- Улучшение конверсии. Проще говоря, сайт начинает “летать”, что доставляет удобство перемещения по сайту и увеличивает конверсию.
Технология «Композитный сайт” доступна на любой из имеющихся редакций 1С-Битрикс: Управление сайтом.
Принцип работы композита
В процессе работы технология разделяет страницы на статическую и динамическую составляющую:
- Статическая часть кешируется на стороне сервера, сохраняется в браузер пользователя и отдается сразу. Такая страница содержит данные, которые видят все посетители сайта – это информационные страницы, страница с товарами, список новостей, категории товаров на главной и т.п.
- Динамическая часть подгружается в фоновом режиме после загрузки страницы и также кэшируется браузером. Здесь происходит подгрузка таких данных, как информация пользователя, корзина, цены, баннеры и т.п.
В итоге такого разделения страница загружается практически мгновенно. Пользователю не приходится ждать загрузки. Он сразу увидит содержимое страницы и сможет производить какие-либо действия на странице, а дополнительный фоновый запрос подгрузит динамические данные.
На следующей картинке показано как при помощи технологии “Композитный сайт” можно ускорить открытие сайта.
Подробно о том, как работает технология «Композитный сайт» написано на официальном сайте Битрикс.
Нужен ли композитный режим?
Композитный сайт будет полезен для сайта любой сложности и направленности. Если сайт простой и достаточно быстро отдает страницу, то нет необходимости делать его еще быстрее. В другом случае, композитный сайт полезен, особенно, если на сайте имеются тяжелые элементы и изображения.
Как включить композит?
Процедуру включения и проверки работы композита лучше выполнять на отдельном сайте, чтобы не навредить работе пользователей. Включение композита производится на странице: ваш_сайт/bitrix/admin/composite.php.
Существует два режима работы композита. Для включения композита можно воспользоваться режимом Автокомпозита. Этот режим удобен тем, что для включения не нужно вникать в смысл работы технологии, что-то настраивать и привлекать разработчика. Битрикс сам, в автоматическом режиме, решает какие элементы страницы статические, а какие – динамические. Но иногда он ошибается и его нужно проверить.
Для проверки работы композита существует плагин для Google Chrome Bitrix Composite Notifier. С его помощью можно быстро понять работает композит или нет. Если композитный кэш работает на странице, то значок плагина загорится зеленым цветом.
Второй способ проверки – через отладочную панель браузера «Network» с фильтром по «Doc» (как на скриншоте ниже).
Инструкция по настройке Композита
«Композитный сайт» — это технология, запатентованная компанией 1С Битрикс. Принцип ее работы: выдавать пользователю страницу из быстрого(html) кэша и при загрузке обновлять нужные блоки асинхронными запросами(ajax).
Цель композитного кэширования — ускорение работы сайта. Скорость открытия страниц важна для пользователя и для сканирования веб-ресурса поисковыми роботами яндекса и гугла.
1. Делаем настройки в админке
В административном режиме переходим на страницу настроек Композитного сайта: Настройки -> Настройки продукта -> Композитный сайт
Включаем кнопку Композит.
Устанавливаем значения полей:
Хранить кеш: можно оставить в файлах
Список доменных имен (каждое в новой строке): укажите свой домен, если настроена многосайтовость, то несколько доменов.
Маска включения: *.php;*.html;*/;* — указываем, что кэшировать будем все url, которые заканчиваются на «.php», «.html» или «/».
Маска исключения: не все страницы нужно композитить, это касается служебных страниц и страниц с ограниченным доступом. Если они попадут в кэш, то будут доступны всем, поэтому указываем страницы-исключения.
Сохранять на диск только страницы без параметров: если кэшировать страницы с параметрами — нужно выделять большый объем памяти под файлы кэша, т.к адресов с get-параметрами может быть много, их генерируют фильтры, сортировка, постраничная навигация и т.д. Если у вас есть несколько свободных гигов, можно не ставить галочку.
Дисковая квота (мегабайт): в зависимости от проекта, можно поставить 100 или 100000 мегабайт; для среднего магазина на 3-4 тысячи товаров достаточно 5Гб. Если вы установите меньшую квоту чем требуется, файлы композитного кэша не будут сохраняться после превышения квоты.
2. Включаем логи
Вторым шагом включим константы в /bitrix/php_interface/dbconn.php, они нам потребуются для отладки, в файле log.txt будут сохраняться записи об ошибках и успешном создании композитного кэша страницы.
Для этого переходим: Контент -> Структура сайта -> Файлы и папки -> bitrix -> php_interface .
Находим файл dbconn.php и нажимаем Редактировать как PHP
Далее устанавливаем в конце файла эти две сточки:
define( "BX_COMPOSITE_DEBUG", true ); define( "LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"]."/log.txt" );
3. Настройка компонентов
Теперь самое интересное. Компоненты сайта будем делить на статические и динамические.
Статические — которые выдают одинаковый код для любого пользователя. Например, это может быть меню каталога (bitrix:menu), список разделов(catalog.section.list), список новостей(news.list), детальная страница новости(news.detail) и т.д
Для таких компонентов, в шаблонах, после объявления пролога включаем композит:
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); $this->setFrameMode(true);
В метод setFrameMode можно передать true или false, соответственно включить и отключить композит.
Динамические компоненты нужно обновлять для каждого пользователя. К таким компонентам относятся малая корзина(bitrix:sale.basket.basket.line) или форма авторизации(bitrix:system.auth.form). Если, к примеру, мы не обновим блок корзины, то он выдаст нам информацию из кэша. А зачем пользователю чужая корзина? Для шаблонов динамических компонентов код выглядит так:
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); $this->setFrameMode(true); $this->createFrame()->begin('');
Теперь, если мы хотим кэшировать компоненту, но не полностью, а частично, например, хотим обновлять цены в списке элементов (bitrix:catalog.section)
$frame = $this->createFrame('price-index', false)->begin() echo $arFields[PRICES][BASE][PRINT_VALUE_VAT]; $frame->beginStub() echo 'руб.'; $frame->end()
, тогда при загрузке сайта пользователь увидит
, а после обновления асинхронным запросом увидит то, что возвращает
echo $arFields[PRICES][BASE][PRINT_VALUE_VAT];
Если нам нужно закэшировать часть кода вне компоненты, например, в шаблоне сайта, используем такой код:
\Bitrix\Main\Page\Frame::getInstance()->startDynamicWithID("user-block"); if( !$GLOBALS["USER"]->IsAuthorized() )< echo 'Авторизация'; >else< echo 'Мой профиль'; > \Bitrix\Main\Page\Frame::getInstance()->finishDynamicWithID("user-block", "");
В большинстве случаев, для настройки «Композитного сайта» этого достаточно.
Также можно применить:
6. Используем кэш браузера. Подгружает статику с прошлого хита (для малой корзины) $frame=$this->createFrame()->begin(''); $frame->setBrowserStorage(true); 7. Использование анимации для баннера (плавное появление контента)$frame = $this->createFrame('top_banner')->begin(''); $frame->setAnimation(true);
Когда вы установите для всех шаблонов компонентов настройки для композита, можно проверить страницу. Для этого откройте ее в браузере под не авторизованным пользователем и посмотрите: в подвале должен появиться баннер «Быстро с 1С Битрикс».
Если такой баннер не появился, то смотрим файл логов, он находится в корне сайта и называется log.txt.
В нем будут указаны компоненты, для которых не настроено композитное кэширование.
Если все-таки у вас возникнут проблемы с настройкой Композитного сайта — обращайтесь, помогу.