Как уменьшить на сайте размер занимаемый картинками?
Предыстория. Вы создали сайт на WordPress и он прекрасно развивается растёт — всё хорошо. Но! Через пару лет вы замечаете, что резервная копия, а вы ведь периодически создаёте такой backup сайта на всякий случай, мало ли) так вот вы видите что размер резервной копии сайта более 2,3 или даже 4 и более гигабайт! Что делать? Тут многие админы сайтов уже за годы эксплуатации своего интернет проекта начинают устанавливать всякие плагины по оптимизации изображений и прочую всякую ерунду толку от которой практически нет, но зато есть много геморроя)
Я предлагаю простое решение. Все современные сайты, а именно так должно быть для сайтов наших дней — находятся на VPS (выделенный виртуальный сервер). По цене VPS стоит сейчас примерно так же как обычный виртуальный план, но за то это свобода, мощь и независимость от других проектов размещённых на одном ip как это принято на обычных виртуальных тарифных планах почти всех существующих хостинг компаний. На VPS вся мощь сервера принадлежит только вашему интернет проекту — простая регистрация и аккаунт готов к работе. Как установить программное обеспечение и настроить сервер? Я рекомендую чтобы в начале не заморачиваться с работой в терминале — установить простые и популярные бесплатные панели управления сервером:
Какую выбрать? Мне в последние годы интереснее OpenLiteSpeed — почему? Вот сравнение современных систем (ссылка без VPN может не открыться). Вот основное в картинках из материала:

OpenLiteSpeed vs Apache

OpenLiteSpeed vs Apache
Вернёмся к теме статьи. И так как же оптимизировать картинки на сайте. И так вы современный юзер и ваш сайт на VPS если ещё нет то желательно это сделать, повторюсь стоит так же а плюсов в разы больше. Раз вы на VPS то подключаетесь по ssh к серверу:
ssh root@89.93.131.146
и в следующей строке пароль (копируете его и вставляете нажатием правой кнопки мыши, визуально ничего не произойдёт, потом Enter)
я использую стандартную программу на Windows это «Windows Power Shell»
Далее пошаговое действие и да у меня все картинки были в формате .jpeg и .jpg
nano /root/optimize_jpg_uploads.sh
откроется пустое содержание, вводите туда следующий скрипт, вставь полностью:
#!/bin/bash
BASE_DIR="/var/www/ruistat_22/data/www/ruistat.ru/wp-content/uploads"
LOG_FILE="/root/jpg_optimize.log"
MIN_SIZE=153600 # 150 KB
echo "=== JPG optimization started $(date) ===" >> "$LOG_FILE"
find "$BASE_DIR" -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) -size +${MIN_SIZE}c -print0 |
while IFS= read -r -d '' file; do
SIZE_BEFORE=$(stat -c%s "$file")
jpegoptim \
--strip-all \
--max=82 \
--all-progressive \
"$file" >> "$LOG_FILE" 2>&1
SIZE_AFTER=$(stat -c%s "$file")
if [ "$SIZE_AFTER" -lt "$SIZE_BEFORE" ]; then
SAVED=$((SIZE_BEFORE - SIZE_AFTER))
echo "OK: $file | saved $SAVED bytes" >> "$LOG_FILE"
else
echo "SKIP: $file | no gain" >> "$LOG_FILE"
fi
done
echo "=== JPG optimization finished $(date) ===" >> "$LOG_FILE"
где надо изменить лишь эту строку:
BASE_DIR="/var/www/ruistat_22/data/www/ruistat.ru/wp-content/uploads"
это путь до папки с картинками и он будет у вас свой. Чтобы узнать какой он этот свой путь — откройте файловый в панели управления сервером Fastpanel или OpenLiteSpeed и пройдите до папки /uploads/ — это и будет ваш путь который надо вставить в скрипт который я привёл выше.
Далее нажимаете в английской раскладке клавиатуры CTRL O далее жмёте на кнопку ENTER и далее CTRL X
Такими действиями вы сохраните внесённые изменения в создаваемый скрипт. Уточню что здесь CTRL O буква O в английской раскладке.
Потом устанавливаете права
chmod +x /root/optimize_jpg_uploads.sh
Чтобы сперва посчитать сколько было гб и сколько станет после оптимизации картинок на сайте используйте эту команду:
du -sh /var/www/ruistat_22/data/www/ruistat.ru/wp-content/uploads
тут же получите ответ в терминале, далее оптимизация:
nohup /root/optimize_jpg_uploads.sh > /root/jpg_optimize_nohup.log 2>&1 &
Чтобы понять когда процесс завершиться я тут же запускаю команду отслеживающую нагрузку на сервере в реальном времени:
top
и в первых строках увидите такой процесс:
jpegoptim
этот процесс будет то появляться то пропадать и через пару минут (у меня на 3 гб ушло времени меньше 1 минуты на всю оптимизацию)
вы увидите 
и перестанет выскакивать процесс:
jpegoptim
это значит оптимизация прошла, и прошла успешно! Запускайте такую команду (не забудьте указывать в командах свои данные домена и правильный путь)
du -sh /var/www/ruistat_22/data/www/ruistat.ru/wp-content/uploads
чтобы увидеть новый оптимизированный размер папки где храняться ваши картинки сайта.
У меня за счёт оптимизации картинок на сайте размер резервной копии уменьшился более чем в два раза.

Напомню что запуск возможен только от root (запуск возможен только у того, у кого есть root/sudo) и скрипт лежит в /root/ это означает: каталог /root доступен только пользователю root другие пользователи туда даже с cd не смогут попасть, права на файл даже если файл chmod +x без доступа к /root — недостижим, права на файлы WordPress /var/www/…/uploads обычно принадлежат www-data, но root может писать везде, а обычный пользователь — нет (если явно не разрешено).
Что будет, если другой пользователь попробует запустить скрипт. Permission denied — что переводится, как «в разрешении отказано»
Выбрать хостинг