Блог о самостоятельных путешествиях

Как удалить лишние картинки c сайта на WordPress

Я прошу прощения у моих постоянных читателей за этот не тематический пост. Все ниже следующее сможет заинтересовать только владельцев сайтов на WordPress. Обещаю не злоупотреблять этой темой впредь. Это первый мой пост на тему блогинга за 3 года.

Как водится через 3 года после начала ведения блога я получила печальное известие со своего хостинга:

На Вашем аккаунте  осталось менее десяти процентов свободного дискового пространства. Нехватка места может привести к сбоям в работе Ваших сайтов и почты.

За три года я исчерпала лимит в 2Гб. Вообще конечно не стоило дожидаться таких предупреждений, но что сделано, то сделано. Я решила удалить лишние миниатюры картинок при помощи плагинов. Изучив интернет на эту тему, я поняла, что топ выдачи полон крайне низкокачественными постами. Ни один из этих постов не разбирает проблему полностью, а некоторые дают откровенно вредные советы, говорящие о том что авторы советов сами не разбираются в этом вопросе.

Во-первых стоит заглянуть в свою папку uploads  и посмотреть, а сколько вообще делается превьюшек для каждого закачанного изображения. В моем запущенном случае оказалось, что на каждое изображение у меня генерируется целых 6 миниатюр разного размера, а сейчас на моем сайте более 3000 фотографий, так что эти превью явно занимают колосальный объем. Все миниатюры создаются в WordPress в момент закачки.

Как удалить лишние картинки c сайта на WordPress

Alt/Prt/Scr Backupа на моем хостинге, поскольку файлы я уже снесла

Конечно мне совершенно не нужно было такое количество миниатюр. Реально я использовала только миниатюры размером 150Х150 на страницах рубрик и меток, для «Библиотеки медиафайлов» размера 150Х150 тоже вполне достаточно.

Далее я изложу что со всем этим делать. Для начала нужно отключить генерацию ненужных миниатюр.

Как отключить генерацию ненужных миниатюр

Источников генерации миниатюр всего 3, чаще всего из них упоминают только первый.

  1. Размеры миниатюр задаются в меню Настройки → Медиафайлы
  2. Генерация миниатюр может быть задана в файле functions.php
  3. Генерация миниатюр может быть задана в плагинах, которые используют картинки, у меня это был плагин Manual Related Posts и Top 10, у вас могут быть другие плагины.

С первым пунктом разобраться легче всего. Заходите в соответствующий пункт меню и зануляете не нужные вам размеры.

Как удалить лишние картинки c сайта на WordPress

Если в вашей папке uploads  есть размеры не заданные в настройках медиафайлов, то следует открыть файл functions.php и поискать там строки, содержащие: “post-thumbnails“, у меня я нашла следующее:

add_theme_support( ‘post-thumbnails‘ );

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

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

Особенно коварны различные слайдшоу, как правило в слайдшоу используется 5-10 слайдов, а превьюшки большого размера генерируется для всех закачиваемых изображений. На мой взгляд это слишком большая роскошь хранить на сервере 3000 миниатюр, ради того чтобы использовать всего 10 из них. Эти 10 необходимых лучше сделать вручную. Но тут говориться, дело вкуса.

Мой плагин Top10 генерировал миниатюру на каждую закачанную картинку, хотя реально использовал от силы 10 штук, т.е. плагины коварны и пожирают место на сервере огромными кусками. Возможно все это от того что миниатюры в WP создаются во время закачки картинки, если бы они создавались только в момент первого обращения за картинкой, то не было бы такой проблемы. Это так из размышлений о недостатках вордпресса.

В плагинах следует так же искать автопоиском по словам “post-thumbnails“, если вы все таки хотите использовать плагин, но не хотите использовать картинки в его функционале. При обновлении плагина эту операцию придется повторить.

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

Если результат удовлетворяет, то можно переходить к следующему этапу.

Как удалить не нужные миниатюры

