Performance and Core Web Vitals

4 min read

TTSWP adds audio to your pages without hurting performance. The player is lazy-loaded, assets are optimized, and nothing runs on page load unless it has to. Here is how we keep Core Web Vitals safe.

Core Web Vitals impact

LCP (Largest Contentful Paint)

Impact: none

The audio player is lazy-loaded. It does not render or load JavaScript until the visitor scrolls close to it. LCP, which measures the time to render the main above-the-fold content, is unaffected.

Test: run before-and-after Lighthouse audits. LCP scores stay within normal variance.

CLS (Cumulative Layout Shift)

Impact: zero

The player placeholder has the exact same dimensions as the fully-loaded player. When lazy load triggers the upgrade from placeholder to full player, no layout shift occurs.

INP (Interaction to Next Paint)

Impact: negligible

The player's JavaScript runs in a single small file (around 15 KB gzipped). Click handlers are debounced and run on requestIdleCallback where supported. Typical INP contribution: under 5 ms per interaction.

FID (First Input Delay, replaced by INP in 2024)

Impact: zero

Nothing blocks the main thread on initial page load, since the player loads lazily.

Asset sizes

Per-page load cost when the player is in use:

Asset Size (gzipped) When loaded
Public player CSS 3 KB When player visible
Public player JS 15 KB When player visible
Waveform helper (PRO) 4 KB When waveform enabled
Sticky footer JS (PRO) 2 KB When sticky enabled
Admin bar menu icon 0.5 KB Only for admin users

Total first-load impact on visitors: 0 bytes until they scroll to the player.

Cache plugin compatibility

TTSWP works with every major cache plugin (WP Rocket, LiteSpeed, W3 Total Cache, WP Super Cache, Cache Enabler). The plugin auto-registers its assets for correct caching behavior.

Audio files (MP3) have their own cache headers and load on demand from storage. They do not clog page caches.

See Caching plugins.

CDN delivery

On paid plans, audio files are served from Amazon CloudFront. This means:

  • Audio plays within milliseconds of clicking Play, even for visitors far from your server
  • Your WordPress server bandwidth stays free for HTML

On Free plans, audio comes from your WordPress server. For most blogs this is fine. High-traffic sites might notice bandwidth use on audio-heavy pages.

Database impact

TTSWP adds a small number of database tables and rows:

  • Audio cache table (one row per generated file)
  • Statistics tables (one row per play event - small integer data)
  • Settings rows (a few dozen options)

Database size grows linearly with the number of posts with audio. For a site with 500 posts, total database footprint is typically under 200 KB.

Memory and CPU

  • PHP memory overhead per admin page load: ~2 MB
  • PHP memory overhead per public page with player: negligible (CSS + JS only, no PHP processing on hot paths)
  • Background processes: none (no cron jobs running on every request)

Testing your site

Use these tools to verify TTSWP does not hurt your performance:

Run once with TTSWP enabled, once with it temporarily disabled. Compare the numbers.

If you see a performance regression

Let us know. We treat performance regressions as bugs:

  1. Note what page is slow
  2. Run PageSpeed Insights and share the URL
  3. Contact PRO Support or post to the WordPress.org forum

We will help you diagnose and fix it.