WordPress, Shopify or a custom build: what you are really choosing
The build price is the smallest part of the platform decision; running costs, who keeps the site updated and how hard it is to leave matter more.
5 min read
Pages feel slow on a phone. Someone suggests a faster server, and the money goes into hosting while an uncompressed hero photograph sits on the home page. Slow sites rarely have one cause. Several stack, and they get fixed in the wrong order: the cheapest problems are usually the heaviest. Here is that order, with the measurement for each.
Images are usually the largest download on a page and the easiest thing to fix. A photograph exported from a camera or design tool carries far more pixels than the space it fills on screen, and the browser downloads every one. Where that image is the largest element on screen, it decides when the page looks ready. Compress it, resize it to the dimensions it is displayed at, and serve WebP or AVIF with a JPEG fallback.
A faster server does not make a large image smaller.
Scripts are the next cheapest fix and the one with the most resistance behind it, because every tag belongs to somebody. A chat widget, two analytics tools, a heat map, a review badge, a pixel for a campaign that ended last year. Each costs a DNS lookup, a connection, a download and time on the main thread. Anything in the head without async or defer stops the browser parsing, so the page waits on a server you do not control. A tag manager hides that rather than solving it.
Remove first. Defer or load asynchronously what survives. Load a widget such as chat only on interaction.
Fonts are cheap to fix technically and awkward politically: the fix is often a design decision. Every family, weight and style is a separate file, so two families in four weights with italics is a stack of downloads before any text appears. An @import rule in CSS adds a serial request: the browser fetches the stylesheet, reads it, then fetches the font. Filter the Network tab to Font and count the files, then count the weights the design uses. Self-host, subset to the characters you need, preload the faces above the fold, and set font-display so text renders in a fallback rather than staying invisible.
The cost curve turns here: visual builders and multipurpose themes ship the assets for every feature they offer on every page, used or not. A contact page with a heading and a form can load a slider library, an animation library and a stylesheet for a page that does not exist. Plugins add their own assets sitewide. The page is slow structurally, and compression will not rescue it.
Conditional loading and switching off unused modules help. Past that you are paying to optimise a system built for flexibility rather than speed, and rebuilding the templates costs less.
Hosting comes last because it is the most expensive layer to change and the least often the cause. A migration touches DNS, email, certificates and staging, and carries downtime risk. Look at time to first byte on the document request, not the assets. A long first byte on an otherwise light page means the server is thinking: no page cache, an old PHP version, database queries on every request, or CPU contention on a shared plan. Test from the region your buyers are in; distance is part of that number. If the server sits on one continent and the buyers on another, a content delivery network is cheaper than moving. We take no commission from any platform we recommend, and the hosting account stays in the client's name.
Lab tools are diagnostics. They tell you what to change, not whether the site is fast enough, because they run on a device and connection you chose. For that you need field data: real visits on the phones and networks your buyers have. Core Web Vitals are assessed that way, from real sessions, weighted towards the slower visits. Read them split by device and landing page: a quick home page can hide a slow product template.
Fast enough is the point where speed has stopped being the reason people leave. The test is whether the main content appears before a mildly interested stranger loses patience, whether the page answers the first tap, and whether the layout stops moving before a thumb reaches the button. Track enquiries per session alongside load time for a few months, so you see where the returns flatten in your own data rather than taking ours on trust. Then stop, and spend the next hour on the enquiry form.
Open your slowest page in Chrome DevTools tomorrow, sort the network requests by size, and fix the largest image before you touch anything else.
Written by Fibvo — Bengaluru and Erode, India — working with clients in other time zones. Questions, or think we have it wrong? Tell us.
Keep reading
The build price is the smallest part of the platform decision; running costs, who keeps the site updated and how hard it is to leave matter more.
5 min readContrast, headings, alt text, keyboard use and form labels decide whether many visitors can use your site, and each can be checked in an afternoon.
5 min readHow to place WhatsApp and call buttons so they help rather than get in the way, pre-fill useful messages, respect working hours and show where each chat began.
5 min readNext step
Send the problem in a paragraph. We will reply within one working day with an honest view of whether we can help, and what it is likely to cost.