A reader who waits more than a few seconds for an article often doesn't wait at all. The good news is that a text-focused blog can be very fast with a handful of habits.
1. Serve static HTML
If an article doesn't change between visitors, render it once and serve the finished HTML. There is no database query to wait for and nothing to break under load.
2. Size your images
Export cover images at the size they are displayed, not straight from the camera. A 4000-pixel photo shown 800 pixels wide wastes most of what it downloads.
- Use modern formats such as WebP or AVIF.
- Add
loading="lazy"to images below the fold. - Always set
widthandheight, or an aspect ratio, so the layout doesn't jump.
3. Limit web fonts
Every font weight is another file. Two or three weights usually cover body text, bold and headings. Use font-display: swap so text shows immediately in a fallback font.
4. Keep JavaScript small
An article page needs very little JavaScript. Menus, a dark-mode toggle and a reading progress bar can each be a few lines.
5. Measure, then fix
Run PageSpeed Insights on a real article, not just the home page, and fix the biggest item first.
# Rebuild the static site after changes
npm run static
Fast pages are a kindness to readers on slow connections, and they are what search engines reward too.