228 lines
6.6 KiB
Markdown
228 lines
6.6 KiB
Markdown
# Maple Performance WP 🍁
|
|
|
|
A lightweight, privacy-focused WordPress performance plugin. No external dependencies, no tracking, no upsells.
|
|
|
|
**Built by [Maple Open Tech](https://mapleopentech.ca) for Canadian businesses who care about data sovereignty.**
|
|
|
|
## Features
|
|
|
|
### Page Caching
|
|
- Static HTML file generation
|
|
- Gzip pre-compression
|
|
- Brotli pre-compression (if PHP extension installed)
|
|
- Smart cache invalidation on content updates
|
|
- Automatic exclusion for logged-in users
|
|
|
|
### Asset Optimization
|
|
- **HTML**: Minification, comment removal
|
|
- **CSS**: Minification, aggregation, optional async loading
|
|
- **JavaScript**: Minification, aggregation (disabled by default for safety)
|
|
- **Google Fonts**: Combine multiple requests, add display:swap, optional deferred loading
|
|
|
|
### Lazy Loading
|
|
- Native `loading="lazy"` for images
|
|
- Native `loading="lazy"` for iframes
|
|
- Exclude LCP/hero images from lazy loading
|
|
|
|
### Extra Optimizations
|
|
- Remove WordPress emoji scripts
|
|
- Remove query strings from static resources
|
|
- DNS prefetch hints
|
|
- Preconnect to third-party domains
|
|
|
|
### Smart Plugin Compatibility
|
|
|
|
Maple Performance automatically detects these plugins and applies safe exclusions:
|
|
|
|
| Plugin | Automatic Protections |
|
|
|--------|----------------------|
|
|
| **WooCommerce** | Cart/checkout/account pages excluded from cache, WooCommerce cookies bypass cache, cart fragments and checkout scripts protected |
|
|
| **LearnDash** | Lesson/topic/quiz pages excluded, progress tracking AJAX protected, quiz scripts excluded from aggregation |
|
|
| **WPForms** | Form validation scripts excluded, AJAX submissions protected |
|
|
| **Wordfence** | Security scripts excluded, login pages not cached, firewall bypass cookies respected |
|
|
| **Gravity Forms** | Form scripts excluded from aggregation |
|
|
| **Contact Form 7** | Form scripts excluded from aggregation |
|
|
| **Elementor** | Builder scripts excluded from aggregation |
|
|
|
|
## Site Modes
|
|
|
|
Select your site type and Maple Performance automatically applies safe defaults:
|
|
|
|
| Site Type | JS Aggregate | CSS Defer | Expected Score |
|
|
|-----------|--------------|-----------|----------------|
|
|
| Brochure/Blog | ✅ Available | ✅ Available | 80-95 |
|
|
| WooCommerce | ❌ Disabled | ❌ Disabled | 70-85 |
|
|
| LearnDash | ❌ Disabled | ❌ Disabled | 70-85 |
|
|
| WooCommerce + LearnDash | ❌ Disabled | ❌ Disabled | 65-80 |
|
|
|
|
## Installation
|
|
|
|
### From GitHub
|
|
1. Download or clone this repository
|
|
2. Upload the `maple-performance-wp` folder to `/wp-content/plugins/`
|
|
3. Activate through WordPress admin
|
|
4. Go to Settings > Maple Performance
|
|
5. Select your site type and configure
|
|
|
|
### From WordPress Admin
|
|
1. Go to Plugins > Add New
|
|
2. Upload the zip file
|
|
3. Activate and configure
|
|
|
|
## Configuration
|
|
|
|
### Brochure Sites (Maximum Performance)
|
|
|
|
```
|
|
Site Mode: Brochure
|
|
Cache: Enabled
|
|
HTML Minify: On
|
|
CSS Minify: On
|
|
CSS Aggregate: On
|
|
CSS Defer: On (optional)
|
|
JS Minify: On
|
|
JS Aggregate: On
|
|
Lazy Load: On
|
|
```
|
|
|
|
### WooCommerce Sites (Safe Defaults)
|
|
|
|
```
|
|
Site Mode: WooCommerce
|
|
Cache: Enabled (cart/checkout excluded)
|
|
HTML Minify: On
|
|
CSS Minify: On
|
|
CSS Aggregate: On
|
|
CSS Defer: Off
|
|
JS Minify: On
|
|
JS Aggregate: Off (protects checkout)
|
|
Lazy Load: On
|
|
```
|
|
|
|
### LearnDash Sites (Safe Defaults)
|
|
|
|
```
|
|
Site Mode: LearnDash
|
|
Cache: Enabled (lessons excluded for logged-in)
|
|
HTML Minify: On
|
|
CSS Minify: On
|
|
CSS Aggregate: On
|
|
CSS Defer: Off
|
|
JS Minify: On
|
|
JS Aggregate: Off (protects tracking)
|
|
Lazy Load: On
|
|
```
|
|
|
|
## Privacy
|
|
|
|
This plugin:
|
|
- ✅ Processes everything locally on your server
|
|
- ✅ Makes zero external API calls
|
|
- ✅ Sends no data to third parties
|
|
- ✅ Has no tracking or analytics
|
|
- ✅ Has no premium upsells or nags
|
|
- ✅ Is fully open source (GPL-2.0)
|
|
|
|
## Privacy & GDPR Compliance
|
|
|
|
Maple Performance WP is designed with privacy as a core principle:
|
|
|
|
| Aspect | Status |
|
|
|--------|--------|
|
|
| Personal data collection | ❌ None |
|
|
| Cookies set by plugin | ❌ None |
|
|
| External connections | ❌ None |
|
|
| Tracking/analytics | ❌ None |
|
|
| Third-party services | ❌ None |
|
|
|
|
### What the plugin stores
|
|
|
|
- **Page cache**: Static HTML copies of publicly-visible pages (same content any visitor sees)
|
|
- **Asset cache**: Aggregated/minified CSS and JS files
|
|
- **Settings**: Your plugin configuration (no personal data)
|
|
|
|
### Cookie behavior
|
|
|
|
The plugin **reads** existing cookies (WordPress login, WooCommerce cart) only to determine whether to serve cached content. It never sets, modifies, or transmits cookie data.
|
|
|
|
### Privacy Policy
|
|
|
|
The plugin automatically registers suggested privacy policy text with WordPress (Settings → Privacy) that you can include in your site's privacy policy.
|
|
|
|
## Requirements
|
|
|
|
- WordPress 5.9+
|
|
- PHP 7.4+
|
|
- Write access to `wp-content/cache/`
|
|
|
|
## Cache Location
|
|
|
|
Cached files are stored in:
|
|
```
|
|
wp-content/cache/maple-performance/
|
|
├── assets/ # Aggregated CSS/JS files
|
|
├── {domain}/ # Page cache by domain
|
|
│ └── {path}/ # Page cache by URL path
|
|
│ ├── https-index.html
|
|
│ ├── https-index.html.gz
|
|
│ └── https-index.html.br
|
|
```
|
|
|
|
## Hooks & Filters
|
|
|
|
### Actions
|
|
|
|
```php
|
|
// Clear all cache
|
|
do_action( 'maple_performance_clear_cache' );
|
|
|
|
// After cache is cleared
|
|
do_action( 'maple_performance_cache_cleared' );
|
|
```
|
|
|
|
### Filters
|
|
|
|
```php
|
|
// Modify settings programmatically
|
|
add_filter( 'maple_performance_settings', function( $settings ) {
|
|
$settings['cache_enabled'] = false;
|
|
return $settings;
|
|
});
|
|
|
|
// Exclude specific URLs from caching
|
|
add_filter( 'maple_performance_exclude_url', function( $exclude, $url ) {
|
|
if ( strpos( $url, '/members/' ) !== false ) {
|
|
return true;
|
|
}
|
|
return $exclude;
|
|
}, 10, 2 );
|
|
```
|
|
|
|
## Comparison
|
|
|
|
| Feature | Maple Performance | Autoptimize | Cache Enabler | WP Rocket |
|
|
|---------|------------------|-------------|---------------|-----------|
|
|
| Page Cache | ✅ | ❌ | ✅ | ✅ |
|
|
| CSS/JS Minify | ✅ | ✅ | ❌ | ✅ |
|
|
| CSS/JS Aggregate | ✅ | ✅ | ❌ | ✅ |
|
|
| Google Fonts Optimization | ✅ | ✅ | ❌ | ✅ |
|
|
| External Dependencies | ❌ None | ⚠️ Optional | ⚠️ CDN promo | ✅ Required |
|
|
| Tracking | ❌ None | ⚠️ News feed | ❌ None | ✅ License |
|
|
| Upsells | ❌ None | ✅ Yes | ✅ Yes | N/A (paid) |
|
|
| WooCommerce Safe Mode | ✅ | ❌ | ❌ | ✅ |
|
|
| LearnDash Safe Mode | ✅ | ❌ | ❌ | ❌ |
|
|
| Price | Free | Free | Free | $59/year |
|
|
|
|
## Contributing
|
|
|
|
Contributions are welcome! Please feel free to submit issues and pull requests.
|
|
|
|
## License
|
|
|
|
GPL-2.0-or-later - see [LICENSE](LICENSE) for details.
|
|
|
|
## Credits
|
|
|
|
Built by [Maple Open Tech](https://mapleopentech.ca) 🍁
|
|
|
|
Inspired by the core concepts from Autoptimize and Cache Enabler, rebuilt from scratch with privacy and safety in mind.
|