=== Speedy Go === Contributors: codeandcore Tags: caching, optimization, performance, minification, compression Requires at least: 5.0 Tested up to: 7.0 Requires PHP: 7.2 Stable tag: 2.1.6 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Optimize your WordPress site with advanced caching, minification, and performance tools for faster loading. == Description == Speedy Go is an all-in-one performance plugin for WordPress, designed to optimize every aspect of your site's speed and efficiency. It features full-page caching, HTML/CSS/JS minification and combination, browser and object caching, Gzip & Brotli compression, lazy loading, mobile-specific caching, cache preloading, scheduled expiration, and advanced cache rules. == Major Features & Functions == **Caching & Performance** - **Full-Page Caching**: Cache entire pages for instant delivery, with options for cache expiry, exclusions, and auto-purge. - **Cache Expiry & Auto Purge**: Set cache expiration rules and automatically purge outdated cache files. - **Exclude URLs**: Define URLs to be excluded from caching. - **Browser Caching**: Leverage browser cache to reduce load times. - **Object Caching**: Speed up dynamic content using object cache and transients. - **Database Query Caching**: Optimize repeated database queries. - **Mobile Caching**: Serve optimized cache for mobile users. - **Cache Preloading & Warm-Up**: Automatically preload and warm up cache for improved response times. - **Scheduled Expiration**: Automate cache expiration to keep content fresh. - **Advanced Cache Rules**: Fine-tune caching with advanced rules and exclusions. **Asset Optimization** - **HTML Minification**: Reduce HTML file size for faster rendering. - **CSS & JS Minification**: Minify and combine CSS and JavaScript files for optimal delivery. - **CSS & JS Combination**: Combine multiple CSS/JS files to reduce HTTP requests. - **Exclude CSS/JS Files**: Exclude specific files from minification or combination. - **Gzip & Brotli Compression**: Compress files for improved speed. **User Experience & Admin Tools** - **Lazy Loading**: Defer offscreen images for faster initial page loads. - **Admin Dashboard Widget**: Monitor cache status from the dashboard. - **Debug Tools & Logging**: Advanced debug logging and error tracking for troubleshooting. - **User-Friendly Admin Interface**: Modern, easy-to-use settings and management screens, including tabs for General, Advanced, and System Info. - **Admin Bar Integration**: Quick access to cache purging and settings from the admin bar. - **Settings API Integration**: All options are managed via the WordPress Settings API for reliability and security. - **AJAX Bulk Actions**: All bulk actions and progress checks are handled via secure AJAX endpoints. **Advanced & Developer Features** - **Custom Cron Schedules**: Register and use custom cron intervals for cache processing. - **System Info Tab**: View server and plugin environment details (PHP version, GD/Imagick support, disk space, etc). - **Logging**: Optionally enable detailed logging of batch progress and failures to a log file. - **Uninstall Cleanup**: On uninstall, all plugin-created cache and database tables are removed. == Installation == 1. Upload the plugin files to `/wp-content/plugins/speedy-go` or install via the WordPress plugins screen. 2. Activate the plugin through the 'Plugins' screen in WordPress. 3. Go to **Settings → Speedy Go** to configure caching and optimization settings. == Usage == * Enable/disable features as needed from the settings page. * Monitor progress and logs from the dashboard widget and debug tools. * Use the admin bar for quick cache purging and access to settings. == Frequently Asked Questions == = Does this plugin require special server configuration? = No, Speedy Go works with standard WordPress installations. For best results, use PHP 7.2+. = Can I exclude specific files or URLs from caching or minification? = Yes, you can define exclusions for caching, minification, and combination in the settings. == Screenshots == 1. Plugin Dashboard: Plugin connection screen. == Changelog == = 2.1.6 = * New: Added API detection to automatically notify users if another caching plugin is active, preventing conflicts. * Enhancement: Redesigned the admin connection page with a modern UI and manual connection fallback form. * Enhancement: Added active and hover state styling for the SpeedyGo admin menu. * Enhancement: Made the admin connection page WPML translation ready. * Cleanup: Removed unused promo banners and background images to reduce plugin footprint. = 2.1.5 = * Fix: Removed a temporary debug block from the license validation flow that could leak raw database details (table name, query counts) inside the "Invalid license key" error shown on the Connect page. Added a safety net so debug output can never reach a customer's screen again, even from a future server-side regression. * Fix: font-display: swap now correctly overrides an existing bad value (e.g. font-display: block or auto) shipped in a theme or third-party plugin's own font CSS, instead of only applying when the property was missing entirely. Previously, a theme icon font or a service like Font Awesome that already set font-display: block would keep that value untouched, leaving the PageSpeed "Font display" warning in place even with this setting enabled. * Fix: Resolved "Mixed Content" errors that could block the plugin's own generated CSS, JS, and WebP images on sites running behind a reverse proxy or CDN that terminates SSL upstream of the server (e.g. Cloudflare, a load balancer). Cache URLs are now correctly generated as https when the site is actually served over https, even when WordPress's own SSL detection is inconclusive. = 2.1.4 = * Fix: When both Gzip/Brotli compression and "Defer JS" were enabled at the same time, the defer attribute was silently never added to any script tag. Root cause: compression ran first, converting the HTML to binary bytes, then the defer pass couldn't find any `