First contentful paint 3g как исправить

Содержание статьи

  • ЧТО ТАКОЕ FIRST CONTENTFUL PAINT (FCP)?
  • КАК ИЗМЕРИТЬ FCP?
  • ЧТО ТАКОЕ ХОРОШИЙ РЕЗУЛЬТАТ FCP?
    • 1. Уменьшите время отклика сервера (TTFB)
    • 2. Устранение ресурсов, блокирующих рендеринг
    • 3. Создайте CSS Critical Path и встроите его.
    • 4. Избегайте элементов на основе сценария над сгибом
    • 5. Избегайте отложенной загрузки изображений, расположенных выше сгиба.
    • 6. Встроенные важные изображения
    • 7. Оптимизируйте размер DOM вашего сайта
    • 8. Убедитесь, что текст остается видимым во время загрузки веб-шрифта.
    • 9. Используйте подсказки ресурсов
    • 10. Избегайте множественных перенаправлений страниц.
  • ЗАКЛЮЧЕНИЕ

В начале 2019 года Google объявил, что будет оценивать рейтинг скорости веб-сайта, сосредоточив внимание на двух показателях производительности: First Contentful Paint (FCP) и First Input Delay (FID) .

Веб-сайты оцениваются как быстрые, умеренные или медленные по следующим критериям:

FCP и FID - единственные факторы, которые имеют значение

FCP и FID – единственные факторы, которые имеют значение

Проверка скорости вашего сайта с помощью PageSpeed ​​Insights выдаст примерно следующие результаты:

Статистика FCP и FID известна, и ее трудно не заметить

Новая панель управления отчетом о скорости в Google Search Console также использует показатели FCP и FID для оценки URL-адресов. Это все еще рекламируется как экспериментальная функция (пока).

Панель отчетов о скорости в Google Search Console

Панель отчетов о скорости в Google Search Console

Интересно, что этот рейтинг основан не только на тесте скорости, но и отражает фактическую скорость вашего сайта для пользователей по всему миру. Статистические данные для этого собираются от реальных пользователей через Отчет о пользовательском опыте Chrome (CrUX) .

First Contentful Paint дает более реалистичную метрику пользовательского опыта. Ваш веб-сайт может загружаться менее 2 секунд в тесте скорости, но если это не так для большинства вашей аудитории, Google все равно будет наказывать вас.

Из этой статьи вы узнаете, что такое FCP и почему это важно. Далее мы перейдем к различным способам улучшения FCP на вашем сайте WordPress.

ЧТО ТАКОЕ FIRST CONTENTFUL PAINT (FCP)?

First Contentful Paint (FCP) – это ориентированная на пользователя метрика для измерения воспринимаемой скорости загрузки страницы. FCP измеряет, как пользователи воспринимают производительность веб-сайта, а не то, что измеряет инструмент для проверки скорости.

FCP появляется во втором кадре и отмечен оранжевым прямоугольником

FCP встречается во втором кадре и отмечен оранжевым прямоугольником (Источник: Google)

Первая Contentful Paint отличается от First Paint, которая представляет собой точку на временной шкале загрузки страницы, где в браузере обнаруживается любой тип визуализации. С другой стороны, FCP требует отрисовки некоторого контента. Это может быть текст, изображения (включая фоновые изображения, логотипы) или небелые элементы <canvas>.

Первая Contentful Paint на вкладке "Тайминги" GTMetrix

Первая Contentful Paint на вкладке “Тайминги” GTMetrix

Чтобы не усложнять задачу, вы можете думать о FCP как о времени, которое требуется пользователю, чтобы увидеть любой контент в своем браузере. Таким образом, быстрый FCP убеждает пользователя в том, что что-то происходит, и удерживает его привязанным к сайту.

КАК ИЗМЕРИТЬ FCP?

FCP можно измерить с помощью лабораторных испытаний и реального опыта использования (полевые данные). Вот несколько инструментов, которые вы можете использовать для измерения FCP:

  • Маяк
  • WebPageTest
  • Chrome DevTools
  • PageSpeed ​​Insights
  • Отчет об удобстве использования Chrome
  • Мониторинг производительности Firebase (бета)

Google измеряет 75-й процентиль загрузки страниц вашего сайта, сегментированный как для мобильных, так и для настольных устройств. Это гарантирует, что это точное представление о пользовательском опыте.

Google измеряет 75-й процентиль загрузки страниц вашего сайта, сегментированный как для мобильных, так и для настольных устройств. Это гарантирует, что это точное представление о пользовательском опыте.

ЧТО ТАКОЕ ХОРОШИЙ РЕЗУЛЬТАТ FCP?

Согласно Google, FCP должен произойти в течение 1 секунды . Это обеспечивает удобный пользовательский интерфейс для посетителей вашего сайта.

Если FCP вашего сайта занимает более 3 секунд, это считается медленным. Согласно исследованиям , более 53% мобильных пользователей покидают сайт, если загрузка занимает более 3 секунд. Отнеситесь к этому показателю серьезно.

Теперь, когда мы разобрались, что такое FCP и почему это важно, вот несколько способов улучшить FCP вашего сайта WordPress:

1. Уменьшите время отклика сервера (TTFB)

Время ответа сервера или время до первого байта (TTFB) – это время, которое требуется браузеру для получения первого байта содержимого веб-страницы.

Уравнение TTFB

Уравнение TTFB

FCP зависит не только от TTFB, но это первый шаг к достижению этой цели.

FCP = TTFB + время загрузки контента + время рендеринга

Поскольку FCP сильно зависит от TTFB, это наиболее важный фактор, который необходимо оптимизировать для улучшения FCP.

Выберите провайдера быстрого хостинга

Вы можете обратиться к статье WP Rocket о веб-хостинге, чтобы узнать, какие факторы необходимо учитывать, чтобы выбрать отличное решение для веб-хостинга. В идеале выберите хост с серверами, расположенными близко к вашим пользователям.

Используйте качественный CDN

Качественный CDN может помочь ускорить доставку статических ресурсов вашего сайта, таких как изображения, видео и скрипты. Это значительно сократит сетевую задержку между вашим сервером и вашими пользователями.

Включите кеширование для своего веб-сайта

Кэширование помогает уменьшить TTFB за счет уменьшения времени обработки сервера. Большинство ведущих хостинг-провайдеров WordPress имеют кеширование на уровне сервера, поэтому узнайте у них, что они предлагают.

2. Устранение ресурсов, блокирующих рендеринг

Веб-страница отображается браузером после объединения многих элементов, таких как HTML, таблицы стилей CSS, сценарии JavaScript и импорт HTML.

Сам документ HTML включает в себя различные теги, но все они быстро анализируются большинством браузеров. Но это не относится к синтаксическому анализу CSS и JS.

Обычно браузер пытается сначала загрузить все элементы веб-страницы, проанализировать их все, а затем отобразить веб-страницу. Чаще всего размер HTML-документов намного меньше, чем у таблиц стилей CSS и сценариев JS. Количество ресурсов CSS и JS также обычно выше.

