Audit your plugins first
Every active plugin adds some amount of processing and, often, frontend assets (CSS and JavaScript) that load whether a page needs them or not. Start by listing every active plugin and asking honestly whether it’s still needed — overlapping plugins (two SEO plugins, two caching plugins) are a common, easily fixed source of waste.
Set up proper caching
A good caching setup — page caching, object caching, and browser caching for static assets — is one of the highest-impact changes available for a typical WordPress site. Which caching approach is right depends on your hosting environment; some managed WordPress hosts include server-level caching that makes a plugin-based cache redundant or even counterproductive.
Clean up the database
WordPress databases accumulate post revisions, spam comments, transients, and orphaned data over time. Periodically cleaning this up keeps queries fast — a bloated database slows down every request that touches it, including the admin dashboard.
Optimize images properly
Compress images on upload, serve appropriately sized images for different screen sizes (responsive images), and lazy-load anything below the fold. Media libraries that have accumulated years of uncompressed, oversized images are a very common performance bottleneck.
Review your theme, not just plugins
Heavy page builders and bloated themes can load significant CSS and JavaScript on every page regardless of what’s actually used. This is often overlooked because it’s ‘part of the theme’ rather than a discrete plugin — but the performance cost is real.
Consider your hosting environment
Shared hosting with many sites on one server can cap how fast WordPress can ever respond, regardless of optimization elsewhere. If server response time (TTFB) stays high after other fixes, hosting is worth reviewing honestly.