Behind the page

How This Site Is Built

This site is a working example of the practices I recommend to clients. Most of them are invisible on the page, so this is a guide to where to look and why each choice was made.

Plain HTML, on purpose

There is no content management system, no page builder and no framework. Every page is a file, there is one stylesheet and one small script, and a shared header and footer are stamped into every page by a build script so the navigation is identical everywhere. Nothing needs updating, nothing can be hacked through a plugin, and the pages load fast because there is nothing between the HTML and the browser.

The site deploys from a GitHub repository to Vercel on every commit. A change is a commit, and a commit is live within a minute. That is the same discipline I bring to client sites: write it down, make it checkable, keep it boring.

Information architecture first

Services are organized into four areas, each with its own landing page and five specific services. The URLs read as a hierarchy, for example /services/search-marketing/seo/, and every address has exactly one canonical form: lowercase, directory style, trailing slash. Breadcrumbs on every page mirror that URL and are repeated in structured data so search engines see the same hierarchy a visitor does.

One job per page

Each page targets one topic. It gets a title tag of 50 to 60 characters, one meta description, one h1 and one h2 per section. Service pages carry a frequently asked questions block that answers the questions people actually search, and a related services block that links sideways so no page is a dead end. No two pages share a title or a description, and a sweep script checks every page for those rules before anything is published.

Structured data on every page

Every page carries a JSON-LD graph. The core entity is a Person node for me, defined once and referenced by its identifier from every other page, with sameAs pointing at my LinkedIn profile. Around it sit WebSite, WebPage and BreadcrumbList. Service pages add a Service node with me as provider plus an FAQPage. Category pages add an OfferCatalog of their services. The home page describes a ProfessionalService, the about page is an AboutPage, the experience page a ProfilePage and the contact page a ContactPage. Paste any address from this site into Google's Rich Results Test to see the graph.

Built to be understood by AI systems

Search increasingly means an AI system reading the page and answering on my behalf, so the site is written to be summarized accurately. A /llms.txt file at the root explains who I am and what each page is for. Every FAQ answer gives the direct answer in its first sentence. The facts about me, including name, title, location and employers, are stated the same way on every page and in the structured data. Recommendations are quoted verbatim and attributed, so nothing on the site is a claim without a source. And every page opens with a short comment in its source explaining the markup choices on that page.

Sharing and discovery

Every page has Open Graph tags and a branded 1200 by 630 image so links look right on LinkedIn and in messaging apps. A sitemap is generated from the pages that should be indexed, the robots file points to it, and pages that should not be indexed, like the form thank-you page, say so.

Accessible by keyboard and screen reader

The page starts with a skip link. The services mega menu is a real button with aria-expanded state, opens on hover or click, closes on Escape, and works with the arrow keys. Landmarks, headings and lists are semantic HTML, focus is always visible, icons are hidden from assistive technology, and text and background colors are chosen to meet WCAG AA contrast.

What comes next

Analytics with consent, Search Console verification and a first set of articles on the questions clients ask most. Each of those will be documented here as it ships, because the point of this page is to show the work rather than describe it.

Curious how your site measures up?

Send me the address. I will tell you what I see in the source before we ever talk about a project.