Skip to content
Back to journal

/ custom web design, wordpress, astro, performance, small business, ownership, page builders

What "custom website" actually means (and what most small businesses get instead)

Four tiers from Wix to hand-coded static; why speed and not being platform-locked favor Astro builds; and when WordPress or a page builder is still the honest pick.

By Jimmy Reich

Laptop on a desk showing analytics charts and a website layout

You get a proposal for a “custom website.” $5,000 to $12,000. Professional photos, five to eight pages, contact form, “optimized for Google.” You sign. Six weeks later you have a site that looks fine in the agency’s demo on office Wi-Fi.

Then a customer opens it on a phone in a parking lot and waits four seconds for the menu to show up. You ask the agency for a change. They quote you $400. You open the hosting bill and realize you’re paying for a theme license, a page-builder subscription, a backup plugin, and a “care plan” that mostly means they clicked Update on plugins you didn’t know you had.

That’s not custom. That’s a configuration job sold with a custom label. This post is the decoder ring.

We build hand-coded static sites with Astro and a git-based CMS called Sveltia. We have a horse in this race. We also wrote the long version on WordPress costs because the honest answer matters more than the sale. Here’s what “custom” actually means, what most small businesses actually get, and when the expensive static build is worth it.

Four things sold as “custom”

When an agency says custom, ask which rung you’re on. There are four.

Tier one: template and AI builders. Wix, Squarespace, GoDaddy, the drag-and-drop tools. You rent the site. Wix paid plans start around $17 per month; Squarespace around $12 to $16. You cannot fully export the design, the structure, or the platform logic. If you leave, you rebuild. We wrote a working comparison for restaurants that applies to any local business: the sticker price is not the three-year price.

Tier two: WordPress plus a marketplace theme. WordPress powers a large share of the web (W3Techs puts detected installs around 43%; that number includes abandoned sites, so the share of active, maintained sites is lower). You get a pre-built theme, a stack of plugins, and an admin panel. Portable in theory. Tangled in practice, because the site only works with the specific plugins, licenses, and PHP version the builder chose.

Tier three: WordPress plus a page builder. Elementor, Divi, WPBakery. Roughly 60% of WordPress sites now use a builder. Elementor alone shows up on about 31% of live WordPress sites in W3Techs data. The builder adds wrapper divs, extra CSS, and JavaScript on every page. Independent speed tests (Odd Jar, Colorlib) put Elementor-heavy pages at roughly 1,500 to 3,000 DOM nodes and Core Web Vitals pass rates around 25% to 35% on mobile, below the WordPress average. You are not buying custom code. You are buying a visual layer on top of someone else’s stack, plus annual licenses (Elementor Pro runs $59 to $399 per year; caching plugins like WP Rocket around $59 per year; security and backup plugins on top).

Tier four: genuinely hand-coded. A developer writes or assembles the site in code (we use Astro), outputs static HTML, and delivers a build you can export. Content lives as files in git, not in a proprietary database only your old vendor can touch. The front end and the CMS are separate on purpose.

Tiers one through three are what most small businesses get when they pay for “custom.” Tier four is what the word used to mean.

If you are on tier two or three, the recurring costs are real. We itemized them in WordPress is a tax. Security plugins, speed plugins, care plans at $75 to $300 per month, zombie plugins that never get patched. You do not need this post to repeat every line item. You need to know which tier you bought.

Definitions that matter

Three phrases show up in proposals. Plain versions:

Static site generator (SSG). The site is built ahead of time into HTML files. When a visitor loads your homepage, the server hands them a file. No PHP spinning up, no database query, no “assemble the page on the fly.” Astro is an SSG. It can do more (server routes, islands of interactivity), but the default is static and fast.

Headless or git-based CMS. Content management split from the design. Your words and images live in Markdown or YAML, versioned like source code, not trapped in one agency’s database. You own the copy and images. The website reads them at build time. If you change vendors, the content comes with you as files, not as a platform login you cannot replace.

JAMstack. JavaScript, APIs, and pre-rendered markup. Markup on a CDN, dynamic stuff (forms, search) through small APIs. Fewer moving parts, smaller attack surface. No WordPress-style plugin pile.

