Содержание
Gzip-сжатие в WordPress: что это, для чего нужно и как использовать
В статье вы узнаете, зачем сжимать данные на сайте, как включить сжатие gzip в WordPress и как проверить корректность его работы.
Наверняка вы хоть раз пользовались программами gzip или winRAR. Это архиваторы, которые позволяют сжимать данные (один файл или несколько) и упаковывать их в архив. В отличие от полноразмерных файлов, его можно быстро скачать или передать на другой носитель.
Рассмотрим, что это такое и как используется на сайтах.
Что такое gzip-сжатие и для чего нужно
Когда пользователь впервые попадает на сайт, его браузеру нужно загрузить все файлы, из которых состоит страница. Для этого браузер отправляет запрос на сервер, на котором расположен сайт. Сервер, в свою очередь, отдаёт в ответ запрошенные данные.
Если файлы слишком большие, пользователю приходится ждать загрузки. В этот момент он видит перед собой белую страницу или не целиком прогрузившийся контент.
Чем дольше он ждёт, тем ниже его лояльность. По исследованию Google, если страница загружается больше 3 секунд, каждый второй пользователь просто закроет страницу.
Чтобы этого избежать, владельцы сайтов используют gzip-сжатие. Это инструмент, который позволяет уменьшить размер файлов в тот момент, когда сервер отдаёт их браузеру пользователя. За счёт этого уменьшается вес страницы и увеличивается скорость загрузки.
Как работает сжатие gzip
Даже если ваш сайт написан не вручную, а создан с помощью CMS, в его составе есть HTML и CSS-коды. Именно их в совокупности с картинками и другими файлами сервер передаёт пользователям.
В структуре HTML и CSS-кода есть повторяющиеся или лишние элементы: строки со свойствами и пробелы. Утилита находит их и «сокращает» во время обмена между сервером и браузером пользователя. Таким образом, размер передаваемых файлов уменьшается и они передаются быстрее.
Утилита может сжать данные в несколько раз в зависимости от уровня (от 1 до 9). Как правило, в программах используется 3–5 уровень gzip-сжатия. Он позволяет сократить данные без потери качества и не сильно нагружает процессор.
Gzip-сжатие увеличивает скорость загрузки сайта, но создаёт дополнительную нагрузку на сервер. Как правило, мощности современных серверов хватает на сжатие даже на минимальных тарифах хостинга.
Как проверить gzip-сжатие онлайн
Большинство хостинг-провайдеров сейчас предоставляет возможность включить gzip-сжатие, и зачастую на сайтах пользователей оно работает автоматически. Однако, если сайт создавался несколько лет назад или вы замечаете проблемы со скоростью загрузки, стоит проверить, корректно ли работает сжатие.
Чтобы удостовериться, всё ли хорошо с оптимизацией сайта, воспользуйтесь бесплатными сервисами. Например, проверкой CY-PR или другой аналогичной (WebSitePlanet, GIDNetwork и т. п.).
Сервис показывает размер несжатого контента и процент сэкономленного трафика. Это результаты проверки сайта, у которого всё в порядке с gzip:
Проверка gzip-сжатия онлайн в CY-PR
А вот противоположный пример:
Если при проверке вы увидели результат, как на второй картинке, или вас не устраивает процент сжатия, ускорьте сайт по инструкции ниже.
Как включить сжатие gzip
Есть несколько способов включить эту настройку для сайта:
- вручную добавить код в конфигурационном файле htaccess (для web-сервера Apache) или nginx.conf (для Nginx),
- воспользоваться готовыми плагинами.
Первый способ более универсальный, но для реализации потребуются технические навыки и доступ к настройкам сервера.
Мы разберём более простой вариант, для начинающих. Он подойдёт в случае, если ваш сайт создан на CMS WordPress. Включить сжатие можно с помощью бесплатных плагинов.
Создайте сайт легко
Чтобы не тратить время на настройку домена, хостинга и CMS, закажите услугу REG.Site.
В услугу входит хостинг, WordPress, десятки шаблонов и SSL-сертификат. Вам не понадобятся дополнительные настройки. Просто закажите услугу и сразу приступайте к редактированию шаблона.
Заказать
Сжатие для WordPress
- org/HowToStep»>
-
2.Перейдите в раздел Плагины и нажмите Добавить новый:
-
3.В строке поиска справа введите название плагина:
- W3 Total Cache — многофункциональный плагин, полезный не только для настройки сжатия, но и для других SEO-показателей: кэширование, адаптивной версии сайта, интеграции в CDN. Чтобы по максимуму использовать его возможности, придётся разобраться в «начинке»;
- Enable GZIP compression — простой плагин, в котором есть только две функции: включить и отключить gzip-сжатие;
- WP Fastest Cache — похож на W3 Total Cache, но в нём можно настроить 3 режима кэширования, в том числе для продвинутых пользователей с корректировкой файла . htaccess.
-
4.Нажмите Установить, а затем Активировать в том же блоке:
Как включить на примере W3 Total Cache
1.
Авторизуйтесь в административной панели CMS.
Дальнейшие действия будут зависеть от выбранного плагина.
W3 Total Cache
Enable GZIP compression
WP Fastest Cache
Здесь всё настраивается автоматически. Если хотите перестраховаться и проверить:
-
5.В левом меню наведите курсор на строку Preferences и перейдите в раздел Browser Cache:
-
6.Напротив пункта «Enable HTTP (gzip) compression» должна стоять галочка:
- org/HowToStep»>
-
6.Нажмите Enable Gzip Compression:
5.
В левом меню наведите курсор на раздел Настройки и выберите последний пункт списка — Gzip Compression:
-
5.Кликните по названию плагина в основном меню слева, поставьте галочку напротив строки «Gzip» и нажмите Submit:
Готово, теперь страницы сайта будут загружаться быстрее.
С помощью бесплатного плагина вы сможете включить gzip-сжатие и увеличить скорость загрузки страниц. Это важный момент не только для удобства (юзабилити), но и для улучшения позиций сайта в поисковых системах. Чтобы оптимизировать сайт, наряду с gzip-сжатием, вам потребуется настройка кэширования, работа с изображениями и другие параметры.
Помогла ли вам статья?
Да
6
раз уже
помогла
Настройки Сервер — Документация OpenCart
На вкладке «Сервер» в разделе «Настройки» отображаются следующие поля:
- Использовать SSL: Включите HTTPS в Вашем магазине. Для этого требуется действительный сертификат SSL, установленный на Вашем веб-сервере.
- Использованные общие сеансы: Позволяет разделить информацию о сеансе, сохраненную из корзины покупок, между несколькими доменами/магазинами.
- Robots: Добавление или удаление пользовательских агентов ботов от доступа к общим сеансам.
- Используйте SEO URL: Включите функцию ключевых слов SEO OpenCart для страниц информации, категории, производителя и продукта. Для этого требуется правильный файл .htaccess.
- Разрешенные расширения файлов: Добавить или удалить форматы файлов, которые могут быть загружены на сервер вашего магазина.
- Разрешенные типы пантомимы: Добавить или удалить разрешенные типы пантомимы.
- Разрешить забытый пароль: Позволяет администратору запрашивать новый пароль, если он забыт.
- Режим технического обслуживания: Ограничьте просмотр Вашего магазина для зарегистрированных пользователей-администраторов, пока Вы вносите изменения в свой магазин.
- Ключ шифрования: Введите комбинацию цифр и букв для шифрования личной информации.
- Уровень сжатия на выходе: Уровень сжатия HTTP, который будет использоваться в Ваших заголовках HTTP.
- Ошибки отображения: Отображать ошибки PHP, предупреждения и уведомления, создаваемые Вашим магазином. Это должно быть установлено в «Нет» для живого магазина.
- Ошибки журнала: Регистрировать ли ошибки PHP, предупреждения и уведомления, сделанные Вашим магазином.
- Имя файла журнала ошибок: Если журнал ошибок установлен в «Да», файл, в котором будут записываться ошибки.
- Google Analytics: Введите код, указанный для сайта магазина, в учетной записи Google Analytics.
ВидеоУрок
Эл. почта
Страна
АзербайджанАрменияБелоруссияКазахстанКиргизияМолдавияРоссияТаджикистанУзбекистан
Тип
Агентство
Ритейлер (продажи онлайн)
Независимый разработчик
Другое
Дополнительные подписки
Избранные сторонние акции
OpenCart Category and Product View пусто во внешнем интерфейсе
Я «унаследовал» существующую и работающую установку OpenCart 1. 5.2.1.
В целях тестирования я хотел создать сайт разработки на своем локальном сервере. Поэтому я установил его локально и скопировал БД.
В бэкенд захожу без проблем — магазины настроены, все товары и категории тоже есть.
Во внешнем интерфейсе я могу открыть домашнюю страницу магазина, и список категорий отображается правильно, включая количество товаров в каждой категории.
Однако, когда я пытаюсь просмотреть списки категорий или отдельных продуктов, я получаю пустую страницу.
Я не получаю ошибку PHP — я добавил
display_errors = 1; error_reporting = E_ALL; лог_ошибок = 1;
в php.ini в корневой папке корзины.
Из журнала ошибок OpenCart я получаю следующее сообщение об ошибке:
2013-03-13 18:51:15 — Уведомление PHP: Ошибка: столбец product_id не может быть нулевым
Номер ошибки: 1048
SELECT DISTINCT *, p [...] AND p2s.store_id = '5' в /path/to/root/system/database/mysql.php в строке 49
Есть идеи, как решить эту проблему?
** ОБНОВЛЕНИЕ: **
Полный запрос:
SELECT DISTINCT *, pd. name, pd.creator, pd.keyword, pd.circa, pd.year, pd.centre, pd.decade, pd .scenelocation, pd.fm_quicksearch КАК fm_quicksearch, p.image, m.name КАК производитель, (ВЫБЕРИТЕ цену ИЗ product_discount pd2 ГДЕ pd2.product_id = p.product_id И pd2.customer_group_id = '8' И pd2.quantity = '1' И ((pd2.date_start = '0000-00-00' ИЛИ pd2.date_start < СЕЙЧАС()) И (pd2.date_end = '0000-00-00' ИЛИ pd2.date_end > СЕЙЧАС())) ЗАКАЗАТЬ ПО pd2.priority ASC, pd2.price ASC LIMIT 1) КАК скидка, (ВЫБЕРИТЕ цену ИЗ product_special ps ГДЕ ps.product_id = p.product_id И ps.customer_group_id = '8' И ((ps.date_start = '0000-00-00' ИЛИ ps .date_start < СЕЙЧАС()) И (ps.date_end = '0000-00-00' ИЛИ ps.date_end > СЕЙЧАС())) ЗАКАЗАТЬ ПО ps.priority ASC, ps.price ASC LIMIT 1) КАК специально, (ВЫБРАТЬ баллы ОТ product_reward pr ГДЕ pr.product_id = p.product_id AND customer_group_id = '8') КАК вознаграждение, (ВЫБЕРИТЕ ss.name FROM stock_status ss ГДЕ ss.stock_status_id = p.stock_status_id И ss.language_id = '1') КАК stock_status, (ВЫБЕРИТЕ wcd. unit ИЗ Weight_class_description wcd ГДЕ p.weight_class_id = wcd.weight_class_id И wcd.language_id = '1') КАК weight_class, ( ВЫБЕРИТЕ lcd.unit ИЗ length_class_description lcd, ГДЕ p.length_class_id = lcd.length_class_id И lcd.language_id = '1') AS length_class, (выберите (r.sum + p.rat)/(r.tot + p.tot) из ( выберите COALESCE(j.sum,0) как сумму, COALESCE(j.tot,0) как tot из (выберите SUM(рейтинг) как сумму, COUNT(рейтинг) как tot, product_id из рейтинга, где product_id = '9206' группа по product_id) j правое соединение продукта на product.product_id = j.product_id где product.product_id = '9206') r, (выберите product_id, COALESCE(рейтинг,0) как rat, count(rating) как tot от продукта где product_id = '9206' и рейтинг > 0) p ) Рейтинг AS, p.sort_order FROM product p LEFT JOIN product_description pd ON (p.product_id = pd.product_id) LEFT JOIN product_to_store p2s ON (p.product_id = p2s.product_id) ЛЕВОЕ СОЕДИНЕНИЕ производитель m ON (p.manufacturer_id = m.manufacturer_id), ГДЕ p.product_id = '9206' И pd. language_id = '1' И p.status = '1' И p.date_available <= СЕЙЧАС() И p2s.store_id = '5'
ОБНОВЛЕНИЕ
Я подозреваю, что это как-то связано с конфигурацией MySQL или PHP. Потому что, когда я запускаю тот же запрос на живом сайте, он работает без сбоев.
ОБНОВЛЕНИЕ
Проблема связана с моей локальной установкой MySQL. При использовании онлайн БД все в порядке. Кто-то на форуме OpenCart - Link to Post указал следующее:
Эта ошибка возникает из-за запроса на вставку в конкретный вклад, который автор > непроверенно пытался добавить нулевое выражение, которое будет отклонено автоматически увеличивающимся полем, > особенно начиная с mySQL 5.1+. Эта методология от разработчиков mySQL была заблокирована много лет назад.
Свяжитесь с автором, чтобы решить эту проблему, заявив, что автоматически увеличиваемое поле НЕ >требует адресации в запросе, так как оно уже создает увеличенное значение >автоматически вместе с выполняемым запросом.
Это может быть примерно так. Сам запрос не является вставкой, но скорее всего имеет к этому отношение. Я посмотрю дальше в этом вопросе.
Изображения OpenCart и сжатие PDF
Бесплатная пробная версия и планы
Этот скрипт был протестирован с OpenCart и совместим со всеми серверами, на которых работает PHP. Это означает, что вам просто нужно загрузить папку с файлами на свой сервер, после чего вы можете начать сжимать все изображения и PDF этого сервера.
Документация: https://www.imagerecycle.com/documentation/how-to-compress-opencart-images-and-pdf использует наш сверхлегкий автономный скрипт, поэтому он всегда будет совместим с последней версией OpenCart и подключен к нашей последней версии API.
Настройка качества оптимизации изображения OpenCart Алгоритм имеет 2 уровня сжатия для изображений и один для PDF. На всех уровнях оптимизации мы сначала проверяем качество изображения, если оно уже слишком сильно сжато и его будет видно, мы автоматически пропускаем процесс сжатия.
Оптимизация изображения «Наилучшее сохранение» или «С потерями» Качество — лучший выбор для Интернета, вы сохраняете все визуальное качество при сжатии изображения до 80%
Исходное качество — лучший вариант, когда вы хотите сжать, но иметь возможность повторно использовать и изменять слой изображений, сохраняя 100% данных изображения. Изображение может быть сжато до 20 %
Сжатие изображений продуктов OpenCart
Когда вы загружаете изображение в контент OpenCart и используете определенные модули OpenCart, ваша система может создавать эскизы или сохранять изображения в кэше. Сжатие изображений OpenCart можно выполнить непосредственно перед изменением размера или кэшированием этого изображения или сразу после этого, выбрав конкретную папку сервера эскизов или папку кэша для сжатия.
Этот метод оптимизации предлагает следующие преимущества:
- Экономия ресурсов сервера (пространство)
- Избегание сжатия очень больших изображений
- Более быстрая загрузка медиа-менеджера при создании эскизов PDF
После установки скрипта вы можете запустить сжатие всей медиатеки OpenCart. Процесс оптимизации будет выполняться в фоновом режиме, что означает, что вы можете работать с OpenCart в течение этого времени, и вы получите электронное письмо, как только это будет сделано! Задача cron должна быть остановлена, и все.
Автоматическая оптимизация новых изображений OpenCart
Сосредоточьтесь на содержимом OpenCart, пока мы занимаемся сжатием изображений. Используя задачу cron, которая почти не требует ресурсов сервера, автоматически запускайте сжатие изображений и PDF с помощью серверов ImageRecycle.
Резервное копирование и восстановление изображений OpenCart за один месяц
Мы храним оригинальное и сжатое изображение (зашифрованное) OpenCart в течение срока хранения резервной копии (1 месяц). В течение этого периода вы можете вернуться к исходным изображениям, все восстановленные носители будут автоматически заменены в вашем магазине OpenCart.
Сжатие изображений и PDF-файлов для веб-сайтов OpenCart с использованием дополнительных учетных записей
Подписавшись на членство, вы получаете доступ к неограниченному созданию дополнительных учетных записей.