Website Speed Checklist: 15 Fixes for Small Business Sites
Measure your site with PageSpeed Insights, learn what LCP, INP and CLS mean, then work through 15 speed fixes ordered from quick wins to bigger projects.
7 October 2026 · 9 min read
In this guide
The process of having a slow web site leaves a small business with costs in a normal manner. A client on bumpy cellular data relinquishes before your menu loads. One taps to call now button and the button jumps due to a loaded image, which took time to load. Most of this can be corrected without an understanding of how to develop a program. Measure first, and solve the fixes in a reasonable sequence.
This checklist is geared towards small business sites most of which are on WordPress or a site builder. The fixes are of quick win, projects, and more.
Check with PageSpeed Insights.
Visit pagespeed.web.dev, enter your web address in the home page and have the test. Next, check your next most crucial page, e.g., a service or product page. The speed is calculated page per page, but not the entire site.
There are two sections to the report that can be confused:
- Actual user data (field data): The Chrome User Experience Report provides real users data: how real users experienced the page in the last 28 days. It is here that the Core Web Vitals Assessment (pass or fail) can be found. On a new or small site you might not see any data, or the data of your entire site (the "origin) rather than just the single page.
- Lab data: Lighthouse loads the page on the initial loading to a simulated mid-range phone, over a mobile network. It can be seen here that the 0 to 100 Performance score does exist (90 or higher is good, 50 to 89 needs improvement, under 50 is poor), as well as suggestions, aggregated as Insights such as "Improve image delivery" and "Render-blocking requests".
To keep in mind two things. The score also has variability run by run, and thus, two or three times run record the average score. And field data are more important than the score, as it shows actual visitors.
Record your initial scores on the following list: mobile score, LCP, INP (where indicated), CLS and your top three Insights.
In a nutshell of the core web vital.
Core Web Vitals are three values of how it feels to use a page, web.dev identifies these thresholds, calculated in the 75 th percentile of page loads, approximately three out of four visits should reach the target:
| Metric | What it means | Good | Poor |
|---|---|---|---|
| LCP (Largest Contentful Page) | Time until the main content (typically the hero image or headline) is shown. | 2.5 seconds or less | Over 4 seconds |
| INP (Interaction Next Paint) | The speed of responding to a tap, click, or typed in by somebody. | 200 milliseconds or less | Over 500 ms |
| CLS (Cumulative Layout Shift) | What leaps and leaps As this page loads. | 0.1 or less | Over 0.25 |
Lab tests are not able to measure INP, as no one is tapping throughout the test. Instead, Lighthouse displays Total Blocking Time, an approximate proxy that typically indicates the same offender: excessive JavaScript.
Google indicates that its ranking systems rely on Core Web Vitals, however, it also notes that high scores do not necessarily result in high rankings and that it can also present the most relevant web pages despite lower page experience. OFFICIAL: Get your visitors fixed. Any advantage of search should be a bonus and not a promise.
The 15 fixes ranked by trying and agitating.
Each of the sites is unique and therefore the final ranking is dictated by your own PageSpeed Insights report. The following impact ratings are approximate scores of an average small business location, and not quantitative:
| # | Fix | Effort | Typical impact | Mainly helps |
|---|---|---|---|---|
| 1 | Squeeze and down-sample the hero image. | Low | High | LCP |
| 2 | Do NOT wait on the hero image to load. | Low | High, if it applies | LCP |
| 3 | Adjust width and height of images. | Low | Medium | CLS |
| 4 | Turn on page caching | Low | High | LCP |
| 5 | Erase unused plugins. | Low | Medium | LCP, INP |
| 6 | Break or postpone third-party scripts. | Low | Medium to high | INP, LCP |
| 7 | load-on-demand images to the bottom. | Low | Low | Data use |
| 8 | Replaces with WebP or AVIF. | Medium | Medium | LCP |
| 9 | Serve responsive picture sizes. | Medium | Medium | LCP |
| 10 | Simplify fonts | Medium | Low to medium | LCP, CLS |
| 11 | Video and map embeds which are loaded on clicking. | Medium | Mediocre, when thou has embeds. | INP, LCP |
| 12 | Scheduled browser cache long lifetime. | Medium | Low to medium | Repeat visits |
| 13 | Remove redirects, turn on compression | Medium | Medium | LCP |
| 14 | Add a CDN | Medium | Medium | LCP |
| 15 | Fix hosting or change a heavy theme. | High | High | Everything |
Quick wins (an hour or two)
1. Compress and re-size hero image. The LCP element is frequently the large banner at the top. When the size of the photo on the screen is full size and it is taken out of the phone camera, resize to a size about the same size as the image is displayed in on the screen, and then compress. Both can be done using free browser tools like Squoosh.
2. Do not lazy-load the hero image. web.dev is unclear on this point: lazy-loading of your LCP image always postpones it. Certain themes and plugins load all images on the page (like the first one) lazily. Ensure that the first-drawn image is loaded normally, and, should you be able to edit the HTML, append fetchpriority=high to the first image. WordPress 6.3 and later attempts to do this automatically to the image which it believes is most probably the LCP image.
3. Choose width and height on pictures. The lack of dimension of images is one of the most frequent causes of layout shift. When the browser is aware of how big the image is, it allocates the space and your text will be left in position. Same with ad slots, embeds and iframes.
4. Enable the page caching. In the absence of caching, a WordPress server will generate all pages based on the database to each visitor. The completed page is saved on a page cache and the page is served. A caching control panel is a part of many hosts; otherwise it is done by a caching plugin. There is only one caching tool to use, not two having wars.
5. uninstall the unused plugins. Each active plugin is capable of including scripts, styles and database work. Ask, To go down the list and ask, What would anyone see were this to go? Disabled, test, and delete. Stare at sliders, social share bars and all-in-one add-ons to use in a single tiny functionality.
6. chop or suspend third party scripts. Code you do not control is running chat widgets, additional analytics tools, ad pixels, pop-ups and review widgets and heavy JavaScript is a frequent source of poor INP. Keep it simple; only use what you need. Load the others with async/defer such that it does not hold up the page. They are called 3rd parties on PageSpeed Insights.
7. Load in lazy-images below. Add loading lazy to the images at the below of the first screen to ensure that they can only be loaded when an individual scrolls towards them. This is primarily storing information of visitors on mobile plans. It is automatically added to the majority of the content images by WordPress.
Middle intensity (an afternoon at a time)
8. Replace with WebP or AVIF. Both formats compress better than JPEG and PNG, and both work in current versions of all major browsers, though older iPhones on iOS 15 or earlier can't show AVIF. WordPress can accept WebP uploads and AVIF at version 6.5 provided there are supported in your system image library; see under Tools/site health/info/media handling.
9. write the correct size of image depending on the screen. A phone doesn't need the desktop banner. The sizes and the srcset attributes allow the browser to select a smaller file. Images that are uploaded through the media library are added and formatted by WordPress, although not all themes and page builders include them. Image that is larger than its size is marked by the Improve image delivery insight.
10. Simplify your fonts. Another file to download is each font weight and font family. Limit to one two families, and only those weights you really require, support WOFF2 files, and prefix font-display: swap to get text rendered immediately in a fallback font. The quickest of the lot is a system font stack, with fonts already available on the device.
11. Use click-to-load embeds. Even when there is no one pressing play, a YouTube video or Google Map embed loads much code. A lightweight will demonstrate a preview of the image and then not load the actual embed until a user will click it.
12. configure long browser cache. The browsers of returning visitors can remember your logo, stylesheets and fonts with your logo, stylesheets and fonts being retrieved rather than having to download once again. The Chrome best practices of using efficient cache lifetimes recommends setting at least 30 days on static files (e.g. images, fonts, scripts and stylesheets). This is a Cache-Control header that can be set by your host, Cache Network-on-Demand or caching plug-in.
13. Delete redirects and compress on. Every redirect will involve an additional round trip, load Pennies calls prior to loading anything, which is why you should just go to the destination address itself (when you use the https, and the active version with or without a ww prefix). Make sure also that your pages are being sent between gzip or Brotli compression. PageSpeed Insights not only checks the request of the main page under the Document request latency but also warns of a server that consumes over 600 ms in responding.
14. Add a CDN. A content delivery network stores replicas of your files in servers in numerous locations, so a viewer in Chennai is not waiting on a server on another continent. Most hosts come with one and it also aids in taking traffic bursts when a sale is happening.
Bigger projects
15. Broken foundations: theme and hosting. When your Time to First Byte (TTFB) is continuously high, then the constraint is the server and no static image solution will mask it. web.dev indicates that a TTFB of 0.8 seconds or less is desired by most sites. The first one is to migrate to a superior plan, choose a server location that will be as near as possible to your customers (in India or near India in case your customers are there or more nearby), and ensure that your PHP version is up to date. Similarly, a theme or page builder that loads lots of CSS and JavaScript per page might require substitution. This is the most laborious but that is when the genuine problem lies in the server or theme then nothing will correct it.
Keep it fast
Speed isn't a one-time job. One big uncompressed photo or a new plugin can un-undo your work, a fresh marketing script, or one of them. Re-run your major pages upon any major change, and once a month with your Search Console check.
Sources
- About PageSpeed Insights (Google for Developers) – https://developers.google.com/speed/docs/insights/v5/about
- PageSpeed Insights tool – https://pagespeed.web.dev/
- Web Vitals (web.dev) – https://web.dev/articles/vitals
- Largest Contentful Paint (LCP) (web.dev) – https://web.dev/articles/lcp
- Interaction to Next Paint (INP) (web.dev) – https://web.dev/articles/inp
- Cumulative Layout Shift (CLS) (web.dev) – https://web.dev/articles/cls
- Time to First Byte (TTFB) (web.dev) – https://web.dev/articles/ttfb
- Optimize Largest Contentful Paint (web.dev) – https://web.dev/articles/optimize-lcp
- Optimize Cumulative Layout Shift (web.dev) – https://web.dev/articles/optimize-cls
- Browser-level image lazy loading for the web (web.dev) – https://web.dev/articles/browser-level-image-lazy-loading
- Optimize resource loading with the Fetch Priority API (web.dev) – https://web.dev/articles/fetch-priority
- Serve responsive images (web.dev) – https://web.dev/articles/serve-responsive-images
- Best practices for fonts (web.dev) – https://web.dev/articles/font-best-practices
- Efficiently load third-party JavaScript (web.dev) – https://web.dev/articles/efficiently-load-third-party-javascript
- Content delivery networks (CDNs) (web.dev) – https://web.dev/articles/content-delivery-networks
- Lighthouse performance scoring (Chrome for Developers) – https://developer.chrome.com/docs/lighthouse/performance/performance-scoring
- What's new in Lighthouse 13 (Chrome for Developers) – https://developer.chrome.com/blog/lighthouse-13-0
- Improve image delivery insight (Chrome for Developers) – https://developer.chrome.com/docs/performance/insights/image-delivery
- Use efficient cache lifetimes insight (Chrome for Developers) – https://developer.chrome.com/docs/performance/insights/cache
- Document request latency insight (Chrome for Developers) – https://developer.chrome.com/docs/performance/insights/document-latency
- Font display insight (Chrome for Developers) – https://developer.chrome.com/docs/performance/insights/font-display
- 3rd parties insight (Chrome for Developers) – https://developer.chrome.com/docs/performance/insights/third-parties
- Lazy load third-party resources with facades (Chrome for Developers) – https://developer.chrome.com/docs/lighthouse/performance/third-party-facades
- Understanding Core Web Vitals and Google search results (Google Search Central) – https://developers.google.com/search/docs/appearance/core-web-vitals
- Understanding page experience in Google Search results (Google Search Central) – https://developers.google.com/search/docs/appearance/page-experience
- Image performance enhancements in WordPress 6.3 (Make WordPress Core) – https://make.wordpress.org/core/2023/07/13/image-performance-enhancements-in-wordpress-6-3/
- WordPress 6.5 adds AVIF support (Make WordPress Core) – https://make.wordpress.org/core/2024/02/23/wordpress-6-5-adds-avif-support/