Skip to content
Web DevelopmentProfessional services

Building a WordPress Business Website

The build sequence for a service-business WordPress site, and why the content model comes before anything visual.

This is an implementation example, not a client case study. It describes how this work is actually carried out — the method, the sequence and the reasoning. No client is named and no result is claimed, because inventing either would make it worthless as evidence.

Build sequence for a WordPress business website

A service business needs a website that explains what it does, proves it can do it, and makes getting in touch obvious. That sounds simple enough that most WordPress builds skip straight to design — and then spend week three rebuilding templates because the content did not fit the layout.

Project type
New WordPress build, service business
Sector
Professional services

The challenge

Service businesses accumulate pages. Six services become nine, then twelve. Each one built individually means every addition is a small project, the layouts drift apart, and internal linking is whatever someone remembered to add. Meanwhile the site has to load quickly on a phone, be editable by a non-technical person, and give Google enough structure to understand what the business does.

The objective

A site where adding a thirteenth service takes ten minutes and inherits the layout, the schema and the internal links automatically — and where the person who owns the business can change their own opening hours.

Approach

Content model before design. Decide what types of content exist and what fields each needs, then build templates for those types, then apply design to real content. Designing against placeholder text is how you get a layout that breaks the moment a real service description runs three lines longer than the dummy copy.

Implementation

1. Content model

Before any visual work, the content types get defined:

TypeFields
ServiceTitle, summary, body, what's included, price band, FAQs, related services
Case studySector, challenge, approach, outcome, images
ArticleTitle, category, body, author, dates
TestimonialName, business, quote, service, permission flag

The permission flag on testimonials is not decoration. It records whether the client has actually agreed to be quoted, and nothing renders without it.

2. URL structure

Decided once, before anything is built:

  • /services/<service> — flat, one level, short slugs
  • /case-studies/<slug>
  • /blog/<slug>

No dates in URLs, no nesting beyond two levels, and a written decision on trailing slashes so the site never serves both.

3. Templates

One template per content type, not one per page. The service template renders any service; the case study template renders any case study. Layout, heading hierarchy, breadcrumbs, schema and related-content blocks are built in once.

This is what makes the thirteenth service a ten-minute job.

4. Internal linking, systematically

Related services, related articles and breadcrumbs are generated from the content model rather than added by hand. Hand-added links are incomplete the day they are written and stale within a year.

5. Design, against real content

Applied after the templates exist and with actual copy in place. Long service names, short ones, three-line descriptions and one-line descriptions all get checked.

6. Performance

Images sized for their rendered dimensions, modern formats, hero image not lazy-loaded. Plugin stack kept to what can be justified in a sentence. Tested on a mid-range Android over a throttled connection rather than on a desktop.

7. Handover

Credentials in the client's name. A walkthrough of what is editable. The plugin list with the reason each one is installed, so the next developer is not guessing.

Technology

  • WordPress
  • Custom theme
  • Advanced Custom Fields
  • PHP (OOP)
  • MySQL

Decisions worth explaining

Custom theme rather than a page builder

The site would be edited a few times a year, not weekly. A builder's editing convenience is worth its page weight when someone is in the site constantly; it is a permanent performance cost paid for nothing when they are not.

Services as a content type, not as pages

Twelve individually-built pages drift apart and make every addition a project. One template means consistency is structural rather than something someone has to remember.

Schema generated from content fields

Hand-written JSON-LD per page drifts out of step with what the page says. Generating it from the same fields that render the page makes disagreement impossible.

What it produces

A site whose structure supports growth rather than resisting it: new services inherit everything, internal linking stays complete without maintenance, and the owner can make content changes without a developer. No traffic or ranking figures are claimed here — this is a description of a build method, not a report on a client engagement.

What it teaches

  • The content model is the highest-leverage hour in the whole project, and it is the one most often skipped.
  • Designing against real content catches layout failures that placeholder text hides entirely.
  • Systematic internal linking outperforms hand-added linking permanently, because it cannot go stale.
  • A plugin you cannot justify in one sentence is one you should test removing.

Related services

Related guides

Worked examples