Sunucunda PHP icin GD kütüphanesi var mı ?
Eski imageları kurtarmak için:
Görseller url leri mysql veritabanına bağlanıp çekebiliyor musun?
Görsellerin bulunduğu klasör senin sunucunda yer alıyor mu ?

Eğer bu sorulara yanıtın evet ise;
Bir sorgu yazarak imageların bulunduğu tablodan verileri çekerek işleme başlayabilirsin eğer çok image varsa LIMIT 100 , 200 şeklinde çekerek birkaç sayfada sıralayabilirsin.
Bu sorgudan gelen cevap şöyle olsun
id,image_name,...
image_name den gelenleri değişkene atarak
function compress_image($source_url, $destination_url, $quality) {
$info = getimagesize($source_url);

if ($info['mime'] == 'image/jpeg')
$image = imagecreatefromjpeg($source_url);

elseif ($info['mime'] == 'image/gif')
$image = imagecreatefromgif($source_url);

elseif ($info['mime'] == 'image/png')
$image = imagecreatefrompng($source_url);

imagejpeg($image, $destination_url, $quality); // butun olayi yapan bu
return $destination_url;
}

$klasor = "images";
foreach($sorgu as $row){
$image_name = $row['image_name'];
$fullPath = $klasor.'/'.$image_name;
$quality = 60; // 1 - 100 e kadar
$destination_url = $fullPath; // eger istersen burayi degistirebilirsin baska bir yere kaydetmek istersen ornegin images klasorunun disina
compress_image($fullPath $destination_url, $quality);
}
//bunun gibi bir tarz kodu gelistirerek ise baslayabilirsin upload yaparken de upload yaptigin yerde yine bu function i kullanabilirsin.
Yeni image eklerken
$file_tmp =$_FILES['image']['tmp_name'];
$file_name = $_FILES['image']['name'];
move_uploaded_file($file_tmp,"images/".$file_name);
compress_image("images/".$file_name, "images/".$file_name, 60);
Bu tarza benzer bir kod gelistirebilirsin ben ornek verdim calisip calismadigindan emin degilim.
son olarak github ta bu konuyla ilgili milyonlarca repository var orayi da inceleyebilirisin ornek olarak
github php compress​​​
berkaycatak adlı üyeden alıntı: mesajı görüntüle
wordpress olsa bir ton eklenti var sorun olmazdı da kendim yazdığım scripti kullanıyorum