WordPress Speed Optimization Guide
1. Caching Implementation
Server-level Caching
- Enable PHP OPcache
- Use Redis or Memcached for object caching
- Implement browser caching through
.htaccess
Add browser caching rules to .htaccess:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
</IfModule>
Recommended Caching Plugins
2. Image Optimization
Best Practices
- Use appropriate image dimensions
- Compress images before upload
- Implement lazy loading
- Use WebP format when possible
Image Optimization Plugins
3. Database Optimization
Add this code to wp-config.php to limit post revisions:
define('WP_POST_REVISIONS', 5);
define('EMPTY_TRASH_DAYS', 7);
Database Maintenance
- Regular cleanup of post revisions
- Remove unused themes/plugins
- Optimize database tables
4. Code Optimization
CSS/JS Management
- Minimize HTTP requests
- Combine CSS/JS files
- Load scripts conditionally
Example of conditional script loading:
function load_custom_scripts() {
if (is_single()) {
wp_enqueue_script('custom-single', get_template_directory_uri() . '/js/single.js', array(), '1.0', true);
}
}
add_action('wp_enqueue_scripts', 'load_custom_scripts');
5. Hosting and CDN
Hosting Requirements
- PHP 7.4+ recommended
- SSD storage
- Adequate RAM
- Server-level caching
CDN Integration
- Use CloudFlare or similar CDN
- Enable CDN for static assets
- Configure DNS properly
6. General Tips
- Keep WordPress core, themes, and plugins updated
- Use a lightweight theme
- Disable unused features
- Monitor performance regularly
- Use GTmetrix or Pingdom for testing
Security Considerations
- Only use trusted plugins/themes
- Implement rate limiting
- Configure proper file permissions
- Use security headers
Common Pitfalls
- Over-installing plugins
- Using unoptimized images
- Ignoring database maintenance
- Cheap hosting providers
- Not measuring performance regularly
Performance Monitoring
Add basic performance monitoring:
function log_page_load_time() {
$time = timer_stop(0, 3);
error_log("Page generated in $time seconds");
}
add_action('shutdown', 'log_page_load_time');
Remember to regularly test your site's speed using tools like:
- Google PageSpeed Insights
- GTmetrix
- Pingdom
- WebPageTest
These optimizations should be implemented gradually while monitoring site functionality. Always backup your site before making significant changes.