В 1С-Битрикс используется механизм оптимизации загрузки страниц, который автоматически переносит теги <script> в конец документа перед закрывающим тегом </body>. Это позволяет ускорить отображение контента и улучшить показатели производительности сайта.
Однако некоторые скрипты должны загружаться строго в секции <head>. Например:
- библиотеки, от которых зависят другие скрипты;
- счетчики и системы аналитики;
- виджеты сторонних сервисов;
- код, который должен выполниться до загрузки страницы.
Чтобы запретить Битрикс переносить конкретный JavaScript-файл в подвал, необходимо добавить атрибут data-skip-moving="true".
Пример подключения скрипта без переноса
<script data-skip-moving="true" src="/local/js/script.js"></script>
После добавления атрибута data-skip-moving="true" система оставит скрипт на том месте, где он был подключен, и не будет перемещать его в конец страницы.
Подключение внешних библиотек
Атрибут можно использовать и для внешних JavaScript-библиотек.
<script data-skip-moving="true" src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
В этом случае библиотека jQuery будет загружена в секции <head> и станет доступна другим скриптам сразу после подключения.
Когда использовать data-skip-moving
Использовать атрибут рекомендуется только для действительно важных скриптов. Если отключить перенос для большого количества JavaScript-файлов, это может замедлить загрузку страницы и ухудшить показатели Core Web Vitals.
Поэтому оставляйте в шапке сайта только критически важные скрипты, а остальные файлы позволяйте Битрикс автоматически переносить в конец документа.
Заключение
Атрибут data-skip-moving="true" — стандартный способ отключить автоматический перенос JavaScript в подвал страницы в 1С-Битрикс. Достаточно добавить его в тег <script>, после чего файл останется на исходном месте и будет загружаться в нужном порядке.