Большинство веб-мастеров и владельцев считают, что скорость сайта – не их проблема, а последние даже считают, что они в состоянии сами решить эту проблему, «бросив» на решение этой задачи большую пропускную способность, мощность серверов.
Но есть в этом подходе и существенные недостатки. Решение проблемы производительности веб-ресурса лежит в плоскости инфраструктуры:
- быстрое получение браузером данных от сервера – сетевые ускорители (балансировка нагрузки), простые в развертывании CDN, которые сокращают циклы, а также другие (TCP, DNS и т.п.);
- анализ каждой страницы сайта с точки зрения браузера и оптимизации их так, чтобы они стали бы наиболее эффективными в браузере – например, с использованием виртуального сервера, сети или облака.
Скорость загрузки сайта, – какие инструменты в наших руках. Особенно, если исчерпаны все другие средства оптимизации, а денежные – подошли к концу.
Эволюция производительности
Основные исторические этапы эволюции производительности:
- веб-браузеры конца 90-х создали, в основном, инфраструктуру и основополагающие технологии обработки данных (F5/Netscaler, Akamai, Keynote и др.);
- в начале нового столетия появились динамический контент (Netli), первая реальная игра преобразования (Pivia), затем Fineground и др.;
- в 2006 году – технология Optimizer, которая легла в основу множества решений;
- появился соответствующий инструмент веб-диагностики, например, как Webpagetest, Browserscope;
- в последнее время число оптимизации и количество оптимизаторов выросли, ключевым фактором ранжирования стали соответствующие алгоритмы поисковых систем, например, Google (в прошлом Google выпустила такие инструменты, как Google Analytics, плагин для Chrome и др., чтобы помочь оптимизировать скорость сайта).
Средний (по структуре, сложности) сайт в Топ-50 загружается за 3-5 секунд. Средняя веб-страница загружается за 5-7 секунд. В целом по всем ресурсам – около12 секунд.
Инструмент Page Speed Service
Сервис Page Speed Service (PPS) осуществляет свою работу с помощью процедуры кэширования страниц веб-ресурсов на серверах, которые находятся в различных уголках WWW, что позволяет уменьшить (часто существенно) время передачи данных. Например, Google оптимизирует веб-страницы и только после оптимизации (объединение CSS, Web-сжатие, оптимизация кода, улучшение структуры тэгов и др.) «раздает» с собственного CDN.
Можно установить сервис Page Speed, зарегистрироваться, авторизоваться и система затем загрузит, обработает и предоставит посетителям сайта нужный контент. PSS поддерживает занесение в черный список.
Есть некоторые существенные ограничения Page Speed: отсутствие возможности работы с HTTPS, а также большими файлами (более 50 Мбайт), не поддерживаются домены без www, аудио- и видео-потоками и другие. Их обещают снять, а цены на сервис сделать вполне доступными.
В РФ ускорением загрузок страниц веб-ресурсов и клиентской оптимизацией занимался Николай Мациевский (команда Webo, сервер Site SpeedUp).
Что дает и как происходит использование Page Speed Service?
Служба Page Speed представляет собой интернет-сервис для автоматического ускорения загрузки веб-страниц. Эта служба, извлекая содержимое сервера Google, «переписывает» (оптимизирует) страницы сайта с использованием передового опыта. Степень ускорения зависит от многих факторов, например, содержание страниц, тип браузера, географическое место доступа, трафик и т.д.
Можно запустить тесты для анализа ускорения сайта в течение нескольких минут. Пока Page Speed предлагает бесплатно ограниченный набор услуг веб-мастеров, для получения которого необходимо заполнить соответствующую форму для тестирования системы по адресу http://code.google.com/speed/pss/index.html.
Необходимо подтвердить право собственности на веб-ресурс, настроить его для PSS – перевести на DNS сервера Google (http://ghs.google.com) с помощью редактирования одной CNAME-записи.
Google, как известно, любит быстрые веб-ресурсы и давно использует при ранжировании такой показатель, как скорость загрузки веб-страниц. Поэтому он и занялся сам ускорением сайтов. CDN от Google аналогичен бесплатному сервису CloudFlare. Во многих комментариях по всему Интернет сравнивают PSS-услугу с CloudFlare. CloudFlare такая же услуга, которая заменяет собой ваша структура DNS-серверов. Хотя трафик идет на ваш веб-хостинг через прокси-сервер, но нет кэширования на веб-сайте. Google же предлагает совершенно иное: стать вашим веб-ресурсом для содержимого на хостинге провайдера.
Это, по сути, оптимизирующий прокси, аналог глобального кэширования. После оптимизации, Google раздаёт страницы сайта со своего CDN. Время загрузки улучшается за счет распределения нагрузки между всеми Google-серверами. Файлы ресурса хранятся на сервере хозяина (как и должно, быть), а все остальное от веб-мастера (как и должно быть) – указывается в DNS ресурса, который проходит полную индексацию, размещение страниц на Google-серверах по всему миру, увеличивая их эффективность.
Вы должны настроить DNS, чтобы указать текущий веб-хостинг в Google. Это означает, что если кто-то попал на ваш сайт, будет отвечать не ваш сервер, а серверы Google. Система похожа на службу автоматического кэширования. Ваш текущей веб-хостинг позволит делать обновления на вашем сайте, а Google будет сканировать, кэшировать, и распространять на своих серверах по всему миру.
Обещанное ускорение загрузки – на 25-55%. Пользователи при этом ничего не заметят, естественно, кроме изменения скорости. Услуга, в первую очередь, будет привлекательна для владельцев и веб-мастеров высоконагруженных сайтов, например, порталов.
Google может выполнить обработку и настройку веб-ресурса. Но не нарушится ли при этом контроль сайта? Или авторские права? Или и то, и другое, и возможное третье? Это смущает веб-мастеров. Посты типа «Является ли это угрозой?» можно встретить на форумах веб-мастеров. Как работает все это? – Сжимается изображение, оптимизируются CSS и скрипты.
Page Speed, вероятнее всего, будет удобным сервисом для несложных и небольших ресурсов, продвигаемых «вручную», для владельцев и веб-мастеров, вручную настраивающих свой браузер на прокси-трафик через PSS.
Благодаря этому сервису, владельцы малого бизнеса могут стать конкурентоспособными на рынке.
Многомерное тестирование и оптимизация сайта
Многомерное (многовариантное) тестирование – тестирование с использованием фиксированного набора переменных, большого количества комбинаций этих переменных и отслеживания предпочтений пользователей, с целью определения (отслеживания) комбинации, которая была наиболее эффективной. Такое тестирование помогает владельцам веб-ресурсов сделать гораздо более детальный анализ и выяснить, что работает и что не работает, позволяет осуществлять тонкую настройку страницы.
Как это влияет на оптимизацию? А тем, что мы должны сделать то же самое для того, чтобы знать, какое сочетание факторов производительности сайта (страниц, рабочих процессов, браузеров, кэша и т.д.) работают лучше всего, какие переходы и просмотры страниц больше всего влияют на удовлетворенность клиентов в каждую миллисекунду.
Тестирование – полезный инструмент. Google стремится к 100 мс на отклик. Это почти мгновенный отклик.
Заглянем в будущее оптимизации ресурсов
Браузеры становятся инновационными, каждый требует собственную интерпретацию правил, даже для разных версий одного и того же браузера. Это часто вредит производительности новых и повышения производительности старых версий браузеров.
Но каждая секунда имеет значение, а оптимизация изолированных отдельных страниц не может автоматически увеличить производительность. Необходимо учитывать (точнее, угадывать) поведение пользователей.
Сейчас наблюдается новый этап эволюции производительности веб-ресурсов – этап перехода от пары десятков оптимизационных процедур, применяемых ко всему ресурсу, к аналогичным процедурам, применяемым к каждой странице. С учетом поведенческого настроения пользователей и требований каждого типа и версии браузера. Эволюция «экспоненциальная».
Оптимизация и ускорение для мобильных устройств
Мобильная версия сайта дает преимущество мгновенного доступа. Важно, чтобы ваш сайт был доступен в мобильном мире, и оптимизирован соответствующим образом.
Как это делается:
- использованием Google AdWords для поиска ключевых слов, которые являются специфическими для мобильных устройств;
- классической SEO-оптимизацией;
- краткостью и лаконичностью, отсутствием громоздкой графики, красивыми шрифтами, минимально достаточным набором опций (кнопок) – и это все с учетом величины экрана.
Большинство сайтов имеют два адреса: один - обычный и один для мобильных устройств. Google в настоящее время имеет бот, который ищет мобильные версии сайтов для индексирования (в классическом смысле). Две страницы одного и того же сайта будут проиндексированы, как один. Это большое преимущество для владельцев сайта. Но можно сделать субдомен вашего мобильного сайта с текстовыми файлами. Не использовать Flash, Java, Ajax и видео. Использовать XHTML (WAP 2.0), CHTML (IMode) или WML (WAP 1.2). Не забывая, что кроме пользователей смартфонов, есть еще много владельцев обычных мобильных телефонов.
Оптимизация сайта для «таблетки» означает, что он либо просто перенаправляет пользователя на мобильную версию (все довольны), либо сайт вносится в HTML5, CSS3, либо есть кнопки для удобной навигации, либо есть PDF-версия сайта.
Проблемы скорости и хостинг
Благополучие портала зависит от хостинга, платформы и настройки, а также от качества разработки.
Понятие хостинг включает совокупность услуг, предоставляемых провайдером: конфигурирование серверов, поддержка производительности канала, базы данных и др. Проблемы производительности, связанные с хостингом, относятся к числу наиболее трудно определяемых, поскольку для обычного тестирования понадобится, как минимум, еще один провайдер. Как показывает наш опыт, только устранение банальных ошибок конфигурирования сервера позволяет на порядок увеличить производительность.
Платформа - самый предсказуемый, но не самый простой для выбора, компонент. Но при грамотном подходе рассчитывать на приличные и часто прогнозируемые результаты, все же возможно. Настройки можно выбирать рекомендованные.
До начала реализации сайта нужно выяснить, насколько интенсивно будет использоваться база данных. Если возможностей MySQL будет недостаточно, то используют Oracle Database или Microsoft SQL Server. На скорость влияет и общее количество запросов, и темп запросов к базе данных.
Качество разработки, естественно, напрямую зависит от квалификации веб-мастеров. Но заказчик и разработчик (прежде всего), обращают внимание на интерфейс и дизайн, а не на производительность.
Разработчики CMS предлагают сертифицировать хостинг-провайдеров. Сертифицированный провайдер имеет преимущество в принятии решений. Веб-мастер имеет преимущество оценивания соответствия требований CMS возможностям хостера. Но, если отсутствует сертификат, то все сопутствующие риски ложатся на потребителя. При выборе платформы необходимо определять пару «CMS+хостинг–провайдер». А лучше всего – тройку «CMS+хостинг–провайдер+тарифы».
В ответ на запрос клиента на стороне сервера происходит обычное обращение к базе данных, затем выполняется, например, РНР–код и далее сформированная страница предъявляется пользователю.
В высоконагруженных системах этот процесс может выполняться отдельным сервером (при двухуровневой архитектуре веб–сервера), затраты на выделение отдельного узла вполне окупаются ростом надежности и предсказуемости работы серверов.