- Google PageSpeed Insights: «Удалите код JavaScript и CSS, блокирующий отображение верхней части страницы»
- Суть проблемы
- Как удалить JavaScript, препятствующий отображению верхней части страницы
- Блокирующие css – варианты решения
- Контент страницы
- CSS, JavaScript и блокировка парсинга веб-страниц
- Может ли загрузка CSS-ресурсов блокировать парсинг страницы?
- Может ли загрузка и выполнение JS-кода блокировать парсинг страницы?
- ▍Обычные загрузка и выполнение скрипта
- ▍Использование тега с атрибутом async
- ▍Использование тега с атрибутом defer
- Эксперименты
Google PageSpeed Insights: «Удалите код JavaScript и CSS, блокирующий отображение верхней части страницы»
В этой статье я расскажу, что означает рекомендация удалить блокирующие скрипты и стили и как её выполнить.
Это одна из наиболее распространенных проблем, которую я встречаю, анализируя веб-сайты. Решение данной задачи — один из самых сложных моментов при оптимизации скорости загрузки страницы, поскольку требует глубоких технических знаний.
Хочу обратить внимание – каждый сайт индивидуален. И если для одного сайта некоторые решения будут полезны, то для другого могут оказать негативное влияние.
Суть проблемы
Данное предупреждение срабатывает, когда в коде документа между тегами
… обнаружены ссылки на внешние файлы javascript и css. И пока они не будут загружены, дальнейший рендеринг страницы не будет выполняться. Таким образом они блокируют вывод контента на странице.Как удалить JavaScript, препятствующий отображению верхней части страницы
Большинство рекомендаций в Интернете сводятся к тому, чтобы перенести все скрипты в подвал сайта. Однако не стоит слепо выполнять эту рекомендацию — есть большая вероятность того, что функционал сайта будет нарушен:
- Для начала мы должны убедиться, что JavaScript не участвует в процессе отображения страницы.
- Скрипты небольшого размера размещаем в самом содержимом HTML страницы. Например:
- ‘ . file_get_contents($_SERVER[‘DOCUMENT_ROOT’] .’/smallscript.js’) . ‘‘; ?>
- Проверяем скрипты на зависимости и очередность загрузки. Если ни того, ни другого не имеется, то добавляем к ним атрибут «async»:
- Благодаря этому атрибуту такие скрипты будут загружаться асинхронно.
Данную инструкцию нельзя применять к библиотеке JQuery, которая используется в подавляющем большинстве сайтов. Далее рассмотрим правильное решение для JQuery.
Если поместить jquery.js перед закрывающим тегом