Как убрать двойную загрузку Font Awesome в WordPress и оставить один набор иконок

Двойная загрузка Font Awesome в WordPress обычно всплывает не сразу: иконки вроде бы отображаются, но в консоли видно повторные запросы, а в разметке — два разных подключения одного и того же набора. На практике это приводит к лишнему CSS/JS, конфликтам версий и странным эффектам в теме или плагинах, особенно если часть иконок приходит из темы, а часть — из плагина.

Ниже разберем, как быстро понять источник дублирования, как оставить один источник Font Awesome и как проверить, что после правки сайт не потерял иконки.

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

Симптомы обычно похожи, но причина одна из нескольких:

  • в <head> подключаются два файла Font Awesome с разными URL или версиями;
  • иконки на части страниц выглядят по-разному или пропадают после обновления темы;
  • в DevTools видно несколько запросов к fontawesome, all.min.css, svg-with-js или похожим файлам;
  • после отключения одного плагина иконки остаются, но при включении темы снова появляются дубли.

Что проверить в первую очередь

Откройте исходный код страницы и найдите все упоминания Font Awesome. Если подключение идет и через тему, и через плагин, это уже достаточный повод для чистки. Отдельно проверьте:

  • functions.php дочерней темы;
  • плагины, которые добавляют иконки в шорткоды, блоки, конструкторы или WooCommerce;
  • встроенные настройки темы, где Font Awesome можно включить или отключить;
  • кеширующие плагины и оптимизаторы, которые объединяют стили и могут маскировать источник проблемы.

Диагностика: откуда именно грузится Font Awesome

Самый надежный способ — посмотреть, кто регистрирует и подключает стиль. Если у вас есть доступ к коду, временно добавьте логирование в дочернюю тему или в небольшой mu-plugin. Ниже пример, который покажет зарегистрированные стили и их URL в админке.

<?php
add_action( 'admin_init', function () {
    global $wp_styles;

    if ( empty( $wp_styles ) || empty( $wp_styles->registered ) ) {
        return;
    }

    foreach ( $wp_styles->registered as $handle => $style ) {
        if ( false !== strpos( $handle, 'fontawesome' ) || false !== strpos( $style->src, 'fontawesome' ) ) {
            error_log( $handle . ' => ' . $style->src );
        }
    }
} );

Если в логах видно два разных handle или два разных файла, задача уже понятна: один источник нужно отключить, а второй оставить.

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

Логика простая: не удаляйте Font Awesome «вслепую». Сначала определите, какой источник реально используется на сайте. Если иконки вставлены через тему, а плагин подключает свою версию, чаще безопаснее оставить ту, что нужна теме, и отключить вторую.

Шаг 1. Отключите лишнее подключение через wp_dequeue_style()

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

<?php
add_action( 'wp_enqueue_scripts', function () {
    if ( is_admin() ) {
        return;
    }

    wp_dequeue_style( 'font-awesome' );
    wp_deregister_style( 'font-awesome' );
}, 100 );

Если у темы или плагина другой handle, например fontawesome или font-awesome-5, используйте именно его. Здесь важно не гадать, а брать имя из зарегистрированных стилей.

Шаг 2. Оставьте один источник и зафиксируйте версию

Если вы подключаете Font Awesome вручную, делайте это один раз и в одном месте. Для дочерней темы это обычно удобнее всего. Пример подключения через CDN с явным handle:

<?php
add_action( 'wp_enqueue_scripts', function () {
    wp_enqueue_style(
        'theme-fontawesome',
        'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css',
        array(),
        '6.5.2'
    );
} );

Так вы контролируете версию и не зависите от того, что тема или плагин внезапно подменит файл на другую сборку.

Шаг 3. Уберите повторное подключение из темы или плагина

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

Если подключение идет из плагина, проверьте, есть ли у него настройка отключения Font Awesome. Многие плагины позволяют не грузить библиотеку, если она уже есть в теме. Это предпочтительнее, чем принудительно вырезать стиль на уровне WordPress, потому что плагин может ожидать свои классы или свою версию.

Сравнение подходов: плагин, код или компромисс

ПодходКогда уместенМинус
Отключить в настройках темы/плагинаЕсть явная опцияНе всегда доступно
Снять через wp_dequeue_style()Нужно быстро убрать дублиНужно точно знать handle
Оставить один ручной enqueueНужен контроль версии и источникаТребует аккуратности при обновлениях

Проверка результата после внедрения

После правки не ограничивайтесь визуальной проверкой. Откройте страницу в режиме инкогнито и проверьте три вещи:

  1. в исходном коде остался один CSS-файл Font Awesome;
  2. в Network нет повторных запросов к одной и той же библиотеке;
  3. иконки в меню, кнопках, WooCommerce и виджетах отображаются без «квадратов» и пустых символов.

Удобно проверить и через консоль браузера: если иконки рендерятся как <i class="fa-solid fa-cart-shopping"></i>, а на странице виден значок, значит нужный набор подхватился. Если же часть иконок исчезла, вероятно, вы отключили не тот источник или у вас смешаны версии 5 и 6.

Частые ошибки и как их исправить

Отключили не тот handle

Это самая частая ошибка. В итоге дублирование остается, а нужный файл тоже исчезает. Решение: сначала найдите точное имя в $wp_styles->registered, потом уже вызывайте wp_dequeue_style().

Смешали Font Awesome 4, 5 и 6

Классы у этих версий отличаются. Если тема использует старые классы вроде fa fa-user, а вы оставили только сборку 6, часть иконок может пропасть. В таком случае нужно либо обновить разметку, либо оставить совместимую версию, либо заменить иконки в шаблонах.

Сняли стиль на фронтенде, но забыли про inline SVG

Некоторые плагины используют SVG-режим Font Awesome. Там проблема может быть не в CSS, а в скрипте svg-with-js. Если библиотека работает через JS, проверьте и скрипты, а не только стили.

Кеш и минификация скрывают реальную картину

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

Практические советы по безопасности и производительности

Если Font Awesome нужен только для нескольких иконок, не тащите всю библиотеку без необходимости. Для мелких интерфейсных элементов часто выгоднее заменить их на inline SVG или системные иконки темы. Это уменьшает зависимость от внешнего CDN и снижает риск, что после обновления стороннего ресурса что-то сломается.

Если библиотека все же нужна, храните подключение в дочерней теме или mu-plugin, а не в редактируемом шаблоне. Так проще контролировать изменения и не потерять правки при обновлении. И не подключайте Font Awesome с нескольких CDN одновременно: это не ускоряет сайт, а только усложняет отладку.

Короткий чек-лист перед публикацией

  • проверен исходный код страницы;
  • найдено точное имя handle для Font Awesome;
  • оставлен один источник подключения;
  • очищен кеш плагина, сервера и CDN;
  • проверены иконки в меню, кнопках и WooCommerce;
  • в консоли нет ошибок по загрузке стилей или скриптов.

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

Как создать иконки для сообщений WordPress с помощью AJAX и PHP
27.03.2026
Как создать динамические иконки для уведомлений в админ-панели WordPress
19.03.2026
Как удалить неиспользуемые иконки FontAwesome из WordPress для ускорения загрузки
03.05.2026
Как создать собственный виджет с иконками в WordPress
30.11.2025
Как добавить иконки в комментарии WordPress
17.04.2026