Важно понимать, что миниатюры генерируются не только в папках на вашем сервере, для каждой миниатюры делается запись в базе данных сайта, поэтому просто удалить файлы миниатюры в папке uploads на вашем сервере не очень хорошая идея. Миниатюры еще используются в «Библиотеке медиафайлов» и в «Миниатюре записи», при неправильном удалении можно получить следующую печальную картину.

Как удалить лишние картинки c сайта на WordPress

При удалении файлов превью пропали

Сами оригиналы фотографий целы, я удалила только миниатюры размером 300х199 и в библиотеке медиафайлов перестали показываться превьюшки. На самом деле для этой цели вполне подойдут миниатюры размером 150х150, но на моем сайте туда почему-то подставились картинки размером 300х199.

Поэтому лучше использовать плагин Thumbnail cleaner, он удалит все миниатюры, а после этого вы сгенерируете новый облегченный набор миниатюр при помощи плагина Regenerate Thumbnails.

Я видела в интернете советы типа : “Вставьте этот  код в файл functions.php и выполните его разок”. А в коде сносятся только записи из базы данных, этот вредный совет не приведет к расчистке существенного места на вашем сервере. Важно удалить и записи в базе данных, и файлы на сервере. А потом сгенерировать это все заново в уменьшенном количестве.

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

Естественно нужно сделать Backup папки uploads и базы данных, на всякий пожарный случай, но лучше без помощи плагина Thumbnail cleaner, чтобы не нагружать сервер, которому предстоит поработать и без этой операции.

Итого у меня было порядка 3000 фотографий и плагин Thumbnail cleaner, насчитал порядка 14000 миниатюр, со сносом плагин справился за 2 минуты.

Генерация же новых миниатюр при помощи плагина Regenerate Thumbnails заняла целых 30 минут. И на следующее утро я получила ругательное письмо от Sweb о том что я нарушила условия нашего договора и превысила разрешенную мне нагрузку на сервер. Но к счастью Sweb ограничился только этим письмом. Ниже можете оценить насколько повысилась нагрузка на сервер в результате моих операций.

Нагрузка на сервер

Плагин DNUI Delete not used image

До того как  проделать все вышеизложенное, я пыталась воспользоваться плагином DNUI Delete not used image, но увы опыт оказался неудачным. Два дня 16.03 и 17.03, я пыталась экспериментировать с этим плагином, это заметно, по возросшей нагрузке на сервер. DNUI Delete not used image снес как раз нужные мне миниатюры размером 150х150, в результате страницы рубрик и меток потеряли свои картинки, пришлось восстановить из  Backup.

Итого я очистила на своем сервере 700Мб, совсем не плохо! Может хватит еще на год вперед, до перехода на следующий тариф.

Что еще может пожирать место на диске

Некоторые плагины могут писать логи и никогда не удалять их.

За три года на моем сайте Total Cache записал более 1 Мб логов!!! Отключить их генерацию невозможно из админки, снести их можно только по FTP. Если вы используете Total Cache посмотрите сколько весит у вас содержимое этой папки /wp-content/cache/log/000000, возможно, что после ее зачистки вам не придется возиться с перегенерацией превью.

iThemes Security пишет логи 404 ошибки не забывайте периодически их очищать. Особенно логи разрастаются в момент атаки на сайт.

Популярный плагин Yoast SEO пишет логи 404 ошибки, не вредно будет туда заглядывать, анализировать содержимое и очистить логи. Посмотрите что у вас в «Консоли поиска» Yoast SEO.

Многие плагины в момент установки закачивают все возможные языковые пакеты, все не нужные вам языки стоит снести. Проверьте что у вас находится в папках:

/wp-content/languages/themes

/wp-content/languages/plugins

Вполне возможно, что там остались языковые пакеты от неиспользуемых вами тем и плагинов.

Просмотрите ваши плагины на предмет не нужных вам языковых пакетов по адресам.

/wp-content/plugins/название плагина/lang(languages).

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

Нагрузка на сервер