Таким образом, когда пользователь запрашивает веб-страницу, браузер уже получил бы HTML-контент, но все равно будет ожидать загрузки всех других ресурсов перед визуализацией страницы. В результате их называют ресурсами, блокирующими рендеринг.

Такое поведение значительно снижает FCP. Следовательно, чтобы улучшить FCP, вам необходимо устранить эти ресурсы, блокирующие рендеринг. Сделать это можно следующими способами:

Встроенные критические ресурсы

Во-первых, определите важные сценарии и стили, которые необходимы для отображения FCP вашей веб-страницы. Вот простое руководство от Google о том, как определять важные ресурсы.

После того, как вы определили критические сценарии, вам необходимо удалить их из ресурса, блокирующего рендеринг, а затем встроить их в свою HTML-страницу с помощью тегов <script> и <style> .

Сделав это, вы убедитесь, что на веб-странице будет все необходимое для работы с ее основными функциями при загрузке.

Отложить некритические ресурсы

Для некритических ресурсов вам необходимо пометить URL-адреса атрибутами async или defer .

Рекомендуется добавлять атрибут defer к URL-адресам некритических сценариев. Это указывает браузеру выполнить файл сценария только после того, как HTML-документ будет полностью проанализирован.

Вот как можно отложить файл сценария:

<script defer src="https://v3b4d4f5.rocketcdn.me/path/to/file/script.js">
</script>

Для некритических таблиц стилей рекомендуется добавить к их URL-адресу атрибут async . Это указывает браузеру загружать стили асинхронно, в то время как остальные элементы страницы продолжают загружаться без прерывания.
Поскольку таблицы стилей загружаются с тегом <link> , нет прямого способа применить к ним атрибут async . Но есть обходной путь, и вот как вы можете его реализовать:

<!-- Setting “media” type as ‘print’ forces the browser to load the stylesheet asynchronously. On full page load, the media type is changed to ‘all’ so that the stylesheet gets applied. -->
 <link rel="stylesheet" href="style.css" media="print" onload="this.media='all'">

 <!-- Fallback for when JavaScript is disabled, but in this case CSS can’t be loaded asynchronously. -->
 <noscript><link rel="stylesheet" href="style.css"></noscript>

Удалить все неиспользуемое

При определении критических ресурсов вы можете обнаружить код, который не используется на веб-странице. Удаление неиспользуемого кода поможет вам еще больше оптимизировать вашу веб-страницу.

Если вам неудобно работать с кодом, вы можете использовать такой плагин, как WP Rocket, чтобы отложить некритические файлы JavaScript всего за несколько кликов.

Отложите JavaScript без усилий с WP Rocket

Отложите JavaScript без усилий с WP Rocket

Вы также можете оптимизировать доставку CSS с помощью WP Rocket, чтобы удалить таблицы стилей, блокирующие рендеринг. Следующий пункт касается этой особенности.

3. Создайте CSS Critical Path и встроите его.

Если вы настроили асинхронную загрузку CSS, браузер будет показывать пользователям нестилизованный контент до загрузки требуемых стилей. Такое поведение известно как Flash of Unstyled Content (FOUC) и доставляет неудобства пользователям.

Чтобы предотвратить FOUC, вам необходимо сгенерировать CSS Critical Path и встроить его прямо в свой HTML-файл.

Загрузка страницы с помощью CSS, блокирующего рендеринг, и встроенного критического CSS

Загрузка страницы с помощью CSS, блокирующего рендеринг (вверху) и встроенного критического CSS (внизу) (Источник: Google)

Но что такое Critical Path CSS?

Critical Path CSS – это минимальный набор CSS, необходимый для отображения первой части веб-страницы (в верхней части страницы) для пользователя.

Анализировать критический путь рендеринга браузера вручную и затем создавать CSS критического пути – утомительный процесс. Это выходит за рамки данной статьи.

Однако вы можете использовать бесплатные онлайн-инструменты, такие как Pegasaas, для создания CSS Critical Path. Он отлично работает для большинства случаев использования. Ознакомьтесь с Google Анализируя критическую производительность пути рендеринга, чтобы узнать больше.

После того, как вы сгенерировали CSS Critical Path, вам необходимо встроить его в HTML-документ. Теперь браузер может немедленно отобразить первую часть веб-страницы, не дожидаясь асинхронной загрузки таблиц стилей CSS. Это значительно улучшает FCP.

Кроме того, вы можете использовать WP Rocket для автоматизации этого процесса.

WP Rocket легко устраняет блокировку рендеринга CSS

WP Rocket легко устраняет блокировку рендеринга CSS

Включение параметра « Оптимизировать доставку CSS» в WP Rocket сгенерирует CSS Critical Path для всех типов страниц WordPress и встроит их. И если вам случится внести какие-либо настройки или изменить свою тему, он также автоматически обновит CSS Critical Path.

4. Избегайте элементов на основе сценария над сгибом

Независимо от того, насколько хорошо вы оптимизируете JavaScript, он все равно медленнее по сравнению с обработкой простого HTML. Все, что требует JS, может отрицательно повлиять на FCP.

Хотя вы можете встроить критически важные сценарии, их все равно нужно загрузить и проанализировать. Когда дело доходит до улучшения FCP, на счету каждая миллисекунда. Это драгоценное время загрузки ухудшает ваш рейтинг FCP.

Слишком много скриптовых элементов портят FCP

Слишком много скриптовых элементов портят FCP

Многие темы включают необычные элементы в верхней части страницы, в которых используется множество скриптов. То же самое можно сказать и об использовании конструкторов страниц, которые добавляют много ненужных стилей и скриптов. Следовательно, выбирайте тему вашего сайта с умом. Использование хорошо закодированной, быстрой темы, такой как GeneratePress или Astra, может помочь значительно сократить FCP.

Как правило, старайтесь избегать использования следующих элементов на своем веб-сайте в верхней части страницы:

  • Любые тяжелые анимации
  • Плагины слайдера
  • Социальные сети или плагины для обмена
  • Плагины мегаменю
  • Встраивается как Google Ads

5. Избегайте отложенной загрузки изображений, расположенных выше сгиба.

Ленивая загрузка изображений – один из самых простых способов ускорить работу вашего сайта , особенно если у вас есть сайт с большим количеством изображений.

Технически отложенная загрузка – это сценарий, который откладывает загрузку изображений и фреймов, которые еще не видны в области просмотра браузера. Когда пользователь прокручивает страницу вниз, изображения загружаются по мере их появления.

WP Rocket помогает легко включить отложенную загрузку изображений

WP Rocket помогает легко включить отложенную загрузку изображений

Поскольку ленивая загрузка требует использования JavaScript, прежде чем браузер сможет отображать какие-либо изображения, это может задержать ваш FCP.

