Ответ
- JS файлы – блокируют отрисовку страницы, если загружаются синхронно (
<script>безasync/defer). - CSS файлы – блокируют рендеринг, так как браузер ждёт построения CSSOM.
- Шрифты – могут вызвать FOIT (Flash of Invisible Text), если
font-display: blockили не указан.
Не блокируют:
- Картинки – загружаются асинхронно, не влияют на отображение DOM.
- Favicon – кэшируется и не блокирует рендеринг.
Пример блокировки JS:
<script src="app.js"></script> <!-- Блокирует -->
<script src="app.js" defer></script> <!-- Не блокирует -->Оптимизация: минимизируйте критический CSS, используйте async/defer для JS, font-display: swap для шрифтов.