Plex buffering is the most common complaint we hear — and also the most misdiagnosed. People blame their internet speed, buy a new router, or throw hardware at the problem when the real cause is something completely different. This guide walks through every cause of Plex buffering in order of likelihood, with the exact fix for each one.
Step 1: Identify the Type of Buffering
Not all buffering is the same. How it behaves tells you where the bottleneck is:
- Buffering at the start only: Slow disk I/O or network latency. The server can’t fill the buffer fast enough to begin playback.
- Periodic buffering every 30-60 seconds: The server can’t sustain the bitrate. Usually transcoding overload or insufficient upload speed.
- Buffering when seeking/skipping: Slow disk or network. The server has to re-read and re-send from the new position.
- Buffering that gets worse over time: Memory leak, thermal throttling, or the server is running out of resources as more streams pile up.
Step 2: Check the Plex Dashboard
Before you change anything, look at what Plex is actually doing. Open your Plex server → Settings → Dashboard (or the Activity icon in the top bar). During playback, click the active stream to see:
- Direct Play vs. Transcode: Direct Play means the client plays the file as-is — no server CPU used. Transcode means the server is converting the file on the fly. Transcoding is the #1 cause of buffering.
- Video and audio codec details: Shows the original format and what’s being delivered to the client.
- “Throttled” indicator: If transcoding shows “throttled,” the server is keeping up (it’s transcoding faster than real-time and waiting). If it’s NOT throttled, the server is struggling.
Step 3: Eliminate Transcoding (The #1 Fix)
Transcoding is the single biggest cause of Plex buffering. It happens when the client device can’t play the original file format, so the server converts it in real time. This is CPU-intensive and often the server simply can’t keep up.
Why Plex Transcodes
- Incompatible codec: The client doesn’t support the video codec (e.g., HEVC/H.265 on older devices, AV1 on most devices)
- Subtitle burn-in: Image-based subtitles (PGS, VOBSUB) force a full video transcode because they can’t be overlaid client-side
- Remote quality limit: The Plex client app has a “Remote Streaming Quality” setting that caps the bitrate, forcing a transcode even when bandwidth is sufficient
- Audio incompatibility: Some clients can’t decode multi-channel audio (TrueHD, DTS-HD MA), forcing an audio transcode that can cascade into video transcoding
How to Fix It
- Set client quality to “Maximum” or “Original”: In every Plex client app, go to Settings → Video Quality → set both local and remote quality to the highest option. This is the most common fix we apply.
- Use SRT subtitles instead of PGS: Convert image-based subtitles to text-based SRT using tools like
SubtitleEditorBazarr. SRT subtitles are delivered as a text overlay — no transcoding needed. - Match your media to your clients: If most clients are Roku/FireTV, encode in H.264 with AAC audio. These devices direct-play H.264 natively. HEVC works on newer hardware but not all.
- Enable hardware transcoding: If transcoding is unavoidable, enable hardware acceleration in Plex Settings → Transcoder → “Use hardware acceleration when available.” This requires Plex Pass and a CPU with Intel Quick Sync or an NVIDIA GPU.
Step 4: Fix Network Bottlenecks
If the dashboard shows Direct Play and you’re still buffering, the network is the bottleneck.
Local (LAN) Streaming
- Use Ethernet, not Wi-Fi: A single 4K remux needs 60-100 Mbps sustained. Wi-Fi can do this but it’s sensitive to interference, distance, and other devices. Ethernet is always more reliable for Plex.
- Check your switch: If you’re using an old 100 Mbps switch, a single 4K stream will saturate it. Upgrade to Gigabit.
- Check the NAS connection: If media is on a NAS, make sure the NAS has a Gigabit or 2.5GbE connection to your network. A NAS on 100 Mbps Fast Ethernet is a hard ceiling.
Remote Streaming
- Your upload speed is the ceiling: Run a speed test at
speedtest.netand check upload. 10 Mbps upload supports one 1080p stream. 20 Mbps handles one compressed 4K. Most cable plans have 5-10 Mbps upload — that’s only enough for 720p-1080p. - Enable Plex Relay: If remote access doesn’t work due to CGNAT or double NAT, Plex falls back to relay servers which cap at 2 Mbps. Fix your remote access to get direct connections.
- Pre-optimize for remote viewers: Plex Settings → Library → Optimize lets you create lower-bitrate copies specifically for remote streaming. The server serves these without transcoding.
Step 5: Fix Disk I/O Issues
If buffering happens at the start of playback or when seeking, the disk may not be reading fast enough.
- USB 2.0 is too slow: Real-world USB 2.0 throughput is ~35 MB/s (280 Mbps). One 4K remux can saturate this. Move to USB 3.0+ or internal SATA/NVMe.
- Spinning disks + multiple streams: HDDs can only do ~120 MB/s sequential, but random access (multiple streams seeking different files) drops to 30-50 MB/s. An SSD cache or transcoder temp directory on SSD helps.
- Move the transcoder temp directory to SSD: Plex Settings → Transcoder → Transcoder temporary directory. Set this to an SSD path. Transcoding writes heavily to temp, and an HDD bottleneck here causes buffering even with a fast CPU.
- Check disk health: A failing drive with bad sectors will cause intermittent read stalls. Run
smartctl -a /dev/sdX(Linux) or CrystalDiskInfo (Windows) to check SMART status.
Step 6: Server Resource Issues
If none of the above applies, the server itself may be underpowered for your usage pattern.
- CPU at 100% during transcoding: Each 1080p transcode needs roughly 2000 PassMark score. 4K transcoding needs ~12000 without hardware acceleration, ~2000 with Intel Quick Sync. Check with
htopor Task Manager during playback. - RAM pressure: Plex itself uses ~200-500 MB, but the OS, transcoder, and file system cache need room. 4 GB is the minimum for a dedicated Plex server; 8 GB+ is comfortable for multiple transcodes.
- Thermal throttling: Small form factor PCs and NAS devices often throttle when transcoding. Monitor CPU temperature — sustained temps above 90°C will cause throttling and buffering. Improve airflow or add thermal paste.
- Docker resource limits: If Plex runs in Docker, check that CPU and memory limits aren’t too restrictive. Remove
--cpuslimits during troubleshooting to see if it helps.
Step 7: Client-Side Fixes
Sometimes the problem is on the player side, not the server:
- Clear Plex app cache: On mobile and TV apps, cached data can cause playback issues. Uninstall and reinstall, or clear the app cache in device settings.
- Use a wired connection on the client: Smart TVs and streaming sticks often have weak Wi-Fi radios. A USB Ethernet adapter on a Fire Stick or Chromecast dramatically improves reliability.
- Try a different player: On desktop and mobile, try Plex HTPC or an alternative player like Infuse (Apple TV) or Kodi with PlexKodiConnect. Some clients handle certain codecs better than the official Plex app.
- Update the Plex client app: Older client versions have known buffering bugs. Update to the latest version on all devices.
The Quick Checklist
- Check Plex Dashboard — is it transcoding? If yes, fix transcoding first.
- Set all client quality settings to Maximum/Original.
- Convert PGS/VOBSUB subtitles to SRT.
- Wire the server and client via Ethernet if possible.
- Check upload speed for remote streaming.
- Move transcoder temp directory to SSD.
- Enable hardware transcoding (Plex Pass required).
- Monitor CPU temp and utilization during playback.
Still Buffering?
If you’ve gone through this checklist and Plex is still buffering, the issue is likely a combination of factors or something environment-specific (ISP throttling, router QoS misconfiguration, DNS issues with remote access). Our remote sessions include a full diagnostic — we screen-share into your server, identify the exact bottleneck, and fix it live.