Скрипт у head може блокувати рендеринг
У звітіSynchronous external script declared in the document head
render_blocking_head_script · Потребує перегляду
Це з’являється, коли <head> сторінки оголошує зовнішній скрипт без async, defer чи type="module". Браузер припиняє будувати сторінку, доки такий скрипт не завантажиться й не виконається. Додайте defer або async там, де скрипт це дозволяє.
Серйозність: Середня. На перегляд: сама затримка не вимірюється, а деякі скрипти мають виконуватися першими.
Чому це важливо
Посібник web.dev про Largest Contentful Paint каже, що рендеринг усієї сторінки блокується, поки таблиці стилів чи синхронні скрипти в <head> ще завантажуються, і що додавати скрипти без async чи defer у head майже ніколи не потрібно.
Що зробити
- Перегляньте знахідку: у ній показано кожен скрипт, його адресу, місце в head і те, чи походить він із власного джерела сторінки, чи з іншого.
- Додайте
deferдо скриптів, що працюють зі сторінкою, абоasyncдо незалежних, як-от аналітика. - Якщо скрипт має виконатися до показу сторінки, тримайте його малим або помістіть його код безпосередньо в сторінку.
Коли залишити як є: якщо скрипт має виконатися до того, як щось буде показано, наприклад скрипт згоди чи тестування, що змінює сторінку, його можна залишити, тримаючи якомога меншим.
Що ми читаємо
Ми читаємо <head> кожної просканованої сторінки в тому вигляді, в якому його віддав сервер, не виконуючи JavaScript, і шукаємо теги <script src> без async чи defer, які є класичними скриптами, а не type="module". Вбудовані скрипти, скрипти в body та скрипти, додані через JavaScript, не перевіряються.
Сторінка фіксується, коли аудит завантажив такий скрипт і він відповів кодом 200. У знахідці показано, чи походить він із власного джерела сторінки, чи з іншого.
Сторінка позначається як неперевірена, коли її HTML не вдалося прочитати повністю, наприклад тому, що він містить непідтримувану розмітку SVG, <select> чи <math>, коли вона не має тега <head> або її head містить <noscript> чи елемент, якому місце в body, коли скрипт має nomodule або коли такий скрипт не було завантажено.
Приклад і докази
Ілюстративний приклад — head однієї сторінки, а не реальний аудит.
Head сторінки https://bakery.example/ містить:
<head>
<script src="https://bakery.example/js/slider.js"></script>Скрипт не має async чи defer, тому браузер чекає на нього, перш ніж будувати сторінку, і сторінка фіксується разом із ним.
<script src="https://bakery.example/js/slider.js" defer></script>Можливе виправлення, якщо слайдеру достатньо запуститися, коли сторінку вже побудовано.
Підтвердити й перевірити знову
Перевірте самі: перегляньте вихідний код сторінки й подивіться, чи має кожен <script src> у head атрибут async, defer або type="module".
Повторна перевірка: Повний аудит — запустіть новий аудит сайту. Знахідка закривається, коли сторінку знову проскановано, прочитано повністю і її head не має такого скрипта й нічого, що заважає її перевірити, як-от скрипт із nomodule чи <noscript> у head.
Обмеження та джерела
Перевірка читає, як оголошено скрипти; вона не вимірює, як довго вони блокують рендеринг, чи їхній вплив на Largest Contentful Paint. Вбудовані скрипти в head, які теж блокують, не оцінюються, а атрибут blocking ігнорується.
Упевненість: Висока, бо декларація зчитується безпосередньо з HTML.
Джерела
- web.dev, Оптимізація Largest Contentful Paint — каже, що рендеринг усієї сторінки блокується, поки таблиці стилів чи синхронні скрипти в
<head>завантажуються, і що синхронні скрипти в head майже ніколи не потрібні. Перевірено 28 вересня 2026.
Редакційна перевірка: 30 жовтня 2026