Building a Website With SEO Designed In
SEO retrofitted is remedial work. Here is what it looks like when the structure is right from day one.
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.

SEO added after launch is repair work. Some of it genuinely is ongoing — content, links, iteration on real data. But the structural half is several times cheaper during the build, and a site built without it starts with a ceiling on what any later SEO work can achieve.
- Project type
- New build with SEO structure designed in
- Sector
- Professional services
The challenge
The default outcome of a normal build is a site that looks right and is structurally arbitrary: headings chosen by size, URLs invented per page, schema added by a plugin that guesses, internal links added by whoever remembered. Each is individually minor and collectively caps the site.
The objective
A site where the structural SEO work is finished at launch, so later effort goes into content and authority rather than into fixing the foundations.
Approach
Treat crawlability, semantics and internal linking as build requirements with the same status as browser support — things the build is not finished without, rather than things to look at later.
Implementation
Semantic structure
One H1 per template, describing the page. H2s for sections, H3s beneath. Heading level chosen by meaning, never by how large the text should look — that is what CSS is for.
Landmarks used properly: main, nav, article, aside. These help screen readers and crawlers for the same reason.
URLs decided before build
Short, descriptive, lowercase, two levels maximum, consistent on trailing slashes. Decided once so the site never needs a redirect on day one.
Internal linking in the templates
Breadcrumbs, related content and cluster links generated from the content model. The important consequence: coverage is complete by construction. Nothing is orphaned because someone forgot.
Navigation built as real anchors present in the server-rendered HTML — not buttons, not menus that only mount on hover. A crawler does not hover, and a menu that only exists after a mouse enters it contributes nothing to discovery.
Schema generated from content
Service, Article, BreadcrumbList and FAQPage all built from the same fields that render the page, so markup and visible content cannot disagree.
Explicitly excluded: any review or rating markup not backed by reviews visible on that page. That is a structured-data policy violation and a manual-action risk, and it is easy to ship by accident when a theme adds it unasked.
Rendering
Content present in the initial HTML rather than injected by JavaScript. Rendering is a separate, queued stage for Googlebot, so content that requires JavaScript is indexed more slowly and less reliably.
Performance as a build target
Core Web Vitals thresholds treated as acceptance criteria, measured on a mid-range mobile profile.
Launch checks
Sitemap generated from live data — not baked at build time from a source that might be unavailable. Canonicals self-referencing. One canonical host with 301s from the rest. Nothing accidentally noindexed.
Technology
- Next.js
- WordPress
- JSON-LD
- Google Search Console
- Screaming Frog
Decisions worth explaining
Sitemap generated per request, not at build time
A build-time sitemap depends on data being available during the build. When it is not, the failure is silent and the sitemap ships incomplete. This exact failure cost this site eighteen URLs for three months.
No review schema without visible reviews
Unsupported rating markup is one of the more common causes of a structured-data manual action, and the code path is removed entirely rather than left as a discipline someone has to remember.
Navigation as real anchors, submenus hidden with CSS
Conditionally-mounted menus mean their links do not exist in the HTML. Hiding with CSS keeps them crawlable while behaving identically for users.
What it produces
A site launched with its structural SEO complete: crawlable, semantically coherent, internally linked by construction, and emitting schema that matches its own content. What that produces in search depends on content and competition, and is not claimed here.
What it teaches
- Structural SEO is cheap during a build and expensive afterwards. The gap is the entire argument for doing it early.
- Silent failures are the dangerous ones. A sitemap that quietly loses URLs looks completely normal.
- If a crawler has to hover, click or wait for JavaScript to find your links, it will not find them.
- Schema that contradicts the page is worse than no schema at all.
Related services
Related guides
WordPress
What Makes a WordPress Website SEO Friendly?
Installing an SEO plugin is not SEO. Here is what actually makes a WordPress build search-friendly, and what has to happen during development.
SEO
How Google Crawls and Indexes a Website
Four stages, four different failure modes. Most SEO confusion comes from treating them as one process.
SEO
Internal Linking: A Practical SEO Guide
The most under-used lever in SEO, mostly because it is invisible and nobody sells it as a product.
SEO
How to Create an SEO-Friendly Website Structure
Structure is decided early and expensive to change. Here is how to get it right the first time.