Sveltia CMS is how we solve “but how do I edit it?” It is a free, open-source, git-based CMS (successor to Netlify/Decap CMS). It loads at /admin on your domain. Non-technical editors get a normal admin UI: pages, collections, image uploads. Saves commit to GitHub (or GitLab). Full version history. You are not emailing a developer to change your hours. We use it on client builds like F2M Goods and our own journal. Production-ready; v1.0 was expected early 2026.

If a static site has no CMS, only a developer can edit it. That is a real tradeoff. A git-based CMS removes it without dragging you back to WordPress.

Speed is revenue, not vanity

Google measures three user-facing signals: Largest Contentful Paint (main content visible), Interaction to Next Paint (tap response), Cumulative Layout Shift (layout jump). Together they are Core Web Vitals. They influence ranking as a tie-breaker; content relevance still wins. But visitors do not read the algorithm. They leave.

The money numbers:

  • Google and Deloitte’s “Milliseconds Make Millions” study (37 brands, Europe and US): a 0.1 second improvement in mobile load speed lifted retail conversions 8.4%, travel 10.1%, and retail average order value 9.2%.
  • Think with Google (widely cited mobile speed research): 53% of mobile site visits were abandoned if the page took longer than 3 seconds to load.
  • Portent (2022, 100M+ pageviews across 20 sites): e-commerce sites loading in 1 second averaged a 3.05% conversion rate vs. 1.08% at 5 seconds. Lead-gen goal conversion was about 40% at 1 second, dropping toward 29% at 3 seconds.

Scale that down. Cloudflare uses an illustration: a site doing $10 million per year in revenue gains about 4% from a 2-second speed improvement, roughly $400,000 per year. A local business doing $500,000 per year with the same relative gain is looking at roughly $20,000 per year left on the table. Not fantasy math. Directionally right, and it is why the parking-lot test matters more than a badge on a sales deck.

Greg Linden’s 2006 Amazon experiment (often quoted as “every 100ms costs 1% of sales”) is older and context-specific. Treat it as evidence that big retailers measure this obsessively, not as a guarantee for your bakery.

Platform pass rates (real user data, hedged):

HTTP Archive’s Web Almanac and related CrUX reporting put global mobile Core Web Vitals pass rates around 48% in 2025. WordPress origins sit near 43% to 45% on mobile, among the lowest large CMS platforms. Duda, Shopify, and Wix score higher on pass rate; that does not mean they are the fastest sites on the internet. Passing means you cleared Google’s thresholds. A hand-coded static site on a CDN often loads in half the time of a passing Wix site on the same phone. We said that plainly in the restaurant comparison: pass rate is not the parking-lot test.

Astro’s 2023 Web Framework Performance Report (independent CrUX and HTTP Archive data, not measured by Astro Inc.) found Astro was the only major framework with more than 50% of its production sites passing Core Web Vitals. Median mobile Lighthouse performance scores for WordPress in Web Almanac 2024 land around 38 out of 100. You can tune WordPress toward good scores. Static-first architecture starts there.

Why WordPress is slow by default: PHP and MySQL run on every uncached request. Plugins enqueue their own scripts and styles. Page builders inflate the DOM. Agency sources citing fixmywp.com attribute roughly 80% of WordPress performance problems to plugins. Elementor pages often need a caching plugin (WP Rocket and peers) just to reach “acceptable.”

Why Astro is fast by default: Zero JavaScript unless you opt in. Interactive pieces hydrate as “islands” without shipping a full app shell. HTML is pre-built and served from an edge CDN. Astro’s official docs compare the same site to a popular React framework (not WordPress): about 40% faster load with about 90% less JavaScript. Different baseline.

Google’s Firebase blog team rebuilt their blog on Astro (migrating from Blogger, not WordPress) and reported a 71% performance increase, build time down from 6 minutes to 1.5, publishing cut from hours to minutes. Use it as proof that a static rebuild changes operations, not as a direct WordPress-to-Astro scorecard.

Cloudflare acquired The Astro Technology Company in January 2026. Astro stays open source under MIT. The ecosystem is not a science project.

Our Coastal Grill demo and SEO receipts load in well under a second on throttled mobile. Passing Core Web Vitals is table stakes. Winning the parking lot is the point.

