Лишний скрипт в начале очереди держит первый экран.
Лишние виджеты
Виджет почти всегда чужой адрес, свой скрипт и своя очередь. На странице их набирается пачка: каждый когда-то поставили на всякий случай. Чужой сервис, который из этой сети не открывается, всё равно держит ожидание.
- Онлайн-чат и кнопка обратного звонка на каждой странице
- Карта проезда там, где хватает ссылки на маршрут
- Второй и третий счётчик поверх уже стоящей Метрики
- Видеоплеер, который стартует, даже если ролик ниже первого экрана
- Блок кнопок соцсетей и внешние значки к ним
- Форма внешнего конструктора там, где хватает обычной формы
Всё разом не снимаю. Отключаю один виджет и снова смотрю ту же страницу. Если виджет нужен делу, вызываю его после основного содержания. Карту не тащу скриптом на каждую посадочную. Плеер ниже сгиба не стартует вместе с документом.
Шрифты, которые держат текст
Текст не должен ждать декоративную гарнитуру. Оставляю одно семейство и те начертания, которыми набран текст. Обычное и полужирное закрывают набор. Тонкое и курсив убираю, если ими никто не набран. Целое семейство с чужого сервиса не подключаю: с ним приезжают лишние начертания.
Файлы держу в сжатом виде и прошу показывать буквы сразу системным шрифтом. Фирменный подменяется, когда доехал. Иначе человек видит пустые строки, хотя документ уже на месте. Значки-шрифт проверяю отдельно: ради нескольких иконок иногда качается целый набор.
Кэш браузера и кэш страницы
Кэш — это память, а не ускорение первой встречи. Первый заход всё равно скачивает документ и файлы. Второй должен взять стили, скрипты, шрифт и картинки из памяти браузера, если они не менялись. Текстовые файлы отдаю сжатыми: по сети едет меньший объём.
Сравниваю два открытия: чистый заход и ту же страницу ещё раз. Если готовые файлы качаются каждый раз, память браузера не работает. Повторный визит ощущается как новый.
На движке документ иногда собирается заново при каждом заходе. Для страницы, которая не меняется каждую минуту, сборку имеет смысл запомнить. Для корзины, кабинета и поиска память страницы опасна: человек может увидеть не своё состояние. Готовые файлы запоминаю смелее, чем документ.
Модуль ускорения включаю, только когда понятно, что он запоминает и какие скрипты добавляет. Иначе свежий текст не выходит наружу. Лишний модуль движка тоже смотрю: у него свои файлы, даже если на экране от него одна деталь.
Сервер и ответ документа
Если долго нет даже основы страницы, картинки и шрифты ни при чём. Смотрю ответ документа. Длинная цепочка переадресаций, устаревший движок, страница, которая на каждый заход заново собирает тяжёлые блоки из базы, — всё это сидит раньше файлов оформления. Пока основа не отдана, полировать очередь файлов рано.