- 10 рабочих способов по сокращению времени ответа сервера
- Как сократить время ответа сервера
- Оптимальное время загрузки сайта
- Решение проблем со скоростью загрузки страницы
- Способы сокращения количества запросов к серверу
- Результаты оптимизации
- Итоги
- Ускорение и защита сайта | Айри
- Уменьшение времени ответа сервера
- Выясняем корень зол
- Причины большого времени ответа сервера
- Первоочередные меры по ускорению сервера
- Оптимизация скорости сайта: как уменьшить время ответа сервера
- Что такое TTFB?
- Как проверить TTFB?
- Использовать отладчик в браузере
- Получить данные из Google Analytics
- Использовать PageSpeed Insights
- Использовать Netpeak Spider
- Использовать сторонние сервисы
- Что может быть причиной большого TTFB?
- Как уменьшить время ответа сервера?
- Оптимизировать работу с базой данных
- Переехать на более производительный сервер
- Использовать акселераторы PHP
- Использовать серверное кэширование
10 рабочих способов по сокращению времени ответа сервера
Как сократить время ответа сервера
Появление Java-технологий навсегда изменило формирование дизайнов сайтов. Появились разные виды выплывающего меню, живые обои, дополнительное видео и графика. Эти нововведения привели к увеличению объема сайтов, что в свою очередь негативно повлияло на время их загрузки, незвисимо от того, на wordpress они или другой cms.
Фактически скорость загрузки сайтов равняется времени его отображения на экране браузера. Но этот процесс можно условно поделить на несколько отдельных этапов, каждый из которых имеет влияние на окончательный результат:
- Подключение к стороннему серверу;
- Получение ответа;
- Загрузка всей информации сайта (включая графику, видео, изображения и т.д.);
- Отображение страницы в окне браузера (компиляция).
Оптимальное время загрузки сайта
На этот вопрос нет однозначного ответа. Ведь все сайты имеют разный объем информации, следовательно, разное время загрузки. Задача владельца страницы как раз состоит в том, чтобы максимально уменьшить это время.
Идеальным вариантом считается тот, при котором страница загружается менее, чем за одну секунду. Но в некоторых особо тяжелых случаях результат в несколько секунд можно тоже считать оптимальным. Конечно же все зависит не только от размера сайта. Расположение сервера, скорость интернета пользователя, задачи веб-сайта – все это имеет важное значение для скорости загрузки страницы.
Множество корпораций проводили свои исследования в области замеров скорости загрузки. И все они закончились ожидаемым результатом. Ведь сокращение времени загрузки сайта даже на полсекунды в большинстве случаев давали отличные результаты:
- Большую конверсию;
- Увеличение времени просмотра;
- Увеличение чека и выручки в целом;
- Улучшение ранжирования в поисковиках;
- Меньшее количество отказов.
Все эти показатели имеют прямое влияние на прибыльность ресурса. Существует сервис (https://www.sharpedigital.com/seo/speed-conversion-rate-tool/), который показывает конверсию сайта относительно скорости загрузки.
Решение проблем со скоростью загрузки страницы
В первую очередь нужно уменьшить время ответа сервера. Чаще всего для проверки результатов используется сервис ping-admin.ru или webpagetest.org (здесь отсутствуют наши сервера, но для сравнения результатов он тоже подходит). Они подходят для сайтов с разными cms wordpress, joomla и другие.
Результат с ping-admin.ru до правок
Результат с webpagetest.org до правок
Время загрузки HTML
Результат с webpagetest.org до правок
Время полной загрузки страницы (включительно с фото- и видеоматериалами)
Как видим, результаты сайта довольно слабые. Время ответа сервера заняло больше одной секунды, а на отображение страницы ушло около 7 секунд. И того, десять секунд ожидания. Даже для популярного сайта это очень большой результат.
Способы сокращения количества запросов к серверу
Для того чтобы сократить время ответа сервера, необходимо провести ряд действий:
- Определить по логам самых затратных по времени операций. Далее следует исправление и удаление лишних. Упрощение серверной логики.
- Сократить базу данных. Удаление «мусора».
- Включить Gzip сжатие на сервере для поточного архивирования текстовых данных.
- Расширить кеш для CSS и JavaScript.
- Объединение всех стилей JavaScript и CSS в один файл (точнее в два файла – каждый для своего формата).
- Сократить порядок загрузки (стили CSS→ контент→JavaScript).
- Уменьшить код JavaScript и CSS (удаление пробелов и комментариев).
- Внедрение HTTP/2 для одновременной обработки большего количества запросов.
- Подключение Lazyload (загрузка изображений только во время прокрутки до них).
- Для того чтобы избежать двойной отрисовки отдельных частей элементов дизайна, необходимо перенести стили CSS с тела страницы в head.
- Согласование МЕТА-тегов с HTTP-заголовками.
- Внешне подключенные стили CSS и JavaScript необходимо перенести в общий файл стилей сайта. Это сократит общее количество запросов.
- Смена абсолютных URL на относительные (название сайта.ru/page→/page)
- Использование поддоменов для распределения части контента. Это позволяет сократить расстояние сервера и пользователя.
- Уменьшить размер изображений (сжатие).
- Связывание nginx и Apache. Это повышает скорость вычисления сервера.
- Настройка OPcache.
Результаты оптимизации
Результат с ping-admin.ru после правок
Результат с webpagetest.org после правок
Как видите, в результате подобных манипуляций удалось сократить время ответа сервера почти в десять раз: с одной секунды до 12 миллисекунд.
Результат с webpagetest.org после правок
Удалось уменьшить время отображения страницы на 5,8 секунд. Полная загрузка сайта составила чуть больше трех секунд.
Итоги
Если обобщить весь список проделанных манипуляций, то можно выделить некоторые общие действия:
- Оптимизация и настройка сервера;
- Уменьшить количество запросов, что позволит сократить время ответа сервера;
- Сжатие всей информации на странице (изображения, видео, скрипты);
- Использование облачных сервисов для распределения общей нагрузки.
Выше показаны не все способы увеличения скорости работы сайта. У каждого ресурса могут быть свои проблемы, но выше перечисленные действия можно считать самыми эффективными. Скорость работы сайта имеет прямое влияние на серию важных показателей, таких как:
- Ранжирование сайта в поисковике.
- Конверсию.
- Количество отказов.
- Размер получаемой прибыли.
Фактически перед владельцем сайта или оптимизатором стоит задача сократить объем сайта, что производит к увеличению скорости отображения.
Источник
Ускорение и защита сайта | Айри
Уменьшение времени ответа сервера
Время ответа сервера (хостинга вашего сайта) — первый кирпичик в здание оптимизации скорости сайта. Быстрый сайт начинается с быстрого хостинга или быстрого сервера. Как выяснить, что на сервере тормозит и как это исправить?
Выясняем корень зол
Первое, что мы делаем, — это проверяем ситуацию. Качественно протестировать время ответа сервера можно с помощью распределенной сети WEBO Pulsar или Ping Admin. В первом случае вам нужно обратить внимание на показатель ожидание ответа — он покажет точное время ответа сервера. Во втором случае нужно взять время загрузки сайта и разделить пополам (поскольку в него кроме ожидания ответа сервера будет входить DNS-запрос, время подключения и время загрузки данных).
Нормальным показателем будет 200-500 мс (0,2-0,5 с). Если ваш хостинг отвечает столько — значит, можно приступать к следующим шагам по ускорению сайта. Если время ответа сервера большое 500 мс — значит, есть серьезные проблемы со скоростью сайта на стороне сервера (хостинга), и их нужно решать.
Причины большого времени ответа сервера
Существует огромное количество причин, почему конкретная страница сайта может отвечать долго (больше полусекунды) — это и сложная логика представления данных, и большой объем запросов к базе данных, и сложные (неоптимизированные) запросы к базе данных, и обращения к внешним ресурсам (на стороне сервера), и большое количество исполняемых файлов, и большое время обработки запроса конкретно веб-сервером.
Основные проблемные места производительности сервера:
- Используемый веб-сервер (Apache, IIS). Ряд веб-серверов архитектурно не предназначены для обработки большого количества запросов, поэтому могут создавать дополнительные задержки даже при выдаче статических файлов. Для быстрой работы веб-сервера необходимо использовать nginx (в связке с Apache, php-fpm или другими серверами приложений для обработки серверных вычислений).
- Использование OpCache (акселератора PHP). Кэширование исполняемого кода (скриптов сайта) — обычно первый шаг к быстрому серверу. Кэширование позволяет не переводить каждый раз PHP-инструкции в бинарный код, а использовать уже готовый результат. Это кэширование не имеет ничего общего с кэшированием результата выполнения PHP-скриптов (например, кэширование HTML-страниц или MySQL-запросов).
- Запросы к базе данных. Как минимум, половина всех задержек на стороне сервера складывается из запросов к базе данных. При правильной настройке таблиц (индексов) в базе данных и структуры запросов, а также кэшированию наиболее часто используемых результатов или пересчету промежуточных результатов в отдельные таблицы возможно снизить потребляемые серверные ресурсы в несколько (десятков или даже сотен) раз.
- Сложная логика обработки данных. У вас может быть уже идеально настроенная база данных, но выборка большого количество элементов и произведение над ними многочисленных операций (перебор в цикле) способно существенно затормозить ваш сайт. Профилирование времени выполнения серверных скриптов и устранения ненужных операций (упрощения серверной логики) может также дать существенный результат в плане серверной производительности.
- Обращение к сторонним сервисам. Если в коде серверных скриптов есть запросы к сторонним сервисам для получения данных — будьте готовы к сюрпризам. Если вы не контролируете производительность источников данных, которые запрашиваются, то время ответа вашего сервера может непредсказуемо изменяться — в зависимости от времени ответа сторонних сервисов. Хорошей практикой является использование в серверных запросах только внутренние источники данных (производительность которых вы контролируете), либо запрос данных на клиентской стороне в отложенном режиме (по крайней мере, это гарантирует стабильное время ответа вашего сервера в случае отказа какого-либо внешнего сервиса).
Первоочередные меры по ускорению сервера
- Настроить использование nginx (в связке с Apache+mod_php, php-fpm или IIS для выполнения серверной логики). Это сократит время на обработку запросов к статическим файлам сайта и повысит отказоустойчивость.
- Настроить кэширование исполняемого кода. Начиная с PHP 5.3 Zend Guard уже поставляется по умолчанию, поэтому вам нужно либо проверить, что он уже используется для вашего сайта, либо использовать любой альтернативный менеджер кэша исполняемого кода: APC, OpCache, xCache. Проверить использование этого кэша достаточно просто: нужно создать на сайте файл info.php с кодом и открыть его в браузере. Если на странице присутствуют модули APC, Zend Optimizer, Zend Guard, xCache или OpCache — то все хорошо.
- Проверить задержки выполнения скриптов. После подготовки фундамента (веб-сервера и кэширования исполняемого кода) можно взглянуть на задержки непосредственно серверной логики. Лучшим решением будет серверное кэширование страниц целиком (если возможно отображение одних и тех же страниц всем или почти всем пользователям сайта). Если серверное полностраничное кэширование невозможно, то необходимо настраивать блочное кэширование отображаемых на страницах блоков данных (через Memcached). Также эффективным может оказаться удаление неиспользуемых данных из базы данных или настройка индексов (для оптимизации запросов).
После выполнения всех этих мер время ответа сервера для всех страниц сайта обычно уменьшается в 5-10 раз. Этого бывает достаточно для перехода к следующим мерам по ускорению сайта — сжатию данных и объединению файлов. В облаке Айри вы можете настроить кэширование как всех страниц сайта с заданным периодом (например, на час или на сутки), так и каких-либо отдельных разделов или даже страниц, применяя авто-обновление кэша раз в минуту, раз в 10 минут или раз в сутки («вечное» кэширование).
Источник
Оптимизация скорости сайта: как уменьшить время ответа сервера
Время ответа сервера — первое, на что стоит обратить внимание на этапе оптимизации скорости загрузки сайта. В этой статье рубрики «Азбука SEO» я расскажу, как уменьшить время ответа сервера и сделать сайт более «шустрым».
Скорость ответа сервера — только вершина айсберга. Нужна комплексная оптимизация сайта — оставляйте заявку на услугу:
Что такое TTFB?
TTFB (Time To First Byte) — время до получения первого байта веб-страницы после отправки запроса со стороны клиента. Чем меньше этот показатель, тем быстрее браузер начнет загружать страницу.
Кстати, специалисты MOZ провели исследование о связи TTFB и позиции страницы в выдаче. Главный график в статье:
По рекомендациям Google, показатель TTFB не должен превышать 200 мс, а в идеале должен быть не более 50 мс. Если время ответа больше, потребуется определить причину и устранить её.
Как проверить TTFB?
Использовать отладчик в браузере
Для проверки TTFB можно использовать отладчик браузера. Например, в Google Chrome и Mozilla Firefox отладчик запускается комбинацией клавиш «Ctrl+Shift+I». После этого необходимо выбрать вкладку «Network» (Сеть), перезагрузить страницу и отфильтровать ресурсы по типу HTML (Doc). Далее нужно выбрать текущую загруженную страницу и во вкладке «Timing» в строке «Waiting» будет указано время ответа сервера.
Получить данные из Google Analytics
Необходимо перейти по пути «Поведение» — «Скорость загрузки сайта» — «Обзор». Далее в блоке «Среднее время ответа сервера (сек.)» будет указан TTFB за выбранный промежуток времени.
Использовать PageSpeed Insights
Также можно использовать инструмент PageSpeed Insights. Введите URL веб-страницы и запустите анализ. После завершения анализа при наличии проблемы с TTFB вы сможете в увидеть это показатель в блоке «Сократите время от сервера».
Использовать Netpeak Spider
Netpeak Spider — десктопный краулер для комплексного SEO-аудита всего сайта. Чтобы узнать время ответа сервера с помощью этого инструмента, вставьте URL в адресную строку, запустите сканирование (кнопка «Старт») и выберите столбец «Время ответа сервера».
Кстати, если TTFB страницы составит более 500 мс, Netpeak Spider покажет ошибку средней степени критичности. Все такие страницы можно удобно отфильтровать после сканирования — просто кликните на искомую ошибку в правой панели:
Использовать сторонние сервисы
Простой и удобный инструмент — Webpagetest. Узнать значение TTFB можно в колонке «First Byte»:
При использовании стороннего ресурса либо прокси загрузка сайта происходит с другого сервера, поэтому результаты могут сильно отличаться — многое зависит от удаленности расположения сервера, с которого происходит загрузка, от сервера, на который проводится загрузка данных.
Проверяйте TTFB не только на главной странице, но и на страницах категорий, карточках товаров. Время ответа может отличаться на разных типах страниц.
Что может быть причиной большого TTFB?
На время ответа сервера плохо влияет:
- медленная работа с базой данных;
- нехватка ресурсов (слабый процессор или недостаточный объем оперативной памяти);
- неправильная конфигурация сервера;
- отсутствие кэширования.
Для определения точной причины необходима помощь опытного программиста и системного администратора.
Как уменьшить время ответа сервера?
Оптимизировать работу с базой данных
При формировании страниц сервер каждый раз обращается к базе данных, чтобы получить необходимую информацию. Каждый запрос занимает определенное время, и чем больше запросов, тем больше общее время генерации страницы.
Например, при формировании блока «с этим товаром также покупают» выполняются следующие запросы:
- Определить текущий товар.
- Определить количество добавлений текущего товара в корзину.
- Определить товар, который добавлялся вместе с текущим в корзину.
- Исключить незавершенные заказы.
- Сформировать список наиболее часто покупаемых товаров вместе с представленным.
Чем больше товаров и совершенных заказов на сайте — тем больше необходимо времени на формирование ответа. Чтобы уменьшить количество запросов к базе данных, можно хранить уже сформированный ответ в кэше — так вместо пяти запросов будет выполнен всего один.
Эту задачу необходимо делегировать команде опытных программистов, которые смогут провести отладку и обнаружить самые «тяжелые» запросы и оптимизировать их.
Переехать на более производительный сервер
Причиной долгого ответа сервера может быть недостаток производительности. Слабый процессор или малый объем оперативной памяти приводят к медленной работе или вовсе «падению» сайта, поэтому необходимо всегда оставлять потенциал для непредвиденных скачков нагрузки.
Не стоит размещаться на бесплатных хостингах, либо на хостингах с ограниченными возможностями. Позаботьтесь о будущем и используйте VPS либо выделенные серверы — это лучшее решение для масштабируемых проектов.
Использовать акселераторы PHP
Каждый раз при загрузке страницы сервер обрабатывает PHP-файлы, но часто при каждой загрузке выполняется один и тот же участок кода. Акселераторы PHP позволяют значительно уменьшить TTFB путем предварительной компиляции PHP-кода. Это уменьшит нагрузку на процессор, но потребует большего объема оперативной памяти.
- Alternative PHP Cache (APC);
- eAccelerator;
- PhpExpress;
- Windows Cache Extension for PHP;
- XCache;
- Zend OPcache.
Использовать серверное кэширование
При отсутствии кэширования страниц сервер генерирует запрашиваемую страницу при каждом обращении пользователя. Если кэшировать страницу целиком, при последующем обращении пользователя к файлу сервер не будет генерировать страницу заново, а отдаст пользователю уже сгенерированную страницу.
На тестовом сайте я настроил серверное кэширование страниц — время ответа сервера уменьшилось в десять раз.
Источник