Моей насущной проблемой является превышение нагрузки на сервер, по моему тарифу процессы на моем сайте должны занимать в день не более 60 минут процессорного времени. Пока Sweb меня терпит, но хотелось бы найти решение этой проблемы. Я давно уже поставила себе Total Cache и он даже работает, но при его подключении я не заметила скачкообразного уменьшения нагрузки, а я его ожидала. В чем прикол этого плагина мне не понятно.

Конечно выделенный сервер решит эту проблему, но он стоит намного дороже, чем виртуальный хостинг. У меня пока не та посещаемость и не те заработки, чтобы так раскошелится. Ведь у многих блогеров бывает посещаемость и в 2000 и 3000 уников, как ваши сервера выдерживают такую нагрузку, каким хостингом вы пользуетесь? Буду благодарна за советы.

Мой опыт использования CDN (Content Delivery Network)

Внимание все ниже перечисленное происходило двумя месяцами позже расчистки места на диске от лишних миниатюр.

Я дождалась очередного злостного письма от своего хостера Sweb. В связи с наступлением активного туристического сезона посещаемость моего сайта скачкообразно возросла и нагрузка на сервер, создаваемая процессами на моем сайте достигла критической величины 120 минут в сутки, напомню что согласно договору моему сайту положено потреблять всего 60 минут процессорного времени в сутки.

wp7

Sweb предложил мне перейти на другой тариф стоимостью всего 800 руб. в месяц!!! Эта не гуманная сумма меня никак не устраивала, сейчас я плачу всего 120 руб. в месяц, повысить цену почти в 6 раз, это грабеж. В результате жаба меня задушила и я решила попробовать CDN от CloudFlare, в конце концов другого выхода у меня не было.

У  CloudFlare есть бесплатный тариф, именно на него я и подключилась. Больше всего беспокойства вызывало требование переписать на  CloudFlare мои DNS записи, но я сделала это, и в результате вы видите на графике нагрузка на сервер существенно снизилась до порога который Sweb склонен прощать. Момент подключения CDN  я отметила зеленой меткой на картинке.

Я конечно ожидала большего, мне мечталось увидеть цифру 30 минут в сутки, но этого не произошло. CDN это система серверов по всему миру на которые копируется ваш сайт и при запросе, например идущем из США, отвечает сервер расположенный в США, а не в Санкт-Петербурге, что должно сократить время загрузки сайта и попутно этот метод сокращает нагрузку на мой сервер.

Кроме системы доставки контента CloudFlare предлагает еще защиту от DOS-атак, аналитику и минимизацию html, css, и js. Я подумываю чтобы отключить минимизатор от Total Cache, поскольку что-то он генерирует ошибку, некоторые мои тексты очень длинные и ему не хватает 128Мб оперативной памяти для минимизации html. По моему тарифу от sweb мне положено всего 64Мб оперативной памяти на процесс, но редактирование файла .htaccess позволяет увеличить этот параметр.

Бесплатный аккаунт  CloudFlare имеет ряд ограничений, что вполне естественно. За один запрос посетитель может загрузить с CloudFlare не более 100Мб и сервера обновляются в течении 24 часов. Т.е. если продать ссылку покупатель увидит ее не сразу, а в течении 24 часов.

Аналитика от CloudFlare

Аналитика от CloudFlare, количество запросов в сутки

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

На будущий сезон наверное нужно переходить на выделенный сервер на DigitalOcean. Я сама никогда не конфигурировала серверов, поэтому процесс вызывает вопросы, но надеюсь у меня получится. Обещаю написать как оно при случае.

 


