Performance-optimized child theme for TutorStarter. Self-hosts Google Fonts, optimizes image loading, caches inline CSS. Built for low-bandwidth users (Ethiopia).
# TutorStarter Performance Child Theme
Performance-optimized child theme for TutorStarter (v3.0.4). Built for low-bandwidth users in Ethiopia (2-5 Mbps, 200-500ms latency, expensive per-MB data).
**v2.0.0** — Now includes per-page asset dequeuing, script deferral, and preconnect hints based on a full site performance audit.
## Installation
1. Copy the `tutorstarter-perf` folder to `wp-content/themes/`
2. Activate **TutorStarter Performance** in Appearance > Themes
3. Run `wp media regenerate` (WP-CLI) to generate the new `blog-thumb` image size for existing uploads
## What It Fixes
### v1 Fixes (Theme-Level)
| # | Fix | Savings |
|---|-----|---------|
| 1 | **Self-hosted Google Fonts** — Local WOFF2 variable fonts (Inter + Sora) with preload | Eliminates 2 DNS lookups + 400-1000ms. 72KB local vs ~600KB+ external |
| 2 | **Blog thumbnail size** — `blog-thumb` (768x500) replaces `full` in blog templates | 70-90% image payload reduction per blog page |
| 3 | **Cached inline CSS** — Caches 35 `get_theme_mod()` calls in a transient | ~15ms PHP savings per request |
| 4 | **instant.page for all visitors** — Parent only loads for logged-in users | Perceived load time improvement on slow connections |
| 5 | **Remove IE11 script** — IE11 is EOL, **Note**: TTFB (1.9s) requires server-side fixes (Cloudflare CDN, SiteGround cache config) not addressable by this child theme.
## File Structure
```
tutorstarter-perf/
├── style.css # Theme declaration (v2.0.0)
├── functions.php # 13 performance fixes
├── assets/
│ └── fonts/
│ ├── inter-var-latin.woff2 # Inter variable (47KB)
│ └── sora-var-latin.woff2 # Sora variable (25KB)
└── views/
└── blog/
├── blog-grid.php # Grid template (blog-thumb)
└── blog-list.php # List template (blog-thumb)
```
## How It Works
The child theme uses WordPress hook priorities to intercept the parent's asset pipeline:
- **`init`**: Disables emoji …