Ownership and the recurring tax

Speed is half the argument. The other half is what you are actually tied to on day 730.

Rent (builders). You pay $12 to $40 per month forever. You do not own the codebase. Export is partial or impossible. Price increases are platform decisions. Performance ceiling is their infrastructure.

Rent disguised as own (WordPress). No single vendor lock, but a dependency stack: hosting that runs PHP, theme license, builder license, premium plugins, security plugin, backup plugin, care plan. Codeable’s 2026 maintenance pricing survey puts freelancer care plans around $50 to $150 per month and agency retainers often $500 per month and up for sites that need real attention. That is not malicious. It is the cost of keeping twenty plugins from breaking each other.

Own the asset, host with a partner (hand-coded static). You are not renting your design inside Wix or Squarespace. You are not stacking plugin licenses to keep the same site alive. The build and content are exportable. For our clients, the site runs on Tarpon hosting and the client portal: fast CDN, SSL, weekly backups, uptime monitoring, Sveltia so you can edit copy yourself, real human support, billing in one place. One predictable monthly line item, not six renewals. No long-term contract. If you leave, we hand you a full export of the site, your domain stays yours, and you can move it to another developer or host. We ask for 30 days notice so the handoff is clean. That is ownership in the sense a small business owner cares about: not trapped, not surprised, not rebuilding from screenshots inside someone else’s platform.

Three to five year sketch:

  • Builder: $600 to $2,400 in platform fees alone, plus your time, plus no asset at the end.
  • WordPress agency build: commonly $3,000 to $15,000 upfront, then hosting ($20 to $200+ per month), plugin renewals, and maintenance. The recurring stack often exceeds the original build.
  • Hand-coded with us: higher upfront (our tiers run $750 to $6,500; full market context here), then $30 to $99 per month hosting on most tiers (Premium is $99). That includes the CMS, CDN, SSL, monitoring, minor content fixes, and us answering the phone. Not free DIY hosting. Cheaper and simpler than the WordPress plugin-and-care-plan stack for the same job.

Security belongs in ownership, briefly. Patchstack logged 7,966 new WordPress vulnerabilities in 2024, 96% in plugins and themes, 7 in core. Sucuri’s threat reports attribute the vast majority of CMS infections they see to WordPress, which reflects market share as much as architecture; the practical point for a five-page business site is that you inherit a plugin attack surface you did not design. Static HTML on a CDN has no database to inject and no abandoned slider plugin. Details and zombie-plugin stories: the WordPress tax post.

When WordPress or a builder is the honest answer

We will tell you not to buy from us when the fit is wrong.

WordPress still wins when:

  • You publish complex content daily with multiple authors and need mature editorial workflow out of the box.
  • You need membership, LMS, heavy WooCommerce, or niche integrations that exist as turnkey plugins.
  • You already have hundreds of posts and real organic traffic. Migration is a project, not a weekend.
  • You want to drag-and-drop redesign the site monthly without involving a developer.

A DIY builder still wins when:

  • Upfront cash is the binding constraint and you accept that you are renting, not owning.
  • The site is a placeholder, not a revenue channel, and you will do the work yourself.

Static / hand-coded is the wrong tool when:

  • You need a SaaS dashboard, real-time feeds, or heavy server-side personalization on every page without planning for it.
  • You refuse any CMS layer and expect a non-technical owner to edit raw files. We do not recommend that.

For the typical local business, five to twelve pages, phone calls and form fills matter, you are not running a magazine. Hand-coded static with Sveltia at /admin, hosted on our portal, matches the job: fast by default, not locked in a builder cage, editable without WordPress.

What to do with this

Read your proposal and name the tier. Ask what you get if you leave: an export and a clean handoff, or a login on someone else’s platform you cannot take with you.

If you are on tier one through three and the site is fast, secure, and cheap enough to operate, keep it. If you are paying tier-three money for tier-three speed and tier-four promises, that is a conversation.

Send us the URL. We will reply by email with a few questions, then a detailed proposal: what we would build, how, timeline, flat price. Free. No pitch you did not ask for.

Jimmy

Got a question this raised?

Send a note. We reply within one business day, usually faster.