20 комментария к “Как удалить лишние картинки c сайта на WordPress”

  1. Игорь

    Елена, спасибо за интересную статью! Нашел и прочитал ее, когда уже решил аналогичную проблему на одном из «подопечных» мне сайтов. Также написал на эту тему заметку в своем блоге, в которой опубликовал простой способ выявления ненужных миниатюр и скрипт для отключения их генерации на сайте. Заходите почитать, возможно, пригодится:

    Почему миниатюры изображений WordPress могут занимать много места на сервере и как это исправить
    http://ikalm.ru/pochemu-miniatyury-izobrazhenij-wordpress-mogut-zanimat-mnogo-mesta-na-servere-i-kak-eto-ispravit


  2. Кряква

    Плагин гипер-кэш поставьте.
    И есть такой сайт ктонановенького.ру – там подробно для неспециалистов он рассказывает про снижение нагрузки и много еще чего


    1. Elena Shikova Автор

      Спасибо, у меня стоит Total Cache. Нагрузку еще создают некоторые плагины, например, у меня стоит iThemes Security этот плагин пытался делать бэкап базы данных, вестимо ему не хватало ОЗУ и никакого бэкапа не получалось. Я отключила эту функцию, нагрузка снизилась. Минимизация html, css тоже ела много ресурсов сервера, сейчас это у меня делает CloudFlare, нагрузка еще немного снизилась.
      Потом я посмотрела на логи 404 ошибки, устранила недостатки, которые смогла, но приходится отметить факт, что какие то странные запросы к несуществующим ресурсам моего сервера и никогда не существовавшим идут постоянно, например вот это /b4bcf654b053.html. Потом я снесла миниатюры 300 пикселей в марте, но до сих пор идут запросы к ним ниоткуда, не со страниц моего сайта, как избавится от этих запросов пока не знаю. таких запросов набирается по 500 штук в сутки.


  3. Юлия

    Тоже на днях расчищала место на диске и снесла все миниатюры. за 5 лет накопилось великое множество мусора. Облегчила сервер на с 4 до 1 гига! У меня аж по 8 размеров создано было. Теперь придумываю, как создать миниатюры только отельных картинок, которые выводятся в рубриках и на страницах. Reg thumbnail пересоздает у меня опять по 9 миниатюр на каждую картинку, видимо подцепляет требования разных плагинов. А мне нужно вообще только одной картинки миниатюры, просто в 3 размерах. Не нашла пока такого плагина и думаю вручную придется или код какой искать, чтоб первая фотка конвертилась только.


    1. Elena Shikova Автор

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


  4. seoonly.ru

    Спасибо сэкономил дисковое пространство)))


  5. Татьяна

    Очень знакомы такие насущные проблемы с количеством превью. У меня на каждую фотографию тоже генерируется пять изображений, три из которых я удаляю вручную, в том числе и 150х150. Библиотека медиафайлов и моего блога требует оставлять размер 300х199. Что касается миниатюр на главную и в популярные статьи, то там идут отдельные картинки png, и для них я оставляю размер 150х150.
    А вес фотографий еще очень существенно снижает программа Snagit, которая делает, по сути, скриншот изображения.


    1. Elena Shikova Автор

      Моя библиотека медиафайлов тоже изначально вставляла размер 300Х199. После того как я убрала этот размер в настройках медиафайлов, библиотека стала использовать размер 150х150. Скриншот это не то к чему надо стремится. А фотографии в png значительно больше весят, чем в jpg, Jpg- формат можно подвергнуть уменьшению объема с потерей качества, а png нет.


  6. Мария

    А я закачиваю через загрузчик только заглавную фотку-превью к посту, т.к. она потом везде будет светиться и в разных размерах. Остальные фотографии заливаю через фтп и вставляю обычным кодом . В этом случае никакие Thumbnail не создаются. Что касается нагрузки – оптимизировать код, в том числе файлы css и скрипты. Уменьшить кол-во запросов к бд (как минимум, в правом столбце постоянно создаются запросы к бд – Новые статьи и Популярные статьи). Ну и много другого можно делать, сходу не вспомню)) Ну плагинов, плагинов поменьше, у меня несколько сайтов, везде использую только два плагина – фидбернер и сео. Все!))


    1. Elena Shikova Автор

      У меня новые статьи на первой странице не отображаются, поэтому новые показываются в виджете, хотя эта тема уже устарела, я буду ее менять. А плагин для безопасности вы не используете? Вордпресс регулярно ломают, если не позаботится о безопасности.


  7. Оксана

    Лена, у меня тоже скачан плагин DNUI Delete not used image. При запуске плагин показывает какая картинка прикреплена к статье, а какая свободна. Я удаляла вручную постатейно, потому что у меня был печальный опыт, когда я удалила все, и полетели обои сайта и еще какие-то картинки.
    Честно говоря очень муторно и плагин я пока отключила. Соберусь с мыслями и повторю “забег”.
    У меня хостинг Бегет, ни разу ни о каких нагрузках мне не писал. Видимо все устраивает. Может на твой сайт какая-о массированная атака идет? Пробовала настроить определенным образом iThemes Security, чтобы видеть попытки взлома? Там же можно настроить автоматическую блокировку после 5 неудачных входов в админку сайта.


    1. Elena Shikova Автор

      DNUI Delete not used image показывал мне все превьюшки какие только есть, потом я нажимала кнопку удалить на одной странице и в результате он поудалял только нужные мне превьюшки 150х150, а не нужные оставил, я этот плагин вообще удалила, у меня всего 4 картинки не прикрепленных, это не серьезно. Хостинг мне написал всего 1 раз, когда я превысила нагрузку больше чем вдвое в результате зачистки и генерации картинок. Про превышения порядка 90 минут вместо 60 он меня не беспокоит письмами, я сама отслеживаю нагрузку, так по привычке следить за параметрами. iThemes Security у меня тоже стоит, ограничение 3 попытки. Поскольку эта история с нагрузкой у меня тянется уже больше года, на вряд ли это атака. Нагрузка превышает допустимую после 500 посетителей в сутки, зимой все было в норме, не туристический сезон.


  8. Эллина

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


    1. Elena Shikova Автор

      Я делаю в Фотошопе save for web device, 60% jpg, получается 150-160 Кб на картинку размером 1000Х665 пикселей. Но некоторые мои клиенты, особо капризные, считают что 60% – это низкое качество.


      1. эллина

        Ну, тут приходится выбирать: качество или легкость.


        1. Elena Shikova Автор

          Клиенты, как правило не интересуются техническими моментами и понятия не имеют о проблемах валидности кода, скорости загрузки страницы, правда последнее время начали интересоваться мобильной версией, но и это скорее от того, что свой сайт они хотят видеть на своем телефоне, а не из-за требований гугла.


  9. Валентина

    Я специальными плагинами для удаления лишних миниатюр не пользуюсь. Удаляю вручную в папке uploads. В первый раз правда, не разобравшись тоже наудаляла лишнего. У меня не по 6, а по 4 превьюшки на каждое изображение. Удаляю две, оставляя 150х150 и оригинальный размер изображения, который закачала.
    У меня сайт на хостинге Джино, сначала был на обычном хостинге, тоже всё время заходя на него видела ограничения по Гб, сколько у меня осталось. Потом Джино предложил перейти на их облачный хостинг, якобы без ограничений объёма, и к тому же более дешовый. Ну и действительно сейчас в облачном сервисе никаких ограничений объёмов не пишут.


    1. Elena Shikova Автор

      Спасибо за советы. Прочитала договор публичной оферты Джино, там тоже есть ограничения по пиковой нагрузке на сервер, по количеству оперативной памяти на процесс, и по количеству процессов в единицу времени. На Sweb у меня превышение начинается после 500 посетителей в сутки, а на Джино не понятно сколько будет, без теста не поймешь.


  10. Мария Анашина

    Я многие фотографии загружаю со своих альбомов на Яндекс Фотках. Много читала – стоит ли хранить фото на сторонних хостингах. И в целом ответ – да, так уменьшается нагрузка на свой собственный. И экономится место. На свой хостинг загружаю фот далеко не все – только те, которые идут в заглавной картинке, старые фото и всякие технические.


    1. Elena Shikova Автор

      Большое спасибо за советы, обязательно изучу ваш опыт.


Оставить комментарий

Ваш email не будет опубликован.