WordPress
EKS Cluster
Performance Optimization
Kubernetes
Cloud Hosting

Slow wordpress in eks cluster

System Design practice on Codemia

Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.

Practice system design

Introduction

WordPress running slowly on EKS is usually not a single Kubernetes problem. It is often a combination of PHP application latency, database round trips, storage performance, and resource sizing, with the cluster only exposing the bottleneck more clearly.

Start by Measuring the Real Bottleneck

Before changing instance types or scaling the cluster, figure out where time is being spent:

  • slow database queries
  • overloaded PHP workers
  • slow persistent storage for uploads or plugins
  • no page cache or object cache
  • CPU throttling or memory pressure

A few basic checks already help:

bash
kubectl top pods -n wordpress
kubectl get pods -n wordpress -o wide
kubectl describe pod <pod-name> -n wordpress

If CPU is low but pages are still slow, the bottleneck is probably outside raw pod compute.

Common EKS-Specific Performance Problems

One of the biggest issues is putting WordPress and its database too far apart in latency terms. If WordPress pods in EKS talk to an RDS instance across slow or cross-zone paths, page generation slows down quickly because WordPress issues many small queries.

Storage is another frequent problem. Shared filesystems are convenient for wp-content, but poor storage performance can make media access, plugin loading, and cache writes painfully slow. The cluster may look healthy while every request still waits on filesystem latency.

Kubernetes resource limits also matter. If WordPress containers are under-requested or tightly limited, PHP workers can throttle under moderate traffic.

yaml
1resources:
2  requests:
3    cpu: "500m"
4    memory: "512Mi"
5  limits:
6    cpu: "1"
7    memory: "1Gi"

This does not guarantee speed, but it prevents a common mistake where the pod has too little baseline capacity to serve normal traffic.

Caching Usually Matters More Than More Nodes

A slow WordPress deployment often improves more from caching than from raw horizontal scaling.

Important layers include:

  • full-page cache
  • object cache such as Redis
  • CDN for static assets
  • PHP opcode cache

Without caching, every request repeatedly hits PHP and MySQL. In Kubernetes, that means you can scale pods and still keep serving slow uncached pages.

So if the cluster is healthy but response times are bad, ask whether the application is actually using the performance tools WordPress expects.

Database and Plugin Pressure

WordPress performance problems are often really database or plugin problems. A single bad plugin or theme can make every page render slowly no matter how much Kubernetes tuning you apply.

That is why slow-query logging and plugin audits matter. If one admin plugin causes expensive queries or remote HTTP calls on every request, EKS will not solve that for you.

The same applies to RDS sizing. If the database is underpowered or constantly waits on storage, the web tier will look slow no matter how healthy the pods are.

Scaling the Right Layer

Horizontal Pod Autoscaling helps only when the web tier is the bottleneck. If the real issue is database latency or cache misses, adding more WordPress pods can even make things worse by increasing pressure on the backend.

A better order is:

  1. fix caching
  2. confirm database health
  3. verify storage performance
  4. then scale the WordPress pods if they are actually saturated

That keeps the cluster changes aligned with the real bottleneck.

Common Pitfalls

  • Scaling EKS nodes first without profiling the application and database.
  • Ignoring page caching and object caching in a WordPress deployment.
  • Treating slow shared storage as a Kubernetes scheduling issue.
  • Underestimating plugin and theme overhead.
  • Assuming more pods will help when the real bottleneck is MySQL or remote storage latency.

Summary

  • Slow WordPress on EKS is usually a full-stack problem, not just a cluster problem.
  • Measure whether the bottleneck is compute, database, storage, or missing cache layers.
  • Resource requests and limits matter, but caching often matters more.
  • Fix plugin, database, and storage issues before scaling blindly.
  • Scale the layer that is actually saturated, not the one that is easiest to change.

Related reading
Course
Beginner
27 lessons
10 hours
System Design Fundamentals

Build a strong foundation in designing scalable, reliable distributed systems.

View the course
Track what you have practised

A free account saves your progress, solutions and study plan across every problem on Codemia.

System Design practice on Codemia

Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.

Practice system design

All Rights Reserved.