WP Manifestindependent plugin directory
manifest / media / image-compression-wordpress-plugin

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

0stars
0forks

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.zip

A 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

  1. Download the plugin and extract it to your WordPress wp-content/plugins/ directory
  2. Activate the plugin from the WordPress Plugins page
  3. 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:

  1. wp_handle_upload - Fires when a file is uploaded
  2. wp_insert_attachment - Fires when an attachment post is inserted
  3. edit_attachment - Fires when an attachment is edited
  4. 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 compression
  • cic_compression_level - Compression quality (1-100)
  • cic_enable_webp - WebP conversion setting
  • cic_enable_logs - Enable/disable logging
  • cic_preserve_originals - Original backup setting
  • cic_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