Why WordPress Sites Get Slow (And What to Do About It)
It's not WordPress itself. It's the accumulation of plugins, shared hosting, unoptimized databases, and nobody maintaining the infrastructure underneath.
A client called last month. Panicked. Their WordPress site was loading in 8.2 seconds. Google had flagged it. Organic traffic had dropped 34% in six weeks. They wanted to know what was wrong with WordPress.
Nothing was wrong with WordPress.
The Audit
I opened the site in Chrome DevTools. The homepage was pulling 12MB of assets. Forty-seven active plugins. Three separate analytics scripts. Two slider libraries — one of which wasn’t even being used on any page. A contact form plugin loading its CSS and JavaScript on every single page, including pages with no forms.
The database had 814,000 rows in wp_postmeta alone. Over 23,000 post revisions that nobody had ever cleaned. Transients that expired months ago but were never purged. The wp_options table was autoloading 4.2MB on every page request.
The hosting was a $9/month shared plan. The same server was running somewhere between forty and two hundred other websites. No CDN. No object caching. No page caching beyond whatever a caching plugin was attempting to do — which, as it turned out, wasn’t much because it conflicted with two other plugins.
This site had been live for five years. It started fast. It started clean. It had twelve plugins when it launched. A developer built it, handed it over, and moved on. Nobody maintained the infrastructure underneath.
How It Happens
Nobody notices 0.2 seconds at a time. That’s the core problem.
You install a plugin for SEO. Adds 80ms. You install a form builder. Adds 120ms. A social sharing bar. A pop-up tool. A security scanner. An image slider. A backup plugin that runs queries in the background. A WooCommerce instance for three products you sell once a quarter.
Each one is reasonable on its own. Each one adds a few database queries, a few HTTP requests, a CSS file, a JavaScript file. The numbers are small enough to ignore individually.
After three years you have 40 plugins, 200 database queries per page load, and a server that’s spending more time running PHP than serving content. The site loads in six seconds. Then seven. Then eight.
The degradation is invisible because it’s gradual. No single plugin broke anything. The system decayed.
The Five Real Causes
Plugin accumulation. Most WordPress sites I audit have between 30 and 50 active plugins. Most need 10 to 15. Every plugin that loads JavaScript and CSS on the front end adds weight. Every plugin that queries the database adds latency. The math is simple — 40 plugins means 40 things happening on every page that didn’t need to happen.
Shared hosting. A $9/month server splits resources among dozens or hundreds of sites. When your neighbor’s site gets traffic, yours gets slower. There’s no isolation. No guaranteed resources. It’s the digital equivalent of sharing a kitchen with forty strangers and wondering why there’s never any counter space.
Database bloat. WordPress stores everything in the database. Post revisions, transient caches, orphaned metadata, spam comments that were trashed but not deleted. The wp_postmeta table grows silently. After a few years, your database is doing full table scans on 800,000 rows to render a single page. Nobody notices because nobody looks.
No caching layer. Without proper caching, WordPress regenerates every page from scratch on every visit. It queries the database, runs PHP, assembles the HTML, and sends it — every single time. A page that takes 3 seconds to generate gets generated 10,000 times a month for the exact same content. That’s not a performance problem. It’s an architecture problem.
No CDN. Your images and assets are served from a single server in one location. A visitor from London requests a 2MB hero image from a server in Dallas. The physics alone add hundreds of milliseconds. Multiply that by every asset on the page.
What to Do
The fixes aren’t complicated. They’re just unglamorous.
Audit your plugins. Deactivate each one individually and measure load time. You’ll find plugins that add 400ms and deliver nothing visible. Remove them. For the ones you keep, check if they load assets globally when they should load conditionally. Most sites can cut their plugin count by half without losing any functionality.
Move to better hosting. Managed WordPress hosting or a small VPS with proper configuration will outperform any shared plan. The difference between a $9/month shared host and a $30/month managed one is often two to three seconds of load time. That’s not a cost — it’s an investment that pays for itself in search rankings alone.
Clean the database. Delete post revisions older than 30 days. Remove orphaned metadata. Clear expired transients. Limit the wp_options autoload to what’s actually needed. A database that was 500MB can often drop to 50MB. The queries get faster because there’s less to search through.
Add proper caching. Page caching serves static HTML instead of regenerating pages. Object caching stores database query results in memory. Together, they can turn a 3-second page load into a 300-millisecond one. This isn’t a plugin feature — it’s an infrastructure layer.
Put a CDN in front of everything. Cloudflare’s free tier handles this. Assets get served from edge servers near the visitor. A 2MB image that took 800ms to load from Dallas loads in 40ms from a local edge node.
The Deeper Question
Once the site is fast again, there’s a question worth asking: is WordPress still the right tool?
For businesses that publish frequently, manage complex e-commerce, or need non-technical staff to update content daily — yes. WordPress with proper infrastructure is a solid platform. It powers 40% of the web for a reason.
But for a business with a marketing site that changes twice a year, fifteen pages of content, and a contact form — WordPress is unnecessary infrastructure. A static site built on modern tooling would load in under a second, require zero database maintenance, cost almost nothing to host, and never slow down regardless of traffic.
Not every problem needs the same solution. Not every site needs the same architecture.
The Result
The client’s site loads in 1.8 seconds now. Same content. Same design. Same WordPress installation.
We removed 29 plugins. Migrated to managed hosting. Cleaned 640,000 rows from the database. Added page caching and object caching. Put Cloudflare in front.
The work took a week. The site had been slow for two years.
Nobody blamed the infrastructure because nobody was looking at the infrastructure. They blamed WordPress. But WordPress was just running on top of a system that nobody maintained.
That’s the pattern. The tool works. The infrastructure underneath it has to work too. And infrastructure requires maintenance — not once, but continuously.
The invisible work is keeping things fast.
Related
- Service: Web Presence & Performance Sites — Fast, reliable websites built on modern infrastructure.
- Article: How to Migrate a Website Without Losing SEO — The systems approach to website migration.
- Article: Static Sites vs WordPress: What Your Business Actually Needs — When WordPress is fine, and when static wins.
Hrvatski
Klijent je nazvao prošlog mjeseca. U panici. Njihova WordPress stranica učitavala se 8,2 sekunde. Google ju je označio. Organski promet pao je 34% u šest tjedana. Htjeli su znati što nije u redu s WordPressom.
S WordPressom nije bilo ništa krivo.
Revizija
Otvorio sam stranicu u Chrome DevToolsu. Početna stranica povlačila je 12MB resursa. Četrdeset sedam aktivnih pluginova. Tri odvojena skripta za analitiku. Dvije biblioteke za slidere — od kojih se jedna nije koristila ni na jednoj stranici. Plugin za kontakt formu koji učitava svoj CSS i JavaScript na svakoj stranici, uključujući stranice bez ikakvih formi.
Baza podataka imala je 814.000 redova samo u wp_postmeta tablici. Preko 23.000 revizija objava koje nitko nikad nije očistio. Transienti koji su istekli prije mjeseci, ali nikada nisu obrisani. Tablica wp_options automatski je učitavala 4,2MB na svaki zahtjev za stranicu.
Hosting je bio dijeljeni plan od 9 dolara mjesečno. Isti server pokretao je negdje između četrdeset i dvjesto drugih stranica. Bez CDN-a. Bez object cachinga. Bez page cachinga osim onoga što je caching plugin pokušavao napraviti — a to, kako se ispostavilo, nije bilo mnogo jer je bio u konfliktu s dva druga plugina.
Ta stranica bila je aktivna pet godina. Počela je brzo. Počela je čisto. Imala je dvanaest pluginova kad je pokrenuta. Developer ju je napravio, predao i nastavio dalje. Nitko nije održavao infrastrukturu ispod.
Kako se to dogodi
Nitko ne primijeti 0,2 sekunde u jednom koraku. To je suštinski problem.
Instalirate plugin za SEO. Dodaje 80ms. Instalirate alat za forme. Dodaje 120ms. Traka za dijeljenje na društvenim mrežama. Alat za pop-up prozore. Sigurnosni skener. Slider za slike. Plugin za backup koji pokreće upite u pozadini. WooCommerce instanca za tri proizvoda koje prodajete jednom u kvartalu.
Svaki je razuman sam za sebe. Svaki dodaje nekoliko upita prema bazi podataka, nekoliko HTTP zahtjeva, CSS datoteku, JavaScript datoteku. Brojevi su pojedinačno dovoljno mali da se ignoriraju.
Nakon tri godine imate 40 pluginova, 200 upita prema bazi po učitavanju stranice i server koji troši više vremena na pokretanje PHP-a nego na posluživanje sadržaja. Stranica se učitava šest sekundi. Pa sedam. Pa osam.
Degradacija je nevidljiva jer je postupna. Nijedan plugin nije ništa pokvario. Sustav je propadao.
Pet stvarnih uzroka
Akumulacija pluginova. Većina WordPress stranica koje revidiram ima između 30 i 50 aktivnih pluginova. Većini ih treba 10 do 15. Svaki plugin koji učitava JavaScript i CSS na prednjoj strani dodaje težinu. Svaki plugin koji postavlja upite bazi podataka dodaje latenciju. Matematika je jednostavna — 40 pluginova znači 40 stvari koje se događaju na svakoj stranici, a nisu trebale.
Dijeljeni hosting. Server od 9 dolara mjesečno dijeli resurse među desecima ili stotinama stranica. Kada susjedova stranica dobije promet, vaša postaje sporija. Nema izolacije. Nema garantiranih resursa. To je digitalni ekvivalent dijeljenja kuhinje s četrdeset stranaca i čuđenja zašto nikada nema prostora na pultu.
Napuhanost baze podataka. WordPress pohranjuje sve u bazu podataka. Revizije objava, transient cacheove, osirotele metapodatke, spam komentare koji su bačeni u smeće ali nisu obrisani. Tablica wp_postmeta tiho raste. Nakon nekoliko godina, vaša baza radi pretraživanje cijele tablice od 800.000 redova da bi prikazala jednu stranicu. Nitko ne primjećuje jer nitko ne gleda.
Bez sloja cachinga. Bez ispravnog cachinga, WordPress regenerira svaku stranicu ispočetka pri svakom posjetu. Postavlja upite bazi, pokreće PHP, sastavlja HTML i šalje ga — svaki put iznova. Stranica kojoj treba 3 sekunde za generiranje generira se 10.000 puta mjesečno za potpuno isti sadržaj. To nije problem performansi. To je problem arhitekture.
Bez CDN-a. Vaše slike i resursi poslužuju se s jednog servera na jednoj lokaciji. Posjetitelj iz Londona zahtijeva sliku od 2MB s poslužitelja u Dallasu. Sama fizika dodaje stotine milisekundi. Pomnožite to sa svakim resursom na stranici.
Što učiniti
Popravci nisu komplicirani. Samo su neglamurozni.
Revidirajte pluginove. Deaktivirajte svaki pojedinačno i mjerite vrijeme učitavanja. Naći ćete pluginove koji dodaju 400ms, a ne isporučuju ništa vidljivo. Uklonite ih. Za one koje zadržite, provjerite učitavaju li resurse globalno kad bi trebali učitavati uvjetno. Većina stranica može prepoloviti broj pluginova bez gubitka ikakve funkcionalnosti.
Prebacite se na bolji hosting. Upravljani WordPress hosting ili mali VPS s ispravnom konfiguracijom nadmašit će svaki dijeljeni plan. Razlika između dijeljenog hosta od 9 dolara mjesečno i upravljanog od 30 dolara često je dvije do tri sekunde vremena učitavanja. To nije trošak — to je ulaganje koje se isplati samo kroz poziciju u pretraživačima.
Očistite bazu podataka. Obrišite revizije objava starije od 30 dana. Uklonite osirotele metapodatke. Očistite istekle transiente. Ograničite autoload u wp_options na ono što je stvarno potrebno. Baza koja je bila 500MB često može pasti na 50MB. Upiti postaju brži jer ima manje podataka za pretraživanje.
Dodajte ispravan caching. Page caching poslužuje statički HTML umjesto regeneriranja stranica. Object caching pohranjuje rezultate upita bazi u memoriju. Zajedno mogu pretvoriti učitavanje stranice od 3 sekunde u 300 milisekundi. Ovo nije značajka plugina — to je infrastrukturni sloj.
Stavite CDN ispred svega. Cloudflareov besplatni plan to rješava. Resursi se poslužuju s edge servera blizu posjetitelja. Slika od 2MB koja se učitavala 800ms iz Dallasa učitava se za 40ms s lokalnog edge čvora.
Dublje pitanje
Kada je stranica opet brza, vrijedi postaviti pitanje: je li WordPress još uvijek pravi alat?
Za tvrtke koje često objavljuju, upravljaju složenom e-trgovinom ili trebaju da netehničko osoblje svakodnevno ažurira sadržaj — da. WordPress s ispravnom infrastrukturom je solidna platforma. Pokreće 40% weba s razlogom.
Ali za tvrtku s marketinškom stranicom koja se mijenja dva puta godišnje, petnaest stranica sadržaja i kontakt formom — WordPress je nepotrebna infrastruktura. Statična stranica izgrađena na modernim alatima učitavala bi se ispod sekunde, ne bi zahtijevala nikakvo održavanje baze podataka, hosting bi koštao gotovo ništa i nikad se ne bi usporila bez obzira na promet.
Ne treba svaki problem isto rješenje. Ne treba svaka stranica istu arhitekturu.
Rezultat
Klijentova stranica učitava se za 1,8 sekundi sada. Isti sadržaj. Isti dizajn. Ista WordPress instalacija.
Uklonili smo 29 pluginova. Migrirali na upravljani hosting. Očistili 640.000 redova iz baze podataka. Dodali page caching i object caching. Stavili Cloudflare ispred.
Posao je trajao tjedan dana. Stranica je bila spora dvije godine.
Nitko nije okrivio infrastrukturu jer nitko nije gledao infrastrukturu. Okrivili su WordPress. Ali WordPress je samo radio na vrhu sustava koji nitko nije održavao.
To je obrazac. Alat radi. Infrastruktura ispod njega također mora raditi. A infrastruktura zahtijeva održavanje — ne jednom, nego kontinuirano.
Nevidljiv posao je držati stvari brzima.
Povezano
- Usluga: Web prisutnost i performantne stranice — Brze, pouzdane web stranice izgrađene na modernoj infrastrukturi.
- Članak: Kako migrirati web stranicu bez gubitka SEO-a — Sustavni pristup migraciji web stranice.
- Članak: Statične stranice nasuprot WordPressu: Što vašem poslovanju zapravo treba — Kada je WordPress dobar, a kada statično pobjeđuje.
Related
How to Migrate a Website Without Losing SEO
March 12, 2026
Most website migrations lose 30-60% of organic traffic because nobody treats migration as a systems problem. Here's the infrastructure approach.
Static Sites vs WordPress: What Your Business Actually Needs
March 12, 2026
The honest comparison nobody wants to make. WordPress is fine — until it isn't. Static is fast — but not always practical. Here's how to decide.
The Difference Between Automation That Helps and Automation That Compounds
March 12, 2026
Most automation saves time once. System-level automation saves time forever — and gets better the longer it runs. The difference is in the architecture.
Related Deep Dive
Growth Systems: Marketing as Infrastructure
Marketing that works isn't about campaigns. It's about building infrastructure that compounds.
Visual Systems: Photography as Infrastructure
Most businesses treat photography as a marketing expense. The ones that get value treat it as operational infrastructure.
Get notified when I publish