Милан Динич, разработчик WordPress из Сербии, выпустил свой плагин commonWP, который позволяет сайтам WordPress использовать бесплатный общедоступный CDN jsDelivr . В прошлом году jsDelivr был обновлен, чтобы позволить любому файлу из GitHub и npm обслуживать CDN. Зеркало WordPress на GitHub позволило Диничу создать плагин, который работает с CDN.
commonWP нацелен на повышение производительности за счет выгрузки файлов JavaScript и CSS в jsDelivr, включая следующие:
- Все файлы из ядра WordPress (если не используется разрабатываемая версия WordPress)
- Все файлы из плагинов, размещенных в репозитории плагинов WordPress.org (если автор конкретного плагина не использует теги SVN для выпуска)
- Все файлы из тем, размещенных в репозитории тем WordPress.org.
- Все файлы из плагинов и тем, размещенных на GitHub, которые поддерживают GitHub Updater.
- Все файлы, отмеченные как доступные на npm в любом типе темы, плагина или плагина MU
Динич сказал, что он разработал commonWP с упором на то, чтобы сделать его легким, простым в использовании и безопасным. Он утверждает, что подход, который он использовал в плагине, безопаснее любого другого плагина, который использует CDN для файлов WordPress:
Во-первых, commonWP перезапишет файл так, чтобы он указывал на файл на jsDelivr, только если этот удаленный файл идентичен локальному. Во-вторых, во время сравнения он генерирует хэш идентификатора субресурса удаленного файла jsDelivr и включает этот хеш в исходный код страницы, чтобы браузер не загружал удаленный файл, если у него нет точно такого же хеша.
Динич рекомендует плагин для пользователей, которые еще не используют CDN, имеют ограниченный бюджет или живут в менее развитых странах.
«Обычно рекомендуется использовать CDN, и с этим они могут получить еще большую скорость, потому что некоторые файлы могут быть уже кэшированы их посетителями», – сказал он. «Представьте, что jquery.js, jquery-migrate.min.js (наиболее распространенные файлы) всегда обслуживаются из одного места. Вам не нужно будет получать их с каждого сайта WordPress, который вы посещаете. Вы получите их один раз, и они будут в кеше вашего браузера, и начальная загрузка страницы будет быстрее ».
Динич ссылаются на Trac билет , где с использованием CDN предлагается для обслуживания активов , как JQuery, но никаких действий не было принято по предложению еще. Одно из преимуществ, которое он называет для глобальной пользовательской базы WordPress, заключается в том, что CDN, подобная jsDelivr, позволяет посетителям получать файлы из их собственного контента, страны или даже того же города. jsDelivr имеет большую сеть с несколькими CDN с инфраструктурой, построенной поверх других сетей, включая StackPath, Cloudflare, Fastly и Quantil. У него также есть собственные серверы в таких местах, как Китай, где другие общедоступные CDN практически не присутствуют.
CommonWP не имеет никаких настроек для настройки пользователями. Плагин заполняет свой кеш в фоновом режиме после активации. Разработчики могут настроить его под свои нужды, и Динич опубликовал несколько примеров кода на GitHub.
В своем релизе посте , Динич ссылка сербского сайта Получения 1-секундное улучшение загрузки и сделал другие тесты , но сказал , что он все еще ищет хороший способ представить данные. В разделе часто задаваемых вопросов плагина указано, какие факторы влияют на то, может ли commonWP улучшить производительность:
- Сколько ваших файлов доступно на jsDelivr и может быть переписано – чем больше файлов на jsDelivr, тем больше скорость; чем больше файлов, используемых страницей, перезаписывается в jsDelivr, тем выше скорость.
- Чем дальше посетители вашего сайта от сервера, на котором он размещен, тем большую скорость вы можете получить.
- Чем медленнее ваш сервер, тем большую скорость он может получить.
- Если ваши посетители уже посещали сайты WordPress с активированным commonWP, есть больше шансов, что некоторые из файлов, которые вы используете на своем сайте, уже кэшированы ими, чтобы они могли работать с большей скоростью.
Не каждый сайт увидит радикальные улучшения для владельцев сайтов, тестирующих производительность, но посетители из других частей мира могут быстрее загружать определенные файлы. Динич рекомендует пользователям тестировать свои сайты с помощью webpagetest.org и выбирать большее количество тестов, чтобы получить среднее значение. Он также рекомендует провести тестирование в разных местах и с разной скоростью соединения. Протестируйте с активированным и деактивированным плагином и когда на сайте полный кеш. В общем, чем дальше от сервера находится расположение и чем больше файлов отправляется в jsDelivr, тем больше будет улучшение производительности.