Замечали ли вы, что ваши самые популярные записи в блоге – те, которые вызывают лавину комментариев – загружаются медленнее остальных? Конечно, приятно видеть поток комментариев, однако если ваша система комментирования сконфигурирована недостаточно хорошо, это может привести к падению скорости работы сайта.
Для функционирования комментариев используются следующие ресурсы:
- Происходит запрос к базе данных, чтобы вытащить существующие комментарии;
- Для каждого нового комментария создаются записи в базе данных;
- Комментарии и метаданные комментариев получаются и обрабатываются браузером посетителя;
- Внешние ресурсы, такие как граватары, запрашиваются, скачиваются и загружаются;
- Также зачастую загружаются и обрабатываются крупные JS- и jQuery-ресурсы, чтобы система комментирования работала должным образом.
Как результат, масштабные секции комментариев могут добавить значительную нагрузку на сервер, увеличивая общий размер страницы и количество требуемых HTTP-запросов, а также добавляя дополнительные JS-ресурсы, которые необходимо будет обработать браузеру. Вне зависимости от того, используете ли вы родную систему комментирования WordPress или сторонние системы, такие как Disqus или Facebook Comments, вы должны позаботиться о том, чтобы оптимизировать их производительность.
Стратегии по ускорению загрузки комментариев
Если вы обнаружили, что раздел комментариев замедляет скорость загрузки ваших самых популярных записей, вы можете поступить следующим образом:
Отключить комментарии полностью. Это, конечно, устранит проблему. Однако вы должны рассмотреть этот способ только в том случае, если ваша секция комментариев не несет в себе никакой ценности. Если секция комментариев разрослась до таких размеров, то, скорее всего, она несет в себе определенную ценность, поэтому вряд ли вы захотите отказаться от комментариев. Мы уже писали ранее в блоге, как полностью отключить комментарии в WordPress.
Оптимизировать родные комментарии в WordPress. Если вы используете родную систему комментирования WordPress, вы можете несколько ускорить ее. Мы рассмотрим методы ускорения комментариев далее.
Использовать стороннюю систему комментирования. Если ваш сайт размещен на дешевом виртуальном хостинге с ограниченными ресурсами, вы можете использовать стороннюю систему комментирования – в этом случае скорость загрузки страниц с большим количеством комментариев может несколько вырасти. Однако на хороших серверах переход к сторонним системам комментирования может привести к обратному эффекту – замедлению скорости загрузки страниц.
Воспользоваться «ленивой загрузкой» (lazy load) комментариев. Вне зависимости от того, используете ли вы родную систему комментирования WordPress или сторонние системы по типу Disqus, вы можете попробовать прибегнуть к технике lazy load для комментариев. Это позволит избежать замедления начальной обработки страницы.
Давайте рассмотрим каждую из стратегий отдельно, чтобы вы могли понять, какая из них лучше подойдет для вашего сайта.
Оптимизация родной системы комментирования WordPress
Есть два варианта, как именно вы можете ускорить загрузку страниц, которые имеют гору комментариев: ограничить число комментариев, загружаемых сразу, или же использовать локально размещенные аватары. Давайте рассмотрим каждый вариант в деталях.
Ограничение числа выводимых комментариев
По умолчанию WordPress настроен таким образом, чтобы загружать все комментарии вместе с загрузкой страницы. Однако загрузка десятков и даже сотен комментариев, каждый из которых включает в себя уникальный аватар, может серьезно отразиться на скорости сайта и приведет к созданию массы дополнительных HTTP-запросов.
Вы можете сократить количество комментариев, загружаемых вместе с базовой загрузкой страницы. Делается это очень просто:
- Переходим в раздел Settings – Discussion в панели администратора WordPress
- Ищем секцию Other comment settings
- Выбираем пункт Break comments into pages with и указываем число комментариев, которое мы хотим выводить при базовой загрузке страницы.
- Прокручиваем в самый низ страницы и щелкаем по кнопке Save Changes.
В итоге при каждой загрузке страницы будет выводиться только определенное, заданное вами число комментариев.
Использование локально размещенных аватаров
WordPress имеет встроенную поддержку Gravatar. Это означает, что у любого пользователя с аккаунтом Gravatar будет свое собственное изображение, добавленное в качестве аватара, которое будет выводиться при комментировании записей блога с помощью родной системы комментариев WordPress. Это позволяет персонализировать секцию комментариев, однако это также приводит к росту затрачиваемых ресурсов. При загрузке комментариев WordPress каждый отдельный Gravatar требует совершения HTTP-запроса. Таким образом, если страница загружается с комментариями от 50 разных пользователей, то в таком случае необходимо будет выполнить 50 HTTP-запросов для загрузки всех граватаров. Вы можете представить, насколько высоким будет воздействие на производительность.
Если вы считаете, что Gravatar’ы не стоят добавленных HTTP-запросов, вы можете поступить двумя способами. Во-первых, вы можете отключить аватары полностью в разделе Settings – Discussion: найдите секцию Avatars, после чего уберите галочку напротив Show Avatars.
Если вы не хотите принимать такую решительную меру, вы можете переключиться к локально размещенным аватарам. Чтобы сделать это, установите плагин WP User Avatar. После установки плагина перейдите в раздел Avatars – Settings и выберите пункт Disable Gravatar and use only local avatars.
Помните, что после внесения этого изменения все комментарии будут выводиться с дефолтным аватаром кроме тех случаев, когда пользователи зарегистрируются на сайте и загрузят произвольный аватар.
Использование сторонней системы комментирования
Есть много причин, почему вы можете интересоваться переходом на стороннюю систему комментирования. Во-первых, это нагрузка на сервер. Создание и загрузка комментариев является достаточно ресурсоемким процессом. Если ваша секция с комментариями является достаточно крупной, то в таком случае переход к сторонней системе комментирования поможет снять нагрузку с вашего сервера.
Кроме того, сторонние системы комментирования предлагают лучший опыт взаимодействия, нежели родная система комментирования WordPress. Они могут подтолкнуть посетителей к комментированию, поскольку нередко посетители имеют аккаунты в сторонних системах, т.е. им не придется регистрироваться или вводить какую-либо информацию о себе.
В некоторых случаях эти преимущества являются достаточно весомыми. Но это не универсальное решение.
Не все любят сторонние системы комментирования – многие переживают о незаметном сборе пользовательских данных. В дополнение к сказанному стоит отметить, что предположение о том, что сторонние системы работают быстрее, чем родная система комментирования, хорошо звучит лишь в теории, но на практике все может обернуться совершенно иначе.
Если вы решили использовать стороннюю систему комментирования, делайте так по причинам того, что вам нравится опыт взаимодействия, который несет в себе та или иная система, и потому, что ваши посетители сайта будут рады такому решению. Не стоит переключаться к сторонней системе только потому, что вы хотите улучшить производительность, поскольку это не всегда случается на практике. Если вы хотите все же переключиться к сторонней системе, рассмотрите также следующий вариант: lazy loading.
Ленивая загрузка комментариев
Lazy loading – это прекрасный метод ускорения загрузки страницы, который работает как с родной системой комментариев, так и со сторонними решениями. Системы комментирования, отличающиеся «ленивой загрузкой», выносятся за пределы базовой обработки страницы и загружаются либо с помощью JS, когда посетитель достиг определенной точки страницы, либо с помощью щелчка по кнопке по типу «Посмотреть комментарии».
Реализовать «ленивую загрузку» можно разными способами. Есть удобные плагины, позволяющие подгрузить систему комментирования с помощью данной техники.
«Ленивая загрузка» родной системы комментариев WordPress
Чтобы выполнить lazy loading для родной системы комментариев в WordPress, достаточно установить, к примеру, плагин wpDiscuz.
Плагин доступен в каталоге плагинов WordPress. Вы можете установить его через панель администратора.
После того, как плагин будет установлен, переходим в раздел Comments — Settings, прокручиваем вниз до Comments loading/pagination type, выбираем пункт Lazy loading comments on scrolling.
Далее переходим в раздел Settings > Discussion. В секции Other comment settings уменьшаем число комментариев «Break comments into page with». Используем небольшое число, менее 10, после чего сохраняем изменения.
Не ставьте флажок напротив этого пункта. В противном случае стандартная пагинация WordPress может переопределить возможность «ленивой загрузки».
Теперь, если вы посетите страницу сайта, на которой имеется более 10 комментариев, только первые 10 из них будут загружены. Дополнительные комментарии будут загружаться автоматически, как только вы достигнете нижней части секции комментариев.
«Ленивая загрузка» для Disqus
Если вы используете Disqus, очень важно добиться «ленивой загрузки» комментариев. Если вы не сделаете этого, Disqus может стать реальной помехой для скорости загрузки вашего сайта. Решить эту проблему можно с помощью реализации «ленивой загрузки» комментариев Disqus.
Disqus Conditional Load – бесплатный плагин, который вы можете использовать для «ленивой загрузки» Disqus на вашем сайте. После установки плагина переходим в раздел Comments > Disqus и выбираем Upgrade, чтобы настроить вашу базу данных для работы с Disqus.
«Ленивая загрузка» комментариев Facebook
Разработчик плагина Disqus Conditional Load также создал плагин для «ленивой загрузки» комментариев Facebook. Скрипты Facebook могут серьезно замедлить работу сайта, даже если они подгружаются асинхронно.
Lazy Facebook Comments – бесплатный плагин, который вы можете использовать для «ленивой загрузки» комментариев. Они будут загружаться либо при скроллинге, либо при щелчке по кнопке. В итоге скрипты Facebook будут подключаться только в том случае, когда они нужны. Вы можете выбирать число комментариев, цветовую схему, язык, ширину, порядок сортировки и т.д.
Заключение
Комментарии – важная функция большинства блогов, однако растущий раздел комментариев может серьезно повлиять на скорость работы вашего сайта. Вы можете ускорить комментарии и свой WordPress-сайт, оптимизировав родные комментарии WordPress и прибегнув к «ленивой загрузке» для того, чтобы вынести их из базовой загрузки страницы.
Крайне неудобно сделано — отменили подписку на комментарии. А все комментарии не сделали. Как мне теперь найти мой прошлый комментарий? Вдруг на него ответили?
Виджет с 5ю комментариями не показывает те которые ушли ниже
Отбивает всякое желание оставлять тут свои мысли и общаться.
Да — я знаю — и на этот комментарий я не получу ответа — а если и получу — то не увижу. Нет у меня времени каждые 5 минут на сайт заходить и проверять. Убили все удобство
Плагин Subscribe to Comments Reloaded начал конфликтовать с темой, поэтому его не получается использовать. Посмотрю еще аналоги его.
Тоже столкнулся с проблемой долгой загрузки комментариев.