Website Maintenance
How to Improve Website Speed (Without Rebuilding Everything)
Start with image optimization (often 50-70% of the problem), then add caching, upgrade hosting if needed, and remove unused plugins. These four fixes solve 80% of speed issues without touching your site's design or rebuilding anything.
How do you make a website load faster?
Fix images first (they are almost always the biggest problem), enable caching, upgrade your hosting if the server is slow, and remove anything your site loads but does not actually use. Those four changes solve the majority of speed problems without redesigning or rebuilding anything.
Website speed directly affects both revenue and search rankings. Research from Google shows that a 1-second improvement in mobile load time can increase conversions by up to 27% for e-commerce sites. For service businesses, even a 0.1-second improvement has measurable effects on user engagement. On the ranking side, Google’s Core Web Vitals are a confirmed ranking signal, meaning slow sites get pushed down in search results.
Here are the fixes ranked by impact, starting with what moves the needle most.
Fix 1: Optimize your images (highest impact)
Images are typically 50-70% of a page’s total weight. A single unoptimized photo can be 3-5 MB, adding seconds to your load time. This is the fix that makes the biggest difference on nearly every slow site.
What to do:
- Resize images to their display size. If an image displays at 800px wide on your page, the file should be 800px wide (or 1600px for retina screens). A 4000px image from your camera is wasting bandwidth.
- Convert to modern formats. WebP is supported by all modern browsers and provides 25-35% better compression than JPEG at the same quality. AVIF is even smaller but has slightly less browser support.
- Compress quality to 75-85%. You cannot see the difference between 85% and 100% quality on a web page, but the file size difference is massive.
- Use responsive images. Serve smaller versions to mobile devices using the
srcsetattribute. A phone does not need the same file as a desktop monitor.
Quick implementation for WordPress:
Install an image optimization plugin (ShortPixel, Imagify, or Smush). Configure it to auto-compress uploads and bulk-optimize existing images. This alone often cuts page load time by 40-60%.
| Image State | Typical File Size | Load Impact |
|---|---|---|
| Unoptimized JPEG from camera | 2-5 MB | 2-4 seconds on 4G |
| Resized but not compressed | 500 KB – 1 MB | 0.5-1 second on 4G |
| Resized + compressed WebP | 50-150 KB | Under 0.2 seconds on 4G |
Fix 2: Enable caching
When someone visits your site, their browser downloads every file (HTML, CSS, JavaScript, images) from your server. Without caching, the browser downloads everything again on every subsequent page view. Caching tells the browser: “You already have this file. Use the version you downloaded last time.”
Two types of caching:
Browser caching: Stores files locally on the visitor’s device. Set cache headers so static assets (images, CSS, fonts) are cached for 30 days or more. The visitor’s second page view loads dramatically faster.
Page caching: Stores a complete HTML snapshot of your pages on the server. Instead of processing PHP and database queries for every request, the server delivers the pre-built HTML file. This reduces server response time from 500-2000ms to 50-100ms.
For WordPress: Install a caching plugin (WP Super Cache, W3 Total Cache, or WP Rocket). Enable both page caching and browser caching. Most plugins configure sensible defaults with one click.
Fix 3: Upgrade your hosting (if the server is the bottleneck)
If your server takes more than 600ms to respond (before any content even starts loading), no amount of front-end optimization will make your site feel fast.
Check your server response time: In PageSpeed Insights, look at “Time to First Byte” (TTFB) or “Server Response Time.” Under 200ms is good. 200-600ms is acceptable. Over 600ms is a problem.
Hosting tiers and their typical response times:
| Hosting Type | Monthly Cost (CAD) | Typical TTFB | Good For |
|---|---|---|---|
| Cheap shared hosting | $5-15 | 400-1500ms | Personal blogs with no traffic goals |
| Quality shared hosting | $15-30 | 200-500ms | Small business sites with moderate traffic |
| Managed WordPress | $30-60 | 100-300ms | Business sites where speed matters |
| VPS or cloud | $40-100+ | 50-200ms | High-traffic sites needing consistent performance |
If you are on hosting that costs less than $10/month and your TTFB is over 600ms, upgrading to a $25-40/month managed WordPress host will likely cut your load time by 1-2 seconds immediately. That is not an optimization trick; it is just giving your site adequate resources.
Note: many hosts advertise promotional prices of $2-5/month for the first term. Those renew at $10-15/month. Budget based on renewal pricing, and check whether their servers are located in Canada or the US (closer to your visitors is faster).
Fix 4: Remove unused plugins, themes, and scripts
Every active WordPress plugin adds code that loads on every page, whether that page uses the plugin or not. Many sites accumulate plugins over time, with several that are no longer needed but still active.
Audit your plugins:
- Deactivate and delete plugins you are not actively using
- Replace heavy plugins with lighter alternatives where possible (e.g., replace a full social media suite with a simple share link if you only need sharing buttons)
- Check if your theme loads scripts you do not need (sliders, animations, font libraries you never configured)
Common plugin bloat culprits:
- Social media plugins that load external tracking scripts
- Page builders that inject CSS/JS on every page even when not used
- Analytics plugins when you could use Google’s script directly
- All-in-one SEO plugins that load features you have disabled but still include their code
- Contact form plugins that load their CSS/JS on every page instead of only on the contact page
A WordPress site with 30 plugins will almost always be slower than one with 10 carefully chosen plugins that do what you need.
Fix 5: Minify and combine CSS and JavaScript
Minification removes whitespace, comments, and unnecessary characters from your code files, reducing file size by 10-30% without changing functionality. Combining multiple small files into fewer larger files reduces the number of server requests (though with HTTP/2, this matters less than it used to).
For WordPress: Most caching plugins include minification as an option. Enable CSS and JS minification, but test your site afterward. Occasionally, combining JavaScript files causes conflicts where one script depends on another loading first.
If minification breaks something visible on your site, disable JS combining but keep CSS minification (it rarely causes issues).
Fix 6: Implement lazy loading for images and videos
Lazy loading means images below the visible area of the page (below the fold) do not load until the visitor scrolls to them. This dramatically reduces initial page load time on long pages with many images.
How to implement:
- WordPress 5.5+ includes native lazy loading for images. If your theme is up to date, this may already be active.
- Add
loading="lazy"to image tags that are below the fold - Never lazy-load the hero image or anything visible when the page first loads (this makes the top of the page feel slow while saving nothing)
- Videos: use a thumbnail that loads a lightweight placeholder until the visitor clicks play
Fix 7: Use a CDN (Content Delivery Network)
A CDN copies your static files (images, CSS, JS, fonts) to servers worldwide. When someone visits your site, files are served from the server closest to them geographically rather than from your single hosting server.
Impact for Canadian businesses: If your server is in Toronto but a visitor is in Vancouver, a CDN serves them files from a Vancouver edge server. The latency reduction is typically 50-100ms per request, which compounds across all the files on a page.
Cloudflare (free tier) provides CDN functionality, basic DDoS protection, and SSL, all at no cost. For most small business sites, the free tier is sufficient. Setup takes 15-30 minutes (you point your DNS to Cloudflare’s nameservers).
Fix 8: Optimize your database (WordPress-specific)
WordPress databases accumulate clutter: post revisions (every draft saves a new version), spam comments, transient data from plugins, and orphaned metadata from plugins you deleted long ago.
What to clean:
- Limit post revisions (add
define('WP_POST_REVISIONS', 5);to wp-config.php) - Delete spam and trashed comments
- Clear expired transients
- Remove orphaned metadata from old plugins
- Optimize database tables
Tools: WP-Optimize or Advanced Database Cleaner can do this with one click. Run a cleanup monthly as part of your maintenance routine.
The impact is usually modest (saving 50-200ms on database-heavy pages), but it compounds with everything else on this list.
How to measure your results
Before making changes, test your site speed so you have a baseline. After each fix, test again to see the impact.
Testing tools:
| Tool | What It Shows | URL |
|---|---|---|
| PageSpeed Insights | Core Web Vitals, performance score, specific recommendations | pagespeed.web.dev |
| GTmetrix | Waterfall chart showing what loads and when | gtmetrix.com |
| WebPageTest | Multi-location testing, connection speed simulation | webpagetest.org |
Tips for accurate testing:
- Test on mobile, not just desktop (mobile scores are always lower and matter more for SEO)
- Run 3 tests and average the results (speeds vary between runs)
- Test specific pages, not just the homepage (inner pages are often slower due to different content)
- Clear cache between tests if testing caching changes
Prioritized action plan
If your site is slow and you want to fix it methodically:
| Priority | Fix | Expected Impact | Time to Implement |
|---|---|---|---|
| 1 | Optimize images | 1-4 seconds saved | 1-2 hours (bulk plugin) |
| 2 | Enable caching | 0.5-2 seconds saved | 30 minutes (plugin setup) |
| 3 | Upgrade hosting (if TTFB > 600ms) | 0.5-1.5 seconds saved | 1-2 hours (migration) |
| 4 | Remove unused plugins | 0.2-1 second saved | 30 minutes (audit and delete) |
| 5 | Minify CSS/JS | 0.1-0.5 seconds saved | 10 minutes (plugin toggle) |
| 6 | Lazy load images | 0.5-2 seconds saved on initial load | 15 minutes |
| 7 | Enable CDN | 0.1-0.3 seconds saved per request | 30 minutes |
| 8 | Database optimization | 0.05-0.2 seconds saved | 15 minutes |
Start from the top. Each fix compounds with the ones before it. Most sites that implement fixes 1-4 will see their PageSpeed mobile score jump by 20-40 points without changing anything about their design or content.
FAQ
Common questions
What is a good website speed score?
On Google PageSpeed Insights, aim for 75+ on mobile and 90+ on desktop. The mobile score matters more because Google uses mobile-first indexing. A score below 50 on mobile means your site is noticeably slow and likely losing both visitors and search rankings.
Why is my WordPress site so slow?
The most common causes for WordPress slowness are: unoptimized images (too large, wrong format), too many active plugins, cheap shared hosting with slow server response, no caching configured, and bloated page builder themes that load excess CSS and JavaScript. Usually 2-3 of these compound together.
Does website speed affect Google rankings?
Yes. Google confirmed page speed as a ranking factor in 2018, and Core Web Vitals became a ranking signal in 2021. Slow sites get outranked by faster competitors when all other factors are roughly equal. Google's own research shows that a 1-second improvement in mobile load time can increase conversions by up to 27% for e-commerce.