A slow WordPress site is almost never caused by “WordPress” itself. It's caused by a few specific things stacked on top of it: the server, the theme, the plugins and the media you upload. The good news is that most sites are slow for the same handful of reasons, and each one has a known fix.
1. Your server responds slowly (high TTFB)
Before the browser can render anything, your server has to build the page. If Time to First Byte is above ~800ms, everything else starts late. Cheap shared hosting, no page cache, and slow database queries are the usual causes. See how to reduce server response time.
2. Pages aren't cached
Without page caching, WordPress runs PHP and database queries for every visitor. A caching plugin (WP Rocket, LiteSpeed Cache, WP Super Cache) or host-level caching serves a pre-built HTML file instead.
3. Your hero image is huge — or lazy-loaded
The largest image above the fold usually determines Largest Contentful Paint. Two mistakes dominate: uploading a multi-megabyte image, and lazy-loading the image that should load first. Read LCP image too heavy and LCP image lazy-loaded.
4. Render-blocking CSS
Themes and page builders load large stylesheets in the <head>. The browser won't paint until they're downloaded. Generating critical CSS and loading the rest asynchronously fixes it. Fix render-blocking CSS.
5. Plugins load assets on every page
A contact form plugin that loads its JavaScript on your blog posts, a slider script on pages without a slider — this adds up fast. A script manager lets you unload assets per page. Reduce unused JavaScript.
6. Third-party scripts
Analytics, chat widgets, ad pixels and embedded videos often cost more than your entire theme. Delaying them until the visitor interacts is one of the highest-impact changes you can make. Delay third-party scripts.
7. Web fonts
Google Fonts loaded from an external domain, without font-display: swap, cause invisible text and layout shifts. Host fonts locally and limit weights. Fix web fonts.
8. Page builder bloat
Elementor, Divi and WPBakery can produce thousands of DOM nodes per page, which slows rendering and interactions. Reduce DOM size.
9. Images without dimensions
Images and embeds without width and height push content around as they load, failing Cumulative Layout Shift. Fix layout shifts from images.
How to find out which one is yours
Guessing wastes hours. Run a free Maki scan: it pulls real Chrome user data from Google PageSpeed Insights, detects your theme and plugins, and ranks the problems above by how much they actually cost your site.