Следовательно, вам нужно исключить изображения, находящиеся в верхней части страницы, из отложенной загрузки.

Большинство популярных плагинов отложенной загрузки уже включают эту функцию. В идеале ищите плагин отложенной загрузки, который позволяет исключать изображения не только по именам файлов, но и по другим тегам, таким как класс, идентификатор, атрибут или изображения из определенного домена.

WP Rocket поддерживает отключение отложенной загрузки определенных изображений . Вы можете отключить его для изображения, класса изображения, по источнику изображения и даже для аватаров.

Примечание. Ленивая загрузка изображений была добавлена ​​в ядро ​​WordPress и станет встроенной функцией начиная с WordPress 5.5. Он также поддерживает фильтры для настройки ленивой загрузки.

6. Встроенные важные изображения

HTML и CSS предоставляют возможность встроить изображения с помощью форматов Base64 или SVG. Они называются URI данных .

Встраивая все изображения в верхней части страницы, браузеру не нужно делать дополнительные HTTP-запросы для их загрузки. Это может помочь улучшить FCP.

Удалите ресурсы, блокирующие рендеринг, наверху, чтобы улучшить FCP

Удалите ресурсы, блокирующие рендеринг, наверху, чтобы улучшить FCP

Вот некоторые из наиболее распространенных изображений в верхней части страницы, которые можно встроить:

  • Логотип
  • Иконки (поиск, социальные сети и т. Д.)
  • Изображение баннера
  • Задний план

Что такое изображения Base64 и SVG?

Base64 – это алгоритм кодирования, который преобразует любой тип данных, включая изображения, в текст. Вы можете встраивать изображения в кодировке Base64 непосредственно в файлы HTML или CSS. Это отличный способ ускорить загрузку небольших изображений.

Base64 Image Encoder – отличный бесплатный инструмент для преобразования любого формата изображения в Base64. Он поддерживает форматы изображений JPEG, PNG, WebP, SVG и BMP.

Встроенные критические изображения с помощью кодировки Base64

Встроенные критические изображения с помощью кодировки Base64

Добавление изображений в кодировке Base64 в HTML:

<img src="data:image/jpeg;base64,/uj/…[content]..." width="100" height="50" alt="this is a base64 image">

Вы также можете использовать изображения в кодировке Base64 в CSS:

.custom-class {
    background: url('data:image/jpeg;base64,/9j/…[content]...');
}

Масштабируемая векторная графика (SVG) – это формат изображений для векторной графики. Изображения SVG имеют меньшие размеры файлов, масштабируются до любого размера без потери качества и отлично выглядят на всех устройствах. Если ваше изображение имеет простые формы, кривые и очертания (например, логотипы и значки), то его почти наверняка можно сохранить как SVG.

Примечание. Использование изображения SVG в качестве источника внутри тега <img> отличается от встраивания изображения SVG напрямую через тег <svg> .

Вот как можно встроить SVG в HTML:

<body>
  <!-- Insert SVG code here, and the image will show up! -->
    <svg xmlns="http://www.w3.org/2000/svg">
        <circle cx='50' cy='25' r='20'/>
    </svg>
</body>

Это хорошая идея , чтобы компресс или преуменьшать (если SVG) изображений , прежде чем встраивание их. Если ваши изображения в растровом формате (JPEG или PNG), используйте Base64. Если их можно преобразовать в векторный формат, используйте SVG.

Везде, где вы можете использовать URL-адрес в качестве источника изображения, вы можете вставить туда изображение в кодировке Base64.

Если какие-либо изображения или значки жестко запрограммированы внутри вашей темы или плагинов, вам необходимо найти их вручную и заменить их исходные URL-адреса встроенными изображениями. Такой плагин, как Search & Replace, может помочь вам в этом легко.

Есть несколько недостатков встраивания изображений:

  • Увеличивает размер изображений (обычно на 30%).
  • Это увеличивает размер страницы и, следовательно, TTFB.
  • Встроенные изображения не могут быть доставлены через CDN.

По моему опыту, если вы можете сохранить размер страницы ниже 100 КБ, встраивание изображений не представляет особой проблемы. Все, что выходит за рамки этого, может повлиять на ваш TTFB и, таким образом, навредить вашему FCP больше, чем улучшить.

Кроме того, если вы используете что-то вроде Cloudflare для обслуживания своего сайта, вы можете настроить его для кеширования ресурсов HTML . Включение этой функции рекомендуется тогда и только тогда, когда содержание вашего сайта в основном статично.

7. Оптимизируйте размер DOM вашего сайта

Объектная модель документа (DOM) – это представление всех объектов, составляющих веб-страницу. Графически это представлено в виде дерева с ветвящимися узлами и объектами.

Структурированное представление DOM позволяет легко изменять его элементы с помощью языка сценариев, такого как JavaScript.

Дерево HTML DOM с его объектами

Дерево HTML DOM с его объектами

Все элементы HTML в дереве DOM называются узлами . Узлы могут разветвляться на несколько элементов, каждый из которых может далее разветвляться, и так далее. Насколько глубоко они разветвляются, называется глубиной узла . Глубина узла всего дерева DOM называется глубиной дерева . Все непосредственные элементы ветвления узла называются дочерними элементами .

Наличие большого DOM-дерева может негативно повлиять на ваш FCP по многим причинам:

  • Неоптимизированное дерево DOM включает множество узлов, которые не видны пользователю на начальных этапах загрузки страницы.
  • Большой размер модели DOM означает, что для вычисления и стилизации всех узлов требуется больше времени, что может замедлить рендеринг.
  • Большое дерево DOM также может снизить производительность памяти пользовательских устройств.

Избегайте большого размера DOM для оптимизации FCP

Избегайте большого размера DOM для оптимизации FCP

Google помечает веб-страницы деревьями DOM, на которых есть:

  • Всего более 1500 узлов
  • Глубина более 32 узлов
  • Родительский узел с 60+ дочерними узлами

Как уменьшить размер DOM?

В общем, вам нужно создавать узлы DOM только при необходимости и уничтожать узлы, которые не нужны. Однако этот совет не относится к большинству сайтов WordPress, поскольку создание DOM обычно осуществляется с помощью тем, плагинов, компоновщиков страниц и самого ядра WordPress.

Вот несколько советов, которые помогут вам уменьшить размер DOM:

  • Разделите большие страницы на более мелкие.
  • Ленивая загрузка как можно большего количества HTML-элементов, а не только изображений.
  • Пагинайте комментарии, сообщения, продукты и т. Д.
  • Ограничьте количество сообщений, отображаемых на вашей домашней странице и страницах архива.
  • Не скрывайте нежелательный контент с помощью CSS. Вместо этого удалите его полностью.
  • Избегайте использования раздутых конструкторов страниц, которые вставляют ненужные теги <div> .
  • Выбирайте хорошо оптимизированные темы (например, GeneratePress или Астра).

Не используйте плагины, которые добавляют слишком много тегов <div> (например, плагины мегаменю).

8. Убедитесь, что текст остается видимым во время загрузки веб-шрифта.

Шрифты обычно представляют собой файлы большого размера, и для их загрузки требуется много времени. Возможно, вы столкнулись с такой ошибкой в ​​Lighthouse:

Lighthouse отмечает URL-адреса шрифтов, которые приводят к появлению невидимого текста.

Lighthouse помечает URL шрифтов, которые приводят к появлению невидимого текста (Источник: Google)

Есть причина, по которой Google отмечает такое поведение. Некоторые браузеры не отображают текст, пока не будут загружены все шрифты. Это вызывает так называемую вспышку невидимого текста (FOIT).

Вы можете исправить это, заставив браузер временно отображать системный шрифт во время загрузки пользовательских шрифтов. Просто добавьте font-display: замените свой стиль @ font-face, чтобы избежать FOIT почти во всех современных браузерах.

Вот пример того, как это можно применить:

@font-face {
  font-family: 'Pacifico';
  font-style: normal;
  font-weight: 400;
  src: local('Pacifico Regular'), local('Pacifico-Regular'), url(https://fonts.sample.com/pacifico.woff2) format('woff2');
  font-display: swap;
}

Если вы импортируете шрифты непосредственно из CDN (например, Google Fonts), вы можете добиться того же, добавив параметр & display = swap в конец URL-адреса.

<link href="https://fonts.googleapis.com/css?family=Roboto:400,700&display=swap" rel="stylesheet">

9. Используйте подсказки ресурсов

Когда пользователь посещает веб-сайт, браузер запрашивает HTML-документ с сервера, анализирует его, отправляет отдельные запросы для любых других ресурсов, на которые есть ссылки, и после загрузки и анализа их всех визуализирует веб-страницу.

Как разработчик вы знаете, какие ресурсы наиболее важны для вашего сайта. Обладая этими знаниями, вы можете настроить эти критически важные ресурсы на загрузку заранее и ускорить загрузку страницы. Подсказки ресурсов браузера – вот как вы можете этого добиться.

Некоторые подсказки относятся к ресурсам на текущей странице, а другие – к возможным будущим страницам. Все подсказки ресурсов используют для активации атрибут rel тега <link> .

Предварительная выборка DNS

Если вы загружаете какой-либо ресурс с внешнего веб-сайта, добавление параметра dns-prefetch сообщит браузеру, что нужно как можно быстрее разрешить DNS URL-адреса.

Вот как можно добавить предварительную выборку DNS к ресурсам:

<link rel="dns-prefetch" href="//external-website.com">

WP Rocket упрощает добавление всех внешних доменов в предварительно загруженные .

Предварительная выборка DNS-запросов в WP Rocket

Предварительная выборка DNS-запросов в WP Rocket

Если вы используете много стороннего кода, добавление параметра dns-prefetch очень полезно для ускорения загрузки страницы. Вы можете использовать бесплатную предварительную выборку! онлайн-инструмент, чтобы узнать, какие внешние домены вы можете добавить в список предварительной выборки.

Предварительное подключение

Preconnect работает так же, как предварительная выборка DNS, за исключением того, что не останавливается только на разрешении DNS. Он также продолжит и установит рукопожатие TCP и согласование TLS (если есть).

Его можно использовать так:

<link rel="preconnect" href="https://example.com">

Имейте в виду, что предварительное подключение может занять драгоценное время обработки, особенно для безопасных подключений.

Предварительная выборка

Если вы уверены, что ресурс будет использоваться в будущем, вы можете предложить браузеру сразу же выполнить его предварительную загрузку и сохранить в браузере. В отличие от предварительной выборки DNS, здесь вы говорите браузеру немедленно начать загрузку ресурса.

Вот как вы можете указать браузеру для предварительной загрузки ресурса:

<link rel="prefetch" href="scripts.js">

Как работает предварительная загрузка

Как работает предварительная выборка (Источник: KeyCDN)

Предварительная выборка может игнорироваться браузером, если запрошенный файл слишком велик или скорость сети низкая. Например, Firefox выполняет предварительную выборку ресурсов только тогда, когда браузер находится в режиме ожидания .

Prerender

Это самый мощный ресурсный совет. Добавление параметра prerender к ресурсу заставляет браузер загружать все свои ресурсы, анализировать их, создавать дерево DOM, применять стили, выполнять сценарии, отображать веб-страницу и держать ее готовой к обслуживанию. Если вы позже посетите URL-адрес, указанный в href , страница загрузится мгновенно.

Вот как вы делаете предварительную визуализацию ресурса:

<link rel="prerender" href="https://example.com/next-page">

Предварительный рендеринг вашей главной целевой страницы – отличный способ увеличить количество конверсий.

Предварительная загрузка

В отличие от предварительной выборки, которая действует больше как предложение для браузера, подсказка ресурса предварительной загрузки указывает браузеру загружать ресурсы независимо от того, что он думает. Браузер не может игнорировать директиву предварительной загрузки.

<head>
  ...
  <link rel="preload" href="styles.css" as="style">
  <link rel="preload" href="ui.js" as="script">
  ...
</head>

Чем раньше браузер начнет запрашивать объявленные ссылки предварительной загрузки, тем быстрее могут загружаться ваши страницы.

Подсказки о ресурсах мало помогут, когда пользователь впервые заходит на ваш сайт. Но каждая последующая страница, которую они посещают, будет отображаться значительно быстрее. Поскольку Google использует реальные данные об использовании для оценки рейтинга скорости веб-сайта, подсказки по ресурсам помогут улучшить FCP вашего сайта.

10. Избегайте множественных перенаправлений страниц.

Когда вы посещаете URL-адрес, который был перенаправлен на другой URL-адрес, сервер вернет ответ с кодом состояния перенаправления HTTP 301. В консоли вашего браузера это будет выглядеть примерно так:

HTTP/1.1 301 Moved Permanently
Location: /url/to/new/location

Ответ перенаправления заставляет браузер сделать еще один HTTP-запрос в новое место. Обычно это задерживает загрузку веб-страницы на сотни миллисекунд.

Если ваша страница имеет более одного редиректа, это может значительно замедлить работу FCP.

Избегайте переадресации нескольких страниц

Избегайте переадресации нескольких страниц (Источник: Google)

Lighthouse отмечает страницы с двумя или более редиректами.

Чтобы избежать множественных перенаправлений, указывайте помеченные ресурсы прямо в конечный пункт назначения. Кроме того, если ресурс является частью критического пути рендеринга вашей страницы, то полностью устраните все исходящие от него перенаправления.

ЗАКЛЮЧЕНИЕ

Улучшение FCP больше не выбор, а необходимость. Google уже начал ранжировать веб-сайты на основе их оценок FCP. Более того, более быстрый FCP также улучшает взаимодействие с пользователем.

И скоро появятся лучшие вещи! Google планирует ввести еще одну метрику производительности, ориентированную на пользователя, под названием First Meaningful Paint (FMP). В то время как FCP измеряет время рендеринга для любого контента (например, логотипов, слоганов, фоновых изображений), FMP будет запускаться только после того, как контент, желаемый пользователем, загружен (например, заголовки, изображения обложек, основной текст). FMP еще не стандартизирован, но вы можете узнать о нем подробнее здесь .

В этом посте вы узнали, как улучшить FCP в WordPress с помощью различных методов. Иногда бывает сложно понять весь технический жаргон и правильно его применить. К счастью, провайдер быстрого хостинга и плагин с отличной производительностью, такой как WP Rocket, могут сразу же помочь вам достичь хороших результатов FCP.

Если у вас все еще есть вопросы о том, как улучшить FCP вашего сайта, не стесняйтесь оставлять комментарии!

В этой заметке мы рассмотрим основные проблемы PageSpeed Insight и методы их решения. Список дополняется.

Проблемы которые можно решить с помощью моих решений

1. Устраните ресурсы, блокирующие отображение — данную проблему можно решить с помощью решения Ускорение загрузки сайта (функционал ускорения стилей)

2. Используйте современные форматы изображений — данную проблему можно решить с помощью решения Ускорение загрузки сайта (функционал оптимизации webp)

3. Настройте показ всего текста во время загрузки веб-шрифтов — данную проблему можно решить с помощью решения Ускорение загрузки сайта (функционал оптимизации webp)

Проблемы, которые зависят от сервера

Для решения данных проблем нужно работать с вашим хостингом/сервером

1. Сократите время до получения первого байта от сервера — данная проблема обозначает что текущих ресурсов сервера недостаточно для быстрой отдачи страницы. Нужно либо повышать ресурс, либо оптимизировать настройки сервера, либо искать ошибки разработки сайта (код сайта слишком тяжелый)

2. Задайте правила эффективного использования кеша для статических объектов — Данную проблему можно решить только для стилей и файлов вашего сайта (для файлов метрики, и прочих сервисов данную проблему решить нельзя). Нужно скорректировать настройки сервера, задав время кеширования требуемых типов файлов равным 1 год

Проблемы, которые можно решить только с участием разработчиков

Доработкой конкретного сайта (не решить автоматическими методами или настройкой)

1. Для изображений не заданы явным образом атрибуты width и height — Нужно скорректировать шаблоны и страницы, прописать требуемые атрибуты

2. Настройте подходящий размер изображений — Изображения в странице имеют больший размер чем на странице, нужно доработать масштабирование на уровне шаблонов 

3. Уменьшите влияние стороннего кода — нужно максимально уменьшить количество подключаемых скриптов и стилей. Обычно это счётчики метрики, jivosite и т.п.

Проблемы, которые не решить

Данные проблемы связаны с архитектурой сайта, заложенной изначально при создании сайт. Исправить их в теории можно, но придётся переработать большую часть сайта

1. Сократите размер структуры DOM — зависит от количество блоков на странице. Для улучшения показателя нужно переверстывать части сайта или отрезать часть функционала сайта

2. Сократите время выполнения кода JavaScript — зависит от количества и качества javascript на вашем сайте. Для улучшения показателя нужно анализировать весь javascript сайта, переписывать на более оптимальный или отрезать часть функционала.

3. Удалите неиспользуемый код CSS / Удалите неиспользуемый код JavaScript — зависит от шаблона, т.к. pagespeed не показывает что именно он считает неиспользуемым кодом, найти и вычистить почти нереально

4. First Contentful Paint (3G) — общий вес контента на странице, можно уменьшить, но фактически очень сложно дотянуть до нормы.

5. Не отправляйте устаревший код JavaScript в современные браузеры — чаще всего ошибка в файлах ядра битрикса, вычислить и удалить такой код ничего не повредив крайне сложно

—-

Значимость проблем: First Contentful Paint (3G), можно уменьшить с помощью решения Ускорение загрузки сайта т.к. его механизмы уменьшают вес стилей, картинок и т.п.

First Contentful Paint (FCP) — это время, которое проходит с момента открытия страницы и до момента, когда посетитель увидит какое-либо её содержимое (текст, изображение).

Эта метрика показывает, какое время потребуется браузеру для отображения элементов сайта после того, как пользователь перешёл на веб-страницу, а значит, чем меньше данный показатель, тем раньше пользователь увидит, что страница не пустая, а останется на ней.

FCP — это важный фактор, который должен учитываться при разработке веб-сайта, также он значительно влияет на SEO-продвижение. Если скорость загрузки сайта слишком маленькая, стоит попытаться понизить значение данного параметра.

Где посмотреть данный показатель?

Данный показатель можно увидеть в любом сервисе, который подсчитывает скорость загрузки страницы. Самые популярные из них:

  • pagespeed.web.dev
  • gtmetrix.com

Однако кроме них есть и другие, если эти по каким-либо причинам Вам не подходят.

Как улучшить данный показатель?

Для того чтобы на сайте начал отображаться контент, необходимо, чтобы сервер обработал все страницы, а затем передал их на компьютер пользователя. Высокие значения FCP свидетельствуют о том, что этот процесс происходит слишком долго, а значит, либо проблемы с сервером, либо проблемы со структурой сайта. В первом случае надо связываться с хостингом, во втором случае можно поставить кеширование на сайт, это значительно облегчит процесс сборки сайта, ведь кеширование оптимизирует css и js файлы, которые необходимы для начала работы страницы.

Почему данный показатель важен?

При низких значениях пользователь видит контент почти сразу, что не позволяет ему уйти из-за долгого ожидания. Также этот параметр важен для поисковых систем.

Нужна консультация?

Готовы предоставить полную консультацию по условиям и
всем интересующим вопросам работы с нашей компанией!

Остались вопросы логотип

Как быстрее реагировать на взаимодействие с пользователем.

«Я нажал, но ничего не произошло! Почему я не могу взаимодействовать с этой страницей?» 😢

First Contentful Paint (FCP) и Largest Contentful Paint (LCP) — это метрики, которые измеряют время, необходимое для визуального отображения (рисования) контента на странице. Хотя это важно, время рисования не учитывает реакцию на нагрузку или то, как быстро страница реагирует на взаимодействие с пользователем.  

Первая задержка ввода (FID) — это метрика Core Web Vitals, которая фиксирует первое впечатление пользователя об интерактивности и отзывчивости сайта. Она измеряет время с момента, когда пользователь впервые взаимодействует со страницей, до времени, когда браузер действительно способен ответить на это взаимодействие. FID является метрикой поля и не может быть смоделирован в среде lab. Реальное взаимодействие с пользователем требуется для измерения задержки ответа.  

Чтобы помочь предсказать FID в lab, рекомендуется общее время блокировки (TBT). Они измеряют разные вещи, но улучшения в TBT обычно соответствуют улучшениям в FID.  

Основной причиной плохого FID является тяжелое выполнение JavaScript. Оптимизация анализа, компиляции и выполнения JavaScript на вашей веб-странице напрямую сократит FID.

Тяжелое выполнение JavaScript

Браузер не может отвечать на большинство пользовательских вводимых данных, пока он выполняет JavaScript в основном потоке. Другими словами, браузер не может реагировать на взаимодействие с пользователем, пока основной поток занят. Чтобы улучшить это нужно:

  • Сократить время выполнения JavaScript
  • Разбить длинные задачи
  • Оптимизировать свою страницу для обеспечения готовности к взаимодействию
  • Использовать веб-работника

Сократить время выполнения JavaScript

Ограничение количества JavaScript на вашей странице уменьшает количество времени, которое браузер должен потратить на синтаксический анализ, компиляцию и выполнение кода JavaScript. Это увеличивает скорость, с которой браузер может начать реагировать на любые действия пользователя.

Чтобы уменьшить количество JavaScript, выполняемого на вашей странице нужно:

  • Сократить и сжать файлы JavaScript
  • Отложить неиспользуемый JavaScript
  • Минимизировать неиспользованные полифилы

Помимо минимизации JavaScript, разбитие долго выполняющегося кода на более мелкие задачи, может позволить браузеру быстрее запускать обработчики ввода, что может улучшить FID.  

Сократить и сжать файлы JavaScript

JavaScript может содержать символы, которые не нужны для браузеров, но облегчают чтение во время разработки. Это включает в себя интервалы, отступы, комментарии и длинные имена переменных.

Terser поддерживает синтаксис ES6+ и может использоваться для минимизации современных файлов JavaScript без необходимости их транспилирования. Если вы используете связку модулей и хотите включить Terser в свою цепочку инструментов:

  • Webpack и Parcel уже минимизируют использование Terser по умолчанию в режиме production
  • Если вы используете Rollup, включите rollup-plugin-terser в качестве выходного плагина

В дополнение к минимизации, сжимайте ваши ресурсы JavaScript, чтобы минимизировать размер их доставки. Если возможно, используйте Brotli, который обеспечивает лучшие результаты сжатия, чем Gzip, и может использоваться практически во всех новых браузерах.

Отложить неиспользованный JavaScript

По умолчанию весь JavaScript блокирует рендеринг. Когда браузер обнаруживает тег сценария, который ссылается на внешний файл JavaScript, он должен приостановить выполнение своих действий и загрузить, проанализировать, скомпилировать и выполнить этот JavaScript. Поэтому вам следует загружать только тот код, который необходим для страницы или отвечает на ввод пользователя.

На вкладке Coverage в Chrome DevTools можно указать, сколько JavaScript не используется на вашей веб-странице.

Чтобы сократить неиспользуемый JavaScript необходимо:

  • Разделить Code-split пакет на несколько частей
  • Отложить любой некритический JavaScript, включая сторонние скрипты, используя async или defer

Разделение кода — это концепция разбиения одного большого JavaScript-пакета на более мелкие, которые можно условно загрузить (также называемые отложенной загрузкой). Большинство новых браузеров поддерживают динамический синтаксис импорта, который позволяет извлекать модули по требованию:  

import('module.js')	
  .then((module) => {	
    // Do something with the module.	
  });	

Динамический импорт JavaScript для определенных взаимодействий пользователя (таких как изменение маршрута или отображение модального режима) обеспечит выбор кода, не используемого для начальной загрузки страницы, только при необходимости.

Помимо общей поддержки браузера, динамический синтаксис импорта может использоваться во многих различных системах сборки.

  • Если вы используете webpack, Rollup или Parcel в качестве связующего модуля, воспользуйтесь их динамической поддержкой импорта.
  • Клиентские фреймворки, такие как React, Angular и Vue, предоставляют абстракции, облегчающие отложенную загрузку на уровне компонентов.

Помимо разделения кода, всегда используйте async или defer для сценариев, которые не нужны для критического пути или содержимого, превышающего сложность.

<script defer src="…"></script>	
<script async src="…"></script>	

Если нет конкретной причины не делать этого, все сторонние скрипты должны быть загружены либо с defer, либо по умолчанию async.

Минимизируйте неиспользуемые полифилы

Если вы создаете свой код с использованием современного синтаксиса JavaScript и ссылаетесь на API-интерфейсы современных браузеров, вам потребуется перенести его и включить полифиллы, чтобы он работал в старых браузерах.

Одной из основных проблем производительности, связанной с включением на ваш сайт полифилов и переносимого кода, является то, что более новым браузерам не нужно загружать их, если они им не нужны. Чтобы сократить размер JavaScript вашего приложения, максимально сведите к минимуму неиспользуемые полифилы и ограничьте их использование средами, где они необходимы.

 Для оптимизации использования полифилла на вашем сайте: 

  • Если вы используете Babel в качестве транспортера, используйте @babel/preset-env для включения тех полифилов, которые необходимы для браузеров с которыми вы планируете таргетинг. Для Babel 7.9 включите bugfixes опцию для дальнейшего сокращения ненужных полифилов
  • Используйте шаблон module/nomodule для доставки двух отдельных пакетов (@babel/preset-env также поддерживает это через target.esmodules)  
<script type="module" src="modern.js"></script>	
<script nomodule src="legacy.js" defer></script>	

Многие новые функции ECMAScript, скомпилированные с помощью Babel, уже поддерживаются в средах, поддерживающих модули JavaScript. Таким образом, делая это, вы упрощаете процесс проверки того, что только транспилированный код используется для браузеров, которые действительно нуждаются в нем.

Разбейте длинные задачи

Если вы уже пытались уменьшить объем JavaScript, который загружается на одной странице, может быть полезно разбить долго выполняющийся код на более мелкие асинхронные задачи.

Длинные задачи — это периоды выполнения JavaScript, когда пользователи могут обнаружить, что ваш пользовательский интерфейс не отвечает. Любой фрагмент кода, который блокирует основной поток на 50 ms или более, можно охарактеризовать как длинную задачу. Длинные задачи являются признаком потенциального раздувания JavaScript (загрузка и выполнение больше, чем может потребоваться пользователю прямо сейчас).  

Разделение длинных задач может уменьшить задержку ввода на вашем сайте.

Chrome DevTools&nbsp;визуализирует длинные задачи&nbsp;на панели производительности&nbsp;&nbsp;

Chrome DevTools визуализирует длинные задачи на панели производительности  

FID должен заметно улучшиться, поскольку вы принимаете лучшие практики, такие как разделение кода и разбитие ваших длинных задач. Хотя TBT не является полевой метрикой, он полезен для проверки прогресса и в конечном счете улучшения как времени до интерактивного (TTI), так и FID.

Оптимизация страницы для взаимодействия готовности

Существует ряд распространенных причин плохой оценки FID и TBT в веб-приложениях, которые сильно зависят от JavaScript:

Выполнение сценария первого лица может задержать готовность к взаимодействию #

  • Увеличение размера JS, большое время выполнения и неэффективное разбитие на блоки могут замедлить скорость реакции страницы на ввод данных пользователем и повлиять на FID, TBT и TTI. Прогрессивная загрузка кода и функций может помочь распространить эту работу и повысить готовность к взаимодействию.
  • Серверные визуализированные приложения могут выглядеть так, как будто они быстро рисуют пиксели на экране, но остерегайтесь того, что взаимодействие пользователей блокируется большим исполнением сценариев (например, повторная гидратация для подключения слушателей событий). Это может занять несколько сотен миллисекунд, иногда даже секунд, если используется разделение кода на основе маршрута. Подумайте о том, чтобы перенести больше логики на сервер или генерировать больше контента статически во время сборки.

Ниже приведены оценки TBT до и после оптимизации загрузки сценариев первой стороной для приложения. Перемещая дорогостоящую загрузку скрипта (и выполнение) для несущественного компонента критического пути, пользователи могли взаимодействовать со страницей гораздо раньше.

Выборка данных может влиять на многие аспекты готовности взаимодействия

  • Ожидание каскадных выборок (например, JS и выборок данных для компонентов) может повлиять на задержку взаимодействия. Цель минимизировать зависимость от каскадных выборок данных.
  • Большие встроенные хранилища данных могут сократить время анализа HTML и повлиять на показатели рисования и взаимодействия. Стремитесь свести к минимуму объем данных, подлежащих последующей обработке на стороне клиента.

Выборка данных может влиять на многие аспекты готовности взаимодействия

  • Многие сайты содержат сторонние теги и аналитику, которые могут поддерживать занятость сети и периодически отключать основной поток, что влияет на задержку взаимодействия. Изучите загрузку стороннего кода по требованию (например, не загружайте те объявления ниже сгиба, пока они не будут прокручены ближе к видовому экрану).
  • В некоторых случаях сторонние сценарии могут вытеснять основные с точки зрения приоритета и пропускной способности в главном потоке, а также задерживать скорость готовности страницы к взаимодействию. Попытайтесь расставить приоритеты при загрузке, что, по вашему мнению, в первую очередь представляет наибольшую ценность для пользователей.

Использование веб-работника

Блокированный основной поток является одной из основных причин задержки ввода. Веб-работники позволяют запускать JavaScript в фоновом потоке. Перемещение операций, не связанных с пользовательским интерфейсом, в отдельный рабочий поток может сократить время блокировки основного потока и следовательно, улучшить FID.

Рассмотрите возможность использования следующих библиотек, чтобы упростить использование веб-работников на вашем сайте:

  1. Comlink: вспомогательная библиотека, которая абстрагируется и облегчает использование postMessage
  2. Workway: экспортер веб-работника общего назначения
  3. Workerize: перемещение модуля в веб-работника

Инструменты разработчика

Доступен ряд инструментов для измерения и отладки FID:

Lighthouse 6.0 не включает поддержку FID, так как это метрика поля. Тем не менее, общее время блокировки (TBT) может использоваться в качестве прокси. Оптимизации, которые улучшают TBT, также должны улучшить FID на местах.

Chrome User Experience Report предоставляет реальные значения LCP, агрегированные на уровне источника.

romagromov

4 / 4 / 0

Регистрация: 22.09.2015

Сообщений: 116

1

22.08.2022, 22:39. Показов 814. Ответов 14

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Здравствуйте!
Уже пару часов пытаюсь победить First Contentful Paint, чтобы получить нормальные цифры.
Ему не нравится заголовок H1. Типа нужно добавить в HEAD предзагрузку шрифта.
Ну поскольку у меня H1 — это Roboto Regular — добавил все 3 шрифта woff, woff2 и ttf вот так:

HTML5
1
2
3
<link rel="preload" href="/templates/g5_helium/custom/fonts/roboto/Roboto-Regular.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/templates/g5_helium/custom/fonts/roboto/Roboto-Regular.woff" as="font" type="font/woff" crossorigin>
<link rel="preload" href="/templates/g5_helium/custom/fonts/roboto/Roboto-Regular.ttf" as="font" type="font/ttf" crossorigin>

То же самое пишет Google, bvtyyj в таком формате.
Но сервис не унимается.
Вот ссылка на готовый тест
https://speedvitals.com/report… io/n4MKiv/

Там чуть ниже есть раздел Largest Contentful Paint Element

Тестирую эту страницу https://directory.audio/ru/zvu… ul-tfil-my

Сначала у заголовка был задан font-weight: 700; а у меня такой шрифт не загружается.
Я радостно подумал, что в этом и дело. Заменил 700 на 400 — и болта.



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

22.08.2022, 22:39

Ответы с готовыми решениями:

Не могу победить!
в интернете таких проблем немало!
антивирусы не определяют проблему!
то открывается новое окно…

Не могу победить DLookup
Добрый день всем, нужна Ваша помощь. В базе имеется основная форма с двумя подчиненными, в первую…

Не могу победить JScrollPane
И так, все что нужно: добавить JPanel на JScrollPane, А JScrollPane в свою очередь на JFrame, и…

Вирус не могу победить
Люди помогите плз подхватил вирус подменяет DNC даже на adwcleaner не мог зайти скачал из других…

Не могу победить switch
Всем привет.
Сильно не ругайтесь на форуме впервые. Решил освоить C++. Смотрю уроки читаю….

14

mr_dramm

Реактивный

1098 / 672 / 237

Регистрация: 17.07.2021

Сообщений: 1,475

Записей в блоге: 10

23.08.2022, 10:10

2

Это тема больше в разделе SEO актуальна

Первое что удивительно это значение числа 4.9 сек для First Contentful Paint. Не знаю как это тестируют но у меня вся загрузка страницы происходит за 1 сек со всеми ресурсами отчет из dev tools network, а первой отображение визуально явно меньше секунды.

учитывая огромное число 4.9 могу предположить что дело в том что что то мешает полностью загрузить html перед тем как его отобразить, если это script то попробуйте использовать defer

Цитата
Сообщение от romagromov
Посмотреть сообщение

Ему не нравится заголовок H1. Типа нужно добавить в HEAD предзагрузку шрифта.
Ну поскольку у меня H1 — это Roboto Regular — добавил все 3 шрифта woff, woff2 и ttf вот так:

заголовок Звуки для мультфильмов и анимации это Largest Contentful Paint Element, а не First Contentful Paint

На всякий случай посмотрите эту статью 11 Ways To Improve First Contentful Paint (FCP)

По шрифтам могу посоветовать попробовать протестировать следующие варианты:
Попробуйте загрузить шрифт с google fonts

HTML5
1
2
3
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto:ital@0;1&display=swap" rel="stylesheet">

Попробуйте использовать font-display: swap Некоторые браузеры не отображают текст пока не будет шрифт для для этого элемента

Но вообще странные цифры в отчете



0



4 / 4 / 0

Регистрация: 22.09.2015

Сообщений: 116

23.08.2022, 10:46

 [ТС]

3

Цитата
Сообщение от mr_dramm
Посмотреть сообщение

Не знаю как это тестируют

Ну они имитируют среднее по качеству 3G соединение + Android трубу до 200$. Это самая распространенная комбинация в США.
Ладно буду бороться с этим.
Дело в том, что Google в консоли пишет, что страницы признаны некачественными. Красным цветом. Я думаю это прямо влияет на ранжирование.

Добавлено через 1 минуту
А, еще вопрос.
Там ниже в отчете есть раздел Layout Shift in Action
И он там моргает зеленым на заголовке и тексте внутри.
Но в реальности, никакого смещения нет.
Что может ему не нравиться?



0



Модератор

Эксперт HTML/CSS

2172 / 1571 / 626

Регистрация: 07.08.2016

Сообщений: 3,836

23.08.2022, 13:52

4

Цитата
Сообщение от romagromov
Посмотреть сообщение

Но в реальности, никакого смещения нет.

Вообще-то есть:

Миниатюры

Не могу победить First Contentful Paint
 



0



Реактивный

1098 / 672 / 237

Регистрация: 17.07.2021

Сообщений: 1,475

Записей в блоге: 10

23.08.2022, 16:03

5

Я нашел кое что интересно в вашем отчете:
На вкладке waterfal там будет интересный отчет по всем загрузкам ресурсов на странице всего 139 запросов для загрузки страницы, Также там можно псмотреть отдельно по ресурсам которые загружаются: Javascript, CSS, Images, Fonts

Предложения по уменьшению числа загрузок
— Javascript Очень много скриптов подключается судя по отчету, я сам посмотрел через dev tool почти все загружаются без defer, нужно конкатенировать в один скрипт и подключить в с помощью defer
— CSS конкатенировать и загрузить за один запрос
— Fonts Если посмотреть загрузки с fonts.gstatic.com то они практически мгновенные, можно поробовать загружать шрифты с гугла
— попробовать подключить через cdn для fontawesome можно например так https://cdnjs.com/libraries/font-awesome также и bootstrap, но в Вашем случае лучше наверное всетаки конкатенировать так как скиптов всеравно много

На вкладке Boost performance будут предложены вариант повышения производительности

Миниатюры

Не могу победить First Contentful Paint
 



0



Реактивный

1098 / 672 / 237

Регистрация: 17.07.2021

Сообщений: 1,475

Записей в блоге: 10

23.08.2022, 16:29

6

Но я в этом не супер мега про, мнение любителя

Добавлено через 19 минут

Цитата
Сообщение от mr_dramm
Посмотреть сообщение

Javascript Очень много скриптов подключается судя по отчету, я сам посмотрел через dev tool почти все загружаются без defer, нужно конкатенировать в один скрипт и подключить в с помощью defer

Цитата
Сообщение от mr_dramm
Посмотреть сообщение

попробовать подключить через cdn для fontawesome можно например так https://cdnjs.com/libraries/font-awesome также и bootstrap, но в Вашем случае лучше наверное всетаки конкатенировать так как скиптов всеравно много

можно часть подключить через cdn а часть одним файлом со своего сервера и в самом конце страницы перед </body>



0



4 / 4 / 0

Регистрация: 22.09.2015

Сообщений: 116

23.08.2022, 16:55

 [ТС]

7

Цитата
Сообщение от mr_dramm
Посмотреть сообщение

нужно конкатенировать в один скрипт и подключить с помощью defer

Да, все верно.
Просто я сейчас работаю над тем, что мне нужно сначала вообще отключить JS, которые не используются на сайте.
Также мне нужно вычислять стили CSS — в каких они файлах находятся.
А сделать обе задачи с уже собранными в один файл невозможно.



0



Mailo

31.08.2022, 23:43

Не по теме:

Помню времена, когда в гуглспиде вообще не фигурировала предзагрузка шрифтов. Потом пади какой то дизайнер сказал, ну а дули я одни кружки да квадратики рисую, давайка я шрифт забабахаю, забабахал так, что гугль решил что оптимизация не должна пройти мимо шрифтов и изобрёл предзагрузку шрифтов у себя в «секундомере», которая как ни крути, смотрится при загрузке страницы отвратительно, но зато googelspeed рад, вот даже интересно, сколько людей сейчас смотрят на googlespeed, а сколько на реальные скорости сайта, попутно запихивая всякие googlemap’ы c yourtube видео в отложенную загрузку, а мы блин ща шрифт туда запихнём, добавив красок.



0



4 / 4 / 0

Регистрация: 22.09.2015

Сообщений: 116

01.09.2022, 19:40

 [ТС]

10

Ну а выбора особо нет.
Для гугла эти циферки фактор ранжирования. Выкручивайся, как хочешь.



0



Модератор

Эксперт HTML/CSS

2172 / 1571 / 626

Регистрация: 07.08.2016

Сообщений: 3,836

01.09.2022, 19:57

11

Цитата
Сообщение от romagromov
Посмотреть сообщение

Для гугла эти циферки фактор ранжирования. Выкручивайся, как хочешь.

У вас куча js и css файлов загружается, так что предзагрузка шрифта это ваша меньшая головная боль



0



4 / 4 / 0

Регистрация: 22.09.2015

Сообщений: 116

01.09.2022, 20:11

 [ТС]

12

Так уже объединили их. 3 JS и 2 css.



0



Модератор

Эксперт HTML/CSS

2172 / 1571 / 626

Регистрация: 07.08.2016

Сообщений: 3,836

01.09.2022, 20:21

13

Цитата
Сообщение от romagromov
Посмотреть сообщение

Так уже объединили их

ну не знаю как вы их объединили, но если судить по последней ссылке на тест, у вас загружается как минимум 26 js файлов и 21 css



0



4 / 4 / 0

Регистрация: 22.09.2015

Сообщений: 116

03.09.2022, 06:34

 [ТС]

14

Такой вопрос.
А как вообще определить, что загруженный JS реально используется н странице?
То есть, что выполнился и действительно нужен на этой странице.
Спасибо.



0



4 / 4 / 0

Регистрация: 22.09.2015

Сообщений: 116

03.09.2022, 15:48

 [ТС]

15

И еще, вот новый тест
https://speedvitals.com/report… io/q2iyFF/

Он мне там показывает, что у меня Layout Shift плохой.
И на картинках показывает какие-то невидимые смещения, при этом сам текст и блоки стоят на месте.
С этим как бороться?



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

03.09.2022, 15:48

15

Понравилась статья? Поделить с друзьями:

Не пропустите также:

  • Форд фокус как найти блютуз
  • Как найти матрицы операторов в базисе
  • Как найти историю переписки в контакте
  • Настройки приватности стим как найти
  • Как найти код тарелки

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии