RU/ENDiscuss a project
← All posts

Website development specification: structure, examples, and checklist

How to write a useful website specification without unnecessary bureaucracy: goals, journeys, pages, integrations, SEO, analytics, security, and testable acceptance criteria.

  • Specification
  • Website
  • Product design

What a specification is — and why 40 pages do not guarantee a result

A specification is an agreed boundary of the outcome: who the site serves, which problems it solves, what the first release contains, and how both sides will know it is accepted. Length is secondary. Ten testable requirements are more useful than forty pages of phrases such as 'modern design,' 'fast loading,' and 'easy administration.'

A good specification does not replace prototypes, design, or technical planning. It connects them: business goals become user journeys, journeys become pages and data, and then acceptance tests. A complex product's document evolves after discovery, but every change remains visible.

What the client needs to prepare

You do not need to choose a framework or design an API without internal expertise. Give the team what it cannot responsibly invent: business model, product, customer types, geography, legal constraints, current operations, available assets, and success criteria.

References are useful only with comments. Explain whether the relevant quality is structure, tone, catalog, case-study presentation, speed, or inquiry flow. A reference without reasoning turns the project into a guessing game about taste.

  • project goal and the problem that should change;
  • audience segments and priority journeys;
  • products, services, regions, languages, and legal constraints;
  • existing content, brand assets, analytics, and access;
  • internal owners of content, product, and approvals;
  • deadline with its reason and a realistic budget boundary;
  • known risks, dependencies, and unanswered questions.

A working website specification structure

Build the document from goal to validation. Every function should identify its user, action, required data, successful and failed outcomes, and acceptance method. This gives design the necessary states, engineering the boundary, and the client a visible scope.

Required specification sections
SectionDefineOutput
Context and goalsProblem, audience, metrics, constraintsShared decision frame
JourneysRole, trigger, steps, success, errorTestable user path
Structure and contentPages, blocks, asset ownersSitemap and content plan
Functions and dataFields, roles, states, rules, integrationsDevelopment boundary
Non-functional requirementsPerformance, accessibility, SEO, securityProduct quality
AnalyticsEvents, parameters, sources, reportsMeasurable outcome
Acceptance and launchEnvironments, tests, access, documentationControlled release

Write journeys, not a list of buttons

'Add an account area' does not define scope. Who signs in: a customer, employee, or partner? How is an account created? What happens after a forgotten password? Which data is visible to each role? Can a user delete the profile and export data? What happens when an external system is unavailable? These answers turn a feature label into a product journey.

Use a short pattern: 'As a [role], I want [action], so that [outcome].' Add preconditions, the main path, exceptions, and acceptance criteria. Unknown details are normal; mark them as questions and assign a decision owner.

Write testable acceptance criteria

A criterion must produce an unambiguous result. Replace 'the form is convenient' with: required fields have visible labels, errors appear next to the field, valid values remain after an error, a successful submission creates a CRM lead and analytics event, and a retry cannot create silent duplicates.

Do not describe performance as merely 'fast.' Define the measurement method and environment, priority templates, and target indicators. Google describes Core Web Vitals as real-world loading, responsiveness, and stability metrics. They belong in monitoring but are not the only definition of quality.

Include SEO, analytics, and accessibility from the beginning

SEO scope covers indexable templates, editable titles and descriptions, one descriptive H1, canonicals, language relationships, sitemap, robots directives, redirects, and preservation of valuable URLs during replacement. Content owners need to know which pages and assets are required before templates are built.

An analytics map connects a business question to an event. It goes beyond 'install a tag' and distinguishes offer views, form starts, errors, successful leads, and CRM qualification. Use WCAG 2.2 as an accessibility reference for keyboard use, focus, labels, contrast, alternatives, and understandable errors.

Describe integrations through data and responsibility

'CRM integration' hides direction, fields, states, latency, and failures. Define the system of record, outgoing and returning data, duplicate protection, failure visibility, and retry behavior. A machine-readable API description helps; OpenAPI provides a language-independent format that both people and tools can understand.

Add the test environment, limits, authentication method, key owner, and behavior during service downtime. If an external API does not exist yet, it is a separate estimation risk rather than an invisible engineering obligation.

Security and data are not post-launch additions

Define data categories, roles, retention, deletion, backups, and incident response. Secrets must not live in public code, administrative actions should not be untraceable, and personal data should not be collected 'just in case.' Requirements depend on risk and the law in the relevant jurisdiction.

OWASP ASVS supplies verifiable web-application security requirements, while NIST SSDF covers lifecycle practices. Do not paste every control mechanically. Select a justified level and document which checks belong in acceptance.

Manage change without freezing the product

A specification should not block learning. It makes change visible. For every new request, record the reason and its effect on scope, timeline, budget, and prior decisions. The client can replace a lower-value feature, move the request to a later release, or expand resources.

Keep a decision log next to the current specification. An agreement buried in chat loses context quickly. Version, date, author, and decision status reduce the risk of design, engineering, and client working from different expectations.

  • what changed and which new information appeared;
  • which journeys, data, and criteria are affected;
  • how timeline, budget, and risk change;
  • what is removed or deferred to preserve the boundary;
  • who approved the decision and when.

A complex-product example: requirements begin with roles

DWG Platform connects multiple working roles and data sets: catalog, orders, operational actions, and control. A page list could not define that product. Participants, permissions, systems of record, and end-to-end journeys had to be established before modules and interfaces.

The same principle applies to a smaller corporate site. Even an inquiry form connects a visitor, a manager, a CRM, notifications, and analytics. Naming those relationships early makes estimation more accurate and launch calmer.

Checklist before sending the specification

Ask someone who did not prepare the document to read it and explain the expected outcome. If they cannot identify the first-release boundary, decision owners, and readiness tests, suppliers will also have to guess and their estimates will not be comparable.

  • goals and metrics do not contradict one another;
  • each audience has a priority journey;
  • content has an owner and delivery date;
  • functions describe roles, data, success, and errors;
  • SEO, analytics, accessibility, and security are in scope;
  • integrations define direction, ownership, and failure behavior;
  • acceptance, launch, rights, access, and support are defined;
  • unknown questions are visible and included in discovery.
FAQ

Common questions

Who should write the specification: client or supplier?

The client supplies business context, constraints, and decision owners. The supplier turns them into journeys, technical boundaries, and criteria. For a complex site, the best specification is usually a shared discovery output.

Can a project be estimated without a finished specification?

A budget order of magnitude or a discovery stage can be estimated. A precise fixed implementation estimate without clear journeys and integrations carries significant hidden uncertainty.

Should the technology stack be prescribed?

Only when the organization has justified constraints: existing infrastructure, a support team, security rules, or compatibility needs. Otherwise describe the outcome and ask the supplier to justify the solution.

How can design be accepted if taste is subjective?

Agree the audience, brand principles, content, journeys, and annotated references before visual work. Acceptance then checks alignment with that frame, the design system, and necessary states rather than one participant's surprise reaction.

Sources
  1. OpenAPI InitiativeOpenAPI Specification
  2. W3CWeb Content Accessibility Guidelines (WCAG) 2.2
  3. OWASP FoundationApplication Security Verification Standard
  4. NISTSecure Software Development Framework (SSDF) Version 1.1
  5. Google Search CentralUnderstanding Core Web Vitals and Google search results