Exploration · Web · SEO & structure

SEO & content architecture

This is not a shipped product with a logo and a launch date — it is the ongoing discipline of building sites that stay understandable to humans and machines as they grow: clear page intent, honest metadata, semantic structure, and internal linking that reinforces meaning instead of scattering it.

  • FocusIA, metadata, internal linking
  • StackNuxt, semantic HTML, route SEO
  • ContextOngoing practice & client builds
  • TypeExploration / methodology

01 · Framing

Why this page exists

Most portfolio case studies celebrate a single deliverable: a site went live, a brand refreshed, a product shipped. This entry is different. SEO and content architecture are not a one-off project in my workflow — they are constraints I carry into every multi-page build, because they determine whether a site feels coherent on day one and whether it is still legible after you add the tenth service page, the third location, or the blog you swore you would start later.

Search engine optimisation has a reputation for hacks and keyword stuffing. That is not what I am describing here. The kind of SEO I care about is structural: aligning what a URL claims to offer with what the page actually delivers; using headings that outline an argument instead of decorating it; wiring internal links so related ideas reinforce each other; and setting titles and descriptions at the route level so every entry point — search, social preview, bookmarks — reads as intentional rather than accidental.

On a practical level, that work happens inside frameworks like Nuxt, where routing, layouts, and composables make it possible to treat metadata as part of the application, not an afterthought pasted into a CMS field once and forgotten. It also happens in plain semantic HTML: choosing the right elements, preserving a sensible heading order, and avoiding patterns that look fine in a screenshot but confuse assistive tech or crawlers when the DOM is flattened.

The sections below walk through how I think about these problems, what I optimise for, and where I draw honest boundaries — including what no amount of clean code can guarantee. If you are planning a site that must earn trust, clarify services, or scale across regions without turning into a maze, this is the methodology behind the builds.

02 · Foundation

Information architecture and SEO are the same conversation

Information architecture (IA) answers: what exists on this site, how is it grouped, and how do people move between related ideas? SEO asks overlapping questions from a discovery angle: which pages should represent which topics, how does authority flow between them, and where might two URLs compete for the same intent? When IA is vague, SEO suffers — not because Google is punishing you mystically, but because users bounce, links split across duplicates, and crawlers see thin or overlapping content without a clear champion page.

I start from a simple rule: every important intent gets a home. That home might be a single long page with anchored sections, or a parent page with children — the right shape depends on depth of copy, competition in the niche, and how people actually search. What matters is that the team can name the primary URL for a topic without hesitation. If you cannot finish the sentence “when someone looks for X, we want them to land on ___,” the architecture is not finished.

IA also forces decisions about navigation labels, URL slugs, and breadcrumbs. Those are user-facing clarity tools first; they are also signals. A slug that reads like a sentence fragment stuffed with keywords feels untrustworthy in the address bar. A slug that reflects the real hierarchy of the business — services, locations, resources — often serves both people and search better, because it mirrors how the organisation thinks about its own work.

Finally, IA is where you decide what not to build. Not every keyword deserves a page. Thin pages created to capture long-tail phrases without unique value tend to clutter sitemaps and dilute crawl budget on smaller sites in competitive spaces. I prefer fewer, stronger pages with room to grow than a spray of placeholders that will embarrass the brand six months later.

03 · Intent

Page intent and the URL as a promise

A URL is a promise. The title tag and meta description are the headline and subhead of that promise in search results. When those elements overclaim relative to the body copy, you train both users and algorithms to distrust the site. When they underclaim, you may hide useful pages that deserved more prominent framing. I treat intent alignment as a design problem: the hero section, the first screen on mobile, and the H1 should all tell the same story as the SERP snippet.

In Nuxt projects, I like to keep SEO configuration close to the route — co-located with the page or a thin wrapper — so when someone edits a page, they encounter metadata in the same mental context as layout and copy. Centralised defaults are fine for site name suffixes and fallbacks, but page-specific titles and descriptions need to be editable without spelunking through a distant config file that nobody remembers to update.

Page intent also governs calls to action. A blog post that educates should not use the same CTA density as a commercial landing page. A contact page should not pretend to be a service overview. Mixed intent — trying to rank for transactional and informational queries on the same URL without a deliberate structure — often produces pages that rank for nothing in particular because they satisfy nobody completely.

For local and regional businesses, intent layers include geography. When location matters, it belongs in the content model early: dedicated location pages when depth warrants them, or clearly scoped sections when a single page is enough. The worst pattern is repeating city names in footers and title tags while the main content is still generic — it reads as manipulation rather than relevance.

04 · Markup

Headings, landmarks, and semantic HTML

Crawlers and assistive technologies do not care about your font sizes — they care about document structure. A single clear h1 per view, h2 sections that chunk the narrative, and h3 where sub-points need it: that pattern is both an accessibility baseline and a way to communicate topical boundaries to search systems that still lean on textual cues.

I avoid skipping levels for styling convenience. If the design calls for a small cap label above a section title, that label should not be an h4 floating before an h2 just because the designer liked the size. CSS exists to decouple visual hierarchy from the outline. Breaking the outline for aesthetics is a debt that shows up in screen reader order, keyboard navigation, and sometimes in how snippets are generated.

Landmarks — header, nav, main, footer — help users skip repetition. They also clarify where the primary content lives relative to boilerplate. Component-driven frameworks make it easy to accidentally wrap everything in generic divs; I check that the main story of the page lives inside a proper main region and that navigation is not nested in confusing ways when modals and mobile drawers duplicate links.

Lists, quotes, and tables should use list, quote, and table elements — not only because it is correct, but because those patterns carry meaning when the page is parsed beyond the viewport. When content is genuinely tabular, a table beats a grid of divs for both semantics and maintenance.

05 · SERP

Route-level metadata in modern frontend stacks

In a Nuxt application, SEO meta is usually composed through useSeoMeta, useHead, or project-specific composables that wrap them. The implementation detail matters less than the discipline: canonical URLs that resolve duplicate paths, Open Graph tags that match the page when shared, and descriptions written for humans first — because even when search engines rewrite snippets, your provided text still influences the starting point.

I pay attention to title length and uniqueness. Duplicate titles across a site are a common failure mode when templates default to the brand name only. Each page should earn a distinct title that reflects its specific angle. Similarly, meta descriptions are not ranking boosters in the simplistic sense, but they are conversion copy in the SERP. A bland description wastes the click; an accurate, specific one sets expectations that reduce bounce when the page delivers.

For content that changes — pricing, regulations, seasonal services — metadata should be maintained alongside the body. A portfolio or blog benefits from article-style OG types where appropriate, and from honest publication context. Trying to look “always fresh” with fake dates is a short-lived tactic that erodes trust when a human notices.

Structured data (JSON-LD) enters the picture when the site has clear entities: organisation, local business, services, FAQs. I add it when it reflects reality — not as a spray of schema hoping for rich results. Incorrect structured data is worse than none.

06 · Graph

Internal linking as a design system

External backlinks get the glamour, but internal links are the part of SEO you control completely on day one. They define which pages the site treats as central hubs, how authority and context flow between related services, and whether a first-time visitor can move from awareness to action without hitting dead ends.

I think about internal linking in three layers: navigation (global and local menus), contextual links inside body copy, and related modules at the end of articles or service pages. Navigation carries sitewide priorities. Contextual links tie ideas together where the reader’s need naturally arises — that is often where the best anchor text lives, because it is specific and human. Related modules scale repetition without feeling like every page was stamped from the same boilerplate paragraph.

Anchor text should describe the destination. A wall of “click here” or “read more” links is a usability problem before it is an SEO problem. Descriptive anchors help everyone — including people scanning with voice control or screen readers — understand what will happen next.

I am cautious with automated linking rules that fire on keyword match alone. They tend to create unnatural patterns and cross-link irrelevant pages. A lighter touch — curated relationships in data or front matter, or hand-placed links in copy — usually ages better.

07 · Scale

Scaling multi-page sites without losing the plot

Small sites stay coherent by accident. Medium and large sites do not. Scaling requires templates and content types with predictable fields: what every service page must include, how location pages differ, where testimonials and FAQs belong, and what metadata each type carries. Without that clarity, each new page becomes a one-off negotiation, and inconsistencies creep into titles, headings, and internal links.

Component-driven frontends help because they enforce repetition: the same hero pattern, the same CTA band, the same related-links slot. The risk is visual repetition without editorial differentiation — two service pages that look identical and read thin. Templates should demand substance, not just fill slots. That is where collaboration with whoever owns the copy becomes essential; SEO-friendly structure cannot invent expertise the business does not have.

Performance ties in quietly. Bloated pages with enormous hero images and third-party scripts undermine user experience signals that search systems already interpret harshly on mobile. I keep an eye on Core Web Vitals not as a checklist trophy, but because slow, janky pages lose people before a word of copy is read — and no meta description fixes that.

Version control and preview workflows matter too. When content editors cannot see metadata and social previews before publish, mistakes ship. A staging environment and a habit of checking the SERP snippet and OG preview for new routes catches problems that automated tests miss.

08 · Overlap

Cannibalization, duplication, and consolidation

Keyword cannibalization happens when multiple URLs on the same site compete for the same query intent. The result is often fluctuating rankings or a weaker page winning the internal lottery. Fixing it is editorial and structural: merge thin pages, differentiate angles clearly, or explicitly demote secondary pages to supporting roles with internal links and anchor choices.

Duplication also arrives through technical routes: HTTP vs HTTPS, www vs non-www, trailing slashes, campaign parameters indexed as separate URLs. Canonical tags and consistent redirects matter. On SPA-style setups, I verify that the rendered HTML for a route actually contains the content we expect crawlers to see — not a shell that only fills in client-side without a solid SSR or prerender strategy where needed.

Consolidation is often braver than proliferation. Retiring redundant pages with 301 redirects to a stronger parent preserves equity and simplifies the story for users. Not every stakeholder loves deleting URLs; framing it as clarity rather than loss usually helps.

09 · Honesty

What clean architecture cannot guarantee

I do not sell guaranteed rankings. Search is competitive, algorithms change, and off-site factors — links, brand search volume, offline reputation — matter enormously in many niches. What I can commit to is sound technical hygiene, clear page intent, copy that matches what titles promise, and an IA that will not collapse when you add real content. That stack removes self-inflicted obstacles. It does not replace a differentiated offer, consistent publishing, or the slow work of earning trust in your market.

I also will not recommend tricks that trade long-term credibility for short-term spikes: hidden text, doorway pages, fake reviews, or schema that misrepresents the business. The sites I want to associate with are the ones that can stand in front of a client or regulator and explain every page honestly.

10 · Practice

How this shows up in real builds

On client projects, this methodology translates into workshops or async questions up front: who are the priority audiences, what services actually drive revenue, which locations or sectors matter, and what proof exists in the form of cases, qualifications, or testimonials. The answers shape routes before Figma frames pile up.

During build, it means linting heading order where possible, shared layout components for recurring page types, and metadata composables that encode defaults while allowing overrides. It means footer and navigation that reflect IA decisions instead of every department demanding top-level placement without strategy.

After launch, it means measurement without obsession: Search Console for query-page alignment, landing page behaviour in analytics, and qualitative feedback from staff who answer the phone. Numbers inform the next iteration; they do not replace judgment about what the business should say.

My own portfolio is a lab for the same ideas — route-level titles, structured sections, internal links between services and projects, and copy that tries to be specific rather than generic. It will never be perfect, but it should be inspectable: you can view source, follow links, and see a coherent graph rather than a pile of disconnected landing pages.

12 · Summary

Operating principles (the short version)

  • One primary intent per URL — or a deliberately structured combination with obvious sections.
  • Metadata matches the page — titles and descriptions written for humans, unique per route.
  • Headings outline the argument — styling handled in CSS, not by skipping levels.
  • Internal links are curated — descriptive anchors, related content where it helps, no orphan hubs.
  • Templates encode standards — repeatable page types with required substance, not empty shells.
  • Performance and accessibility matter — they are part of search reality, not extras.
  • Honesty over hacks — structure and copy should survive public scrutiny.

13 · Closing

Ongoing work, not a checkbox

SEO and content architecture do not cross a finish line. They are habits: revisiting IA when the business pivots, refreshing metadata when services change, adding internal links when new proof points appear, and pruning pages that no longer serve a purpose. The reward is not a trophy keyword position every time — it is a site that remains navigable, credible, and expandable as the organisation behind it grows.

If you are planning something where structure and discoverability matter — regional services, complex offerings, or a content library that needs to build over time — I am happy to talk through fit and scope on the contact page. I will be direct about what I can build, what you will need to supply in terms of expertise and copy, and what belongs to broader marketing work outside the codebase.

14 · Stack

Tools and focus areas

Representative of how these ideas show up in my projects — not an exhaustive vendor list.

Technologies & practice areas

  • Nuxt / Vue
  • Semantic HTML
  • Route-level SEO (titles, descriptions)
  • Information architecture

Also involved

  • Internal linking patterns
  • Structured headings
  • Content modeling
  • Performance-aware delivery