Custom Image Compression
A powerful WordPress plugin that automatically compresses newly added images to your media library with support for WebP conversion.
by Aliyan Faisal · github.com/aliyanfaisal/image-compression-wordpress-plugin · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/aliyanfaisal/image-compression-wordpress-plugin/archive/refs/heads/master.zipA powerful WordPress plugin that automatically compresses newly added images to your media library with support for WebP conversion.
Features
- Automatic Image Compression: Automatically compress images when they are uploaded to the WordPress media library
- Adjustable Compression Level: Control compression quality from 1-100% (lower = smaller files, higher = better quality)
- WebP Conversion: Automatically convert images to modern WebP format for better compression
- Original Backup: Option to preserve original images before compression
- Compression Logging: Track all compression activities for debugging
- Compression Counter: Display the total number of compressed images on the settings page
- Easy Settings Panel: User-friendly settings page under Settings menu
- Multiple WordPress Hooks: Uses all available WordPress hooks for detecting new and edited images
Installation
- Download the plugin and extract it to your WordPress
wp-content/plugins/directory - Activate the plugin from the WordPress Plugins page
- Navigate to Settings > Image Compression to configure
Requirements
- WordPress 4.0 or higher
- PHP 5.6 or higher
- GD Library (for image processing)
WordPress Hooks Used
The plugin leverages multiple WordPress hooks to detect image changes:
- wp_handle_upload - Fires when a file is uploaded
- wp_insert_attachment - Fires when an attachment post is inserted
- edit_attachment - Fires when an attachment is edited
- attachment_save_post - Fires when an attachment is saved
Settings
Enable Compression
Toggle to enable/disable automatic image compression. When disabled, new uploads won't be compressed.
Compression Level
Adjust the compression quality (1-100%):
- 1-30%: Maximum compression (smallest files, lower quality)
- 31-70%: Balanced compression (good quality/file size ratio)
- 71-100%: Minimal compression (largest files, best quality)
Convert to WebP
Enable automatic conversion of images to WebP format. WebP offers superior compression compared to JPEG and PNG while maintaining quality.
Preserve Original Images
Keep backup copies of original images before compression. Backups are stored in a backups/ folder within your uploads directory.
Enable Compression Logs
Enable logging of all compression activities. Logs are stored in the plugin directory as compression.log.
Supported Image Formats
- JPEG/JPG
- PNG
- GIF
- WebP
File Structure
afb-image-compression/
├── afb-image-compression.php # Main plugin file
├── assets/
│ ├── css/
│ │ └── admin.css # Admin panel styles
│ └── js/
│ └── admin.js # Admin panel scripts
├── compression.log # Compression activity log (auto-generated)
└── README.md # This file
Plugin Information
- Plugin Name: Custom Image Compression
- Author: Aliyan Faisal
- Author URI: https://aliyanfaisal.com
- Version: 3.4.0
- License: GPL-2.0+
Technical Details
Image Compression
The plugin uses PHP's GD Library to handle image compression:
- JPEG: Uses JPEG quality setting (1-100)
- PNG: Uses PNG compression level (0-9, converted from quality setting)
- GIF: Converts to palette-based for compression
- WebP: Uses imagewebp() function with quality setting
Database Options Used
cic_compression_enabled- Enable/disable compressioncic_compression_level- Compression quality (1-100)cic_enable_webp- WebP conversion settingcic_enable_logs- Enable/disable loggingcic_preserve_originals- Original backup settingcic_compressed_images_count- Total compressed images counter
Frequently Asked Questions
Q: Will compression reduce image quality? A: The effect depends on your compression level setting. Higher compression (lower %) values will reduce file size more but may impact quality. Test with your desired setting on sample images.
Q: Where are the logs stored?
A: Logs are stored in wp-content/plugins/afb-image-compression/compression.log when logging is enabled.
Q: Where are backup images stored?
A: Backups are stored in a backups/ folder within the same directory as each original image in your uploads folder.
Q: Can I disable compression for specific images? A: Currently, compression applies to all uploaded images. You can disable the plugin or temporarily turn off compression in settings.
Q: Does this affect existing images? A: No, only newly uploaded or edited images are compressed. To compress existing images, you would need a separate tool.
Support
For support, please visit: https://aliyanfaisal.com
License
This plugin is licensed under the GPL-2.0+. See LICENSE file for details.
Changelog
Version 3.4.0
- Added size fields
- More fixes and compression fixes
- Added new column for media
Version 1.0.0
- Initial release
- Image compression for JPEG, PNG, GIF, and WebP
- WebP conversion support
- Settings page with compression controls
- Compression logging
- Original image backup
- Compression counter