Website profiles · Technology insights · Alternatives

specification.website

A platform-agnostic, full specification of the technical features a good website should have. Built in the open under an MIT licence.

No paid content found
Visit website
Profile views 6 Outbound visits 1 Normal
The Website Specification Full homepage screenshot

At a glance

Category
Development
Language
English
Paid-content signal
No paid content foundObserved
Registered
2026
Hosting
CloudflareInferred
HTTPS certificate trusted
PassedObserved
Last updated

Website review

This review may include AI-generated content and is not individually verified. Domain, certificate and other facts come from the observed data on this page.

What is The Website Specification?

The Website Specification is a platform-agnostic checklist of the technical features a good website should have, published at The Website Specification. It is not a tutorial or a design guide: it is a reference of concrete, checkable items — currently 173 topics across ten categories — each tied back to an underlying standard such as WHATWG, W3C, IETF RFCs or WCAG.

Its distinctive angle is that it is written for both humans and automated agents. Each item is phrased as a yes/no check you can run against a site, and the whole spec is queryable: an open, read-only MCP server, a published Agent Skill, and per-page Markdown via /llms.txt or an Accept: text/markdown request. It is built in the open under an MIT licence, with an "Edit on GitHub" link on every page and sources credited per topic. Ten areas are covered: Foundations, SEO, Accessibility, Security, Well-Known URIs, Agent Readiness, Performance, Privacy, Resilience and Internationalisation.

Who it suits

  • Developers or technical leads auditing an existing site and wanting a defensible, standards-linked list rather than opinion.
  • Teams on any stack — WordPress, Drupal, TYPO3, Next.js, Astro, Hugo, Django or plain HTML — since the spec is deliberately implementation-neutral.
  • Anyone preparing a site to be read well by AI agents and crawlers, which is a category most checklists omit.

How to use it

  1. Run the checklist against your site (or point an agent at the MCP server to do it).
  2. Open any failing item to read what it is, why it matters and how to implement it.
  3. Fix, then re-check.

A practical starting point: pick the two or three categories where your site is weakest — Accessibility and Agent Readiness are common gaps — and work through those items before touching the rest. Treat the spec as the "what", and your framework's documentation as the "how".

How do I audit my website against the specification's checklist?

Start with the site's own three-step loop: audit → learn → improve. The specification is structured as yes/no checklist items, so an audit means working through each item for your site, opening the explanation for anything that fails, fixing it, then re-checking. It is platform-agnostic, so the same checklist applies whether you run WordPress, Astro, Django or plain HTML — you are testing the rendered result, not your stack.

The Website Specification

A practical audit route

  1. Scope it. There are 173 topics across ten categories, so auditing everything at once is unrealistic. Pick the categories that match your risk: Security (20 topics) and Accessibility (30 topics) for public-facing sites, Performance (26 topics) if Core Web Vitals are poor, Agent Readiness (22 topics) if AI crawlers matter to you.
  2. Run the checklist per page type. Audit one representative page of each template — homepage, article, product, form, error page — rather than every URL. Most failures are template-level, so fixing one instance fixes thousands.
  3. Automate what can be automated. Headers, /.well-known/ paths, robots.txt, canonicals and structured data are checkable with scripts or crawlers. Contrast, focus order and status messages need a human or assistive-technology pass.
  4. Log each item as pass, fail or not applicable. "Not applicable" is a legitimate result; a site with no user accounts does not need auth.md guidance.
  5. Fix, then re-run the same list. Re-auditing the same items is what proves the fix worked.

Letting an agent do the first pass

The spec is explicitly written for humans and agents. It publishes an open, read-only MCP server with no authentication, plus an Agent Skill, per-page Markdown via /llms.txt, and Markdown negotiation through Accept: text/markdown on any spec URL. If you use an MCP-compatible assistant, that means you can point it at the spec and ask it to check your site against individual items rather than pasting requirements by hand.

Treat agent output as a first pass, not a verdict. An agent is good at "does this header exist?" and weak at "is this error message actually helpful to a screen reader user?".

Decide what to fix first

Category Typical owner Best first step
Security Whoever controls hosting/CDN Check headers and transport in one go
Accessibility Design and front-end Manual keyboard and screen-reader pass
Performance Front-end and infra Measure Core Web Vitals on real devices
SEO Content and marketing Verify robots.txt, sitemaps, canonicals
Privacy Legal plus engineering Review consent and signals

A useful next step: open the checklist, pick the two categories with the highest cost of failure for your site, and audit a single template page against them this week. Note every failure with its URL and the item name, fix the template-level ones, then re-run the same two categories before expanding.

How can I connect an AI agent to query the specification via MCP?

The site publishes a read-only, unauthenticated MCP server, so any MCP-capable agent or client can query the specification directly over HTTP. You don't need an API key, account or local install.

Connect an MCP client

Add the server to your MCP client's configuration using the HTTP transport and the published URL:

{
  "mcpServers": {
    "specification-website": {
      "transport": "http",
      "url": "https://mcp.specification.website/mcp"
    }
  }
}

Because it is read-only and needs no auth, this is safe to add to a shared or team configuration. Restart or reload your client after saving, then confirm the connection by asking the agent to list the available spec topics — you should see the ten categories (Foundations, SEO, Accessibility, Security, Well-Known URIs, Agent Readiness, Performance, Privacy, Resilience, Internationalisation) covering the site's 173 topics.

If your client doesn't speak MCP

The same content is reachable without MCP. Fetch any spec URL with an Accept: text/markdown header to get per-page Markdown, or start from /llms.txt to discover the pages. The site also publishes an Agent Skill that tells a compatible agent when and how to use the spec — useful if you want the agent to consult it automatically rather than only on request.

A practical scenario

Suppose you maintain a marketing site and want a pre-launch check. Point your agent at the MCP server, ask it to pull the Accessibility and Security items, and have it compare those against your rendered pages. Each item is a yes/no check, so the output is a concrete fix list rather than a vague summary. Re-run after fixes to confirm.

Choosing between the options

Approach Best for Trade-off
MCP server Agents that support MCP and should query the spec on demand Requires an MCP-capable client
Agent Skill Making an agent use the spec proactively Only works with agents that support skills
/llms.txt + Markdown Scripts, simple fetches, clients without MCP You handle discovery and parsing yourself

For most people the MCP route is the shortest path: one config block, no credentials, and the agent can then answer questions like "which security headers am I missing?" against a consistent checklist rather than from memory.

If you want a broader reference point for how specs and standards are documented for both humans and machines, The Website Specification is the source here, and the underlying standards it cites are published by bodies such as W3C and WHATWG.

Is the specification platform-agnostic and does it work for frameworks like WordPress or Next.js?

Yes. The specification is explicitly platform-agnostic: its stated principle is that "the spec is the spec" whether you ship WordPress, Drupal, TYPO3, Next.js, Astro, Hugo, Django, or plain HTML. Implementation hints follow the standard rather than being tied to one stack. Topics link back to WHATWG, W3C, IETF RFCs, WCAG and MDN, so the checks apply to any platform that can emit the required markup, headers, and files.

H3 What this means in practice

  • WordPress: most items map to themes, plugins, or server configuration — document head markup, security headers, robots.txt, /.well-known/ paths, caching and image handling. You may need a plugin or host-level config for headers and well-known URIs.
  • Next.js: many items are handled in framework config or route handlers — metadata for head and SEO, headers in next.config, and route files for /.well-known/. Dynamic rendering still has to meet the same accessibility and performance checks.
  • Static generators (Hugo, Astro, Eleventy): the spec suits them well because output is plain HTML, but you must generate the well-known files and headers yourself.

H3 Where the trade-off sits

Platform-agnostic does not mean zero-effort. The spec tells you what a good site should have, not how to click through your particular CMS. Expect to translate each yes/no item into whatever mechanism your stack offers, and to re-run the checklist after changes. Some categories — Agent Readiness, Well-Known URIs, Security — tend to need server or routing access rather than editor-level changes, which matters if you only control content.

Next step: pick one category relevant to your stack, such as Foundations or Performance, and audit your site against its items before widening out. The site also publishes the spec as an MCP server and per-page Markdown for agent-assisted checking, described at The Website Specification.

What are the ten categories the specification covers, such as security and performance?

The specification organises its 173 topics into ten categories, each mapped to widely accepted standards rather than one vendor's opinion:

  • Foundations (20 topics) — HTML, head and document basics every page needs.
  • SEO (14 topics) — robots.txt, sitemaps, canonicals and structured data.
  • Accessibility (30 topics) — WCAG-aligned rules, its largest category.
  • Security (20 topics) — headers, transport and policies.
  • Well-Known URIs (13 topics) — agreed paths under /.well-known/, such as security.txt and gpc.json.
  • Agent Readiness (22 topics) — making a site legible to AI agents and crawlers.
  • Performance (26 topics) — Core Web Vitals, caching, images, fonts and network behaviour.
  • Privacy (7 topics) — consent, signals and respecting visitor choice.
  • Resilience (8 topics) — error pages, offline behaviour and redirects.
  • Internationalisation (13 topics) — language, locale and related concerns.

How to use the categories as a decision tool. If you are auditing an existing site, start where the gaps hurt most: Accessibility and Performance for user-facing problems, Security and Privacy for risk, SEO for visibility. If you are building something new, work through Foundations first, since later categories assume clean document structure. The full list lives at The Website Specification, where each item is a yes/no check you can run against your own site.

How can I contribute to or edit the specification on GitHub?

Contributions happen on GitHub, and the spec is deliberately structured so that even small edits are welcome. Every page carries an "Edit on GitHub" link, and the project states that pull requests are welcome, with sources credited on each page.

How to contribute

  • Fix or extend a topic page — open the page, follow its "Edit on GitHub" link, and submit a pull request. This is the lowest-friction route for corrections, clarifications and new implementation detail.
  • Propose a new topic or category — the spec is organised into ten categories (Foundations, SEO, Accessibility, Security, Well-Known URIs, Agent Readiness, Performance, Privacy, Resilience, Internationalisation). New items need to fit that structure and link back to a source standard.
  • Check the changelog first — the site lists recently changed and added items, so you can see whether your idea is already in progress before writing it up.

What a good pull request looks like The project's stated principle is "standards, not opinions": each topic links back to WHATWG, W3C, IETF RFCs, WCAG, MDN or another defining organisation. So a PR that says "we should require X" is weaker than one that says "X is defined in [standard], here is the requirement, here is why it matters, here is how to implement it." Keep it platform-agnostic — WordPress, Drupal, TYPO3, Next.js, Astro, Hugo, Django and plain HTML are all treated as equal implementation targets, so hints should follow the spec rather than assume a stack.

A practical first contribution Pick a page in a category you know well, audit a real site against it, and turn any gap you find into a documentation fix. For example, if you run a security review and notice the spec's guidance on /.well-known/security.txt or HTTP headers is thin on a specific edge case, that is a concrete, sourced edit rather than a stylistic opinion.

Where to go next Read the Principles page and the full topic list before opening a PR, then use the changelog to avoid duplicating work already merged. If you want to check the spec programmatically while you work, the project publishes an open, read-only MCP server and per-page Markdown via /llms.txt or an Accept: text/markdown request, which is handy for pulling the exact wording of a topic into your editor. The Website Specification

Related questions

More questions →
How can AI agents query The Website Specification?

AI agents can query The Website Specification through three separate channels: an open, read-only MCP server at https://mcp.specification.website/mcp (HTTP transport, no authentication), a published Agent Skill that teaches compatible agents when and how to use the spec, and per-page Markdown served via /llms.txt or an Accept: text/markdown request header on any spec URL. All three are documented on the site itself, so the fastest path is to pick the channel your agent already supports rather than building a custom integration.

The three access channels

Channel What it gives the agent Auth Best for
MCP server Structured query access to the whole spec None (read-only) Agents with MCP client support
Agent Skill Instructions on when and how to use the spec None Agents that load skills
/llms.txt + Accept: text/markdown Per-page Markdown None Simple HTTP fetches, RAG pipelines

The MCP server is described as "open" and "read-only, no auth" — the site does not state rate limits, quotas, or uptime guarantees, so treat those as unknown rather than assuming they are unlimited.

Connecting an agent over MCP

The site publishes the exact client configuration, so no discovery step is needed:

{
  "mcpServers": {
    "specification-website": {
      "transport": "http",
      "url": "https://mcp.specification.website/mcp"
    }
  }
}

Input: the JSON block above, placed in your MCP client's server configuration. Action: the client opens an HTTP transport connection to that URL. Expected result: the agent can query the spec's topics through MCP tools without supplying credentials.

If your client expects a different config key or a command-based transport, the site's "Connect MCP" link is the authoritative source — the snippet above is the only form given in the page evidence.

Using the Agent Skill

The site also publishes an Agent Skill, described as teaching "any compatible agent when and how to use it." This matters because an MCP connection alone tells the agent how to fetch spec content but not when it is relevant. The skill supplies that judgement layer.

Practical implication: if your agent framework supports skills, load the Agent Skill alongside the MCP connection rather than relying on the MCP server alone. If your framework has no skill mechanism, the MCP server and the Markdown endpoints still work — you just lose the routing guidance.

Fetching spec pages as Markdown

For agents that do not speak MCP, every spec URL can return Markdown instead of HTML:

  • /llms.txt — a published index of the spec in the llms.txt convention.
  • Accept: text/markdown — send this header on any spec URL to get that page as Markdown.

Input: an HTTP GET to a spec URL, with Accept: text/markdown set. Action: the server negotiates content type and returns Markdown. Expected result: clean Markdown for that single topic, suitable for chunking into a retrieval index or feeding directly into a context window.

This is the lowest-friction option: no client library, no protocol handshake, just an HTTP request with a header.

What the agent can actually retrieve

The spec covers 173 topics across ten categories, all mapped to external standards (WHATWG, W3C, IETF RFCs, WCAG, MDN). The categories are:

  • Foundations — 20 topics (HTML, head, document basics)
  • SEO — 14 topics (robots.txt, sitemaps, canonicals, structured data)
  • Accessibility — 30 topics (WCAG-aligned rules)
  • Security — 20 topics (headers, transport, policies)
  • Well-Known URIs — 13 topics (standard paths under /.well-known/)
  • Agent Readiness — 22 topics (legibility to AI agents and crawlers)
  • Performance — 26 topics (Core Web Vitals, caching, images, fonts, network)
  • Privacy — 7 topics (consent, signals, visitor choice)
  • Resilience — 8 topics (error pages, offline, redirects)
  • Internationalisation — 13 topics (language, localisation)

Each topic is structured as a yes/no checklist item, which makes the output easy for an agent to act on: the agent can retrieve a topic, evaluate the target site against it, and report a pass/fail plus the linked standard.

Choosing between the channels

  • Agent already supports MCP → connect the MCP server; add the Agent Skill if your framework loads skills.
  • Agent is a plain HTTP client or a RAG pipeline → use /llms.txt to enumerate pages, then Accept: text/markdown per page.
  • You want the agent to audit a site → the spec's own "How to use this site" flow is audit → learn → improve, with each item as a yes/no check. Point the agent at the relevant category rather than the whole 173-topic set to keep context manageable.

Common sticking points

  • Assuming the MCP server is the only route. It is not — the Markdown endpoints exist precisely so agents without MCP support can still read the spec.
  • Skipping the Agent Skill. Without it, a compatible agent may have access to the spec but no trigger telling it to consult the spec during a task.
  • Treating the spec as opinion. Every topic links back to a source standard, so when an agent reports a failure, the citation is the thing to check — not the spec page alone.
  • Expecting pricing or account details. The page evidence shows no pricing signals and no payment platforms; the MCP server is stated as no-auth, but nothing on the page addresses commercial terms or limits.
How to Use Ahrefs for Your First SEO Audit: A Step-by-Step Tutorial

If you're new to Ahrefs and want to run your first SEO audit, the fastest path is: open Site Explorer, enter your target URL, review the Overview for a health snapshot, then dig into Organic Keywords, Top Pages, and Site Audit to find specific problems. From there, build a short prioritized to-do list instead of trying to fix everything at once.

This tutorial walks through that workflow using a realistic starting scenario, explains what the numbers mean, and shows how to turn findings into actions.

Before You Start: Pick a Narrow Scope

A common beginner mistake is auditing an entire large website on day one. The reports become overwhelming, and you can't tell which issues matter.

Instead, choose one of these starting points:

  • A single important page (your homepage or a key product/service page)
  • A small site (under ~50 pages, e.g., a personal blog or small business site)
  • One section of a bigger site (e.g., /blog/)

For this tutorial, assume you're auditing a small business site with about 30 pages. The same steps scale up later.

You'll need an Ahrefs account to follow along. Ahrefs offers paid plans, and pricing and feature limits change over time, so check the current Pricing page for what's included in each tier before committing.

Step 1: Enter Your Target in Site Explorer

Site Explorer is Ahrefs' core tool for analyzing any website or URL.

  1. Open Site Explorer from the top navigation.
  2. In the search box, paste your domain (e.g., example.com).
  3. Choose the Exact URL or Domain mode depending on scope. For a full-site view, use Domain or Prefix; for a single page, use Exact URL.
  4. Press Enter.

You'll land on the Overview report. Don't try to absorb everything — focus on four numbers first.

Reading the Overview Snapshot

Metric What it tells you How to use it
Ahrefs Rank (AR) Relative strength of the site's backlink profile vs. others in the database Useful for comparing against competitors, not as a standalone goal
Organic traffic Estimated monthly visits from search A rough trend indicator, not exact analytics
Organic keywords Estimated number of keywords the site ranks for Shows breadth of visibility
Backlinks / Referring domains Total links and unique sites linking to you Referring domains matter more than raw backlink count

Important caveat: Ahrefs' traffic and keyword numbers are estimates based on its own data. They won't match Google Search Console or your analytics exactly. Treat them as directional, not absolute.

Step 2: See What You Already Rank For

Go to Organic Keywords in the left sidebar. This shows queries where your site appears in search results.

Sort by Traffic (descending) to see which pages bring the most estimated visitors. Then look for:

  • Keywords ranking in positions 4–15 — these are often the easiest wins. A small content or on-page improvement can push them onto page one.
  • Keywords with high volume but low position — potential opportunities if the topic is relevant.
  • Irrelevant keywords — if you rank for something off-topic, it may signal thin or mismatched content.

Write down 5–10 of the position 4–15 keywords. These become your first optimization targets.

Step 3: Find Your Best and Weakest Pages

Open Top Pages. This ranks your URLs by estimated organic traffic.

Look for two things:

  1. Your top performers — understand what topics and formats work. Can you create more content like this?
  2. Pages with traffic but poor rankings — these may need on-page fixes (title, headings, internal links).

If a page gets zero traffic and targets a topic you care about, it's a candidate for a rewrite or consolidation.

Step 4: Run a Technical Site Audit

Now move to Site Audit. This crawls your site and flags technical and on-page issues.

  1. Click Site Audit → New project.
  2. Enter your domain and set crawl settings (default is usually fine for a small site).
  3. Start the crawl and wait for it to finish.

Once complete, you'll see a Health Score and a list of issues grouped by category.

Which Issues to Fix First

Not all issues are equal. Prioritize in this order:

Priority Issue type Why it matters
1 Broken links (404s) Bad for users and crawl efficiency
2 Pages blocked from indexing They can't rank at all
3 Missing or duplicate title tags Directly affects click-through and relevance
4 Slow-loading pages Affects experience and rankings
5 Thin content Low value to users and search engines

Ignore low-impact warnings (like minor meta description length) until the big items are handled.

Step 5: Turn Findings Into a To-Do List

You now have raw data. Convert it into a short, actionable list. Example:

  1. Fix 3 broken links found in Site Audit.
  2. Rewrite title tags on 5 pages with duplicate titles.
  3. Improve 4 pages ranking in positions 6–12 by adding missing subtopics and internal links.
  4. Remove or update 2 thin pages with no traffic.

Keep the list to 5–10 items max for your first audit. Finishing a short list beats starting a long one.

Common Beginner Mistakes

  • Chasing every red flag. Site Audit flags many minor issues. Fix what affects rankings and users first.
  • Trusting estimates as exact numbers. Ahrefs data is modeled, not measured from your analytics.
  • Auditing a huge site too early. Start small to learn the interface.
  • Ignoring search intent. A page can be technically perfect but still fail if it doesn't match what searchers want.
  • Forgetting to re-crawl. After fixes, run Site Audit again to confirm improvements.

Where to Go Next

Once your first audit is done:

  • Compare with competitors using Site Explorer's Competing Domains and Content Gap reports.
  • Track keyword rankings over time with Rank Tracker.
  • Explore backlink opportunities in the Backlinks and Link Intersect reports.
  • Set up recurring Site Audit crawls so new issues surface automatically.

Your first audit isn't about perfection — it's about building a repeatable habit: enter a target, read the key reports, pick the highest-impact fixes, and act. Do that once a month and your site's health compounds.

What is The Website Specification (specification.website)?

The Website Specification is a platform-agnostic, open specification of the technical features a good website should have. It is written for both humans and AI agents, published under the MIT licence, and organised as a checklist of 173 topics across ten categories — from /.well-known/security.txt to WCAG contrast. It is useful if you want a standards-based reference for auditing, learning, or improving a site regardless of what it is built with.

What it actually contains

The spec is a catalogue of technical requirements, not a tutorial series or a product. Each topic is a yes/no checklist item, and each item links back to its source standard — WHATWG, W3C, IETF RFCs, WCAG, MDN, and other bodies defining the modern web. The site states three principles it is built on:

  • Standards, not opinions — every topic traces to a source standard.
  • Platform agnostic — the spec applies whether you ship WordPress, Drupal, TYPO3, Next.js, Astro, Hugo, a Django app, or plain HTML. Implementation hints follow the spec, not the other way round.
  • Built in the open — every page has an "Edit on GitHub" link, PRs are welcome, and sources are credited on every page.

The site reports 869 stars on GitHub and notes a full changelog, with recent additions including auth.md agent registration guidance, a page on status messages, and a page on /.well-known/gpc.json.

The ten categories

Category Topics What it covers
Foundations 20 HTML, head, and document basics every page needs
SEO 14 Search visibility — robots.txt, sitemaps, canonicals, structured data
Accessibility 30 WCAG-aligned rules so people of all abilities can use the site
Security 20 Headers, transport, and policies that keep visitors safe
Well-Known URIs 13 Standard agreed-upon paths under /.well-known/
Agent Readiness 22 Making a site legible to AI agents and crawlers
Performance 26 Core Web Vitals, caching, images, fonts, network behaviour
Privacy 7 Consent, signals, and respecting visitor choice
Resilience 8 Graceful failure — error pages, offline, redirects
Internationalisation 13 Language and locale handling

How to use it

The site describes a three-step loop:

  1. Audit — run the checklist against your site, or let your agent do it. Each item is a yes/no.
  2. Learn — open any item for what it is, why it matters, and how to implement it.
  3. Improve — fix what is missing, then re-check.

There is also a "Get the checklist" entry point alongside the full topic browser.

Agent access

The whole spec is exposed for machine consumption:

  • An open MCP server (read-only, no auth) at https://mcp.specification.website/mcp, configured over HTTP transport.
  • A published Agent Skill that teaches a compatible agent when and how to use the spec.
  • Per-page Markdown via /llms.txt and Accept: text/markdown on any spec URL.

Example MCP configuration as given on the site:

{
  "mcpServers": {
    "specification-website": {
      "transport": "http",
      "url": "https://mcp.specification.website/mcp"
    }
  }
}

When it fits your needs

Use it if you want a vendor-neutral, standards-linked checklist to audit a site or to brief an agent on web requirements. It suits teams working across multiple stacks, since the same spec applies to all of them. It is less suited to someone looking for framework-specific how-to guides or opinionated design advice — the site explicitly positions implementation hints as following the spec rather than leading it.

What principles is The Website Specification built on?

The Website Specification (specification.website) is built on three stated principles: it follows standards rather than opinions, it is platform-agnostic, and it is built in the open. Together these principles explain why the spec is structured as a set of yes/no checklist items that link back to authoritative sources, and why it applies the same way whether you ship WordPress, Drupal, TYPO3, Next.js, Astro, Hugo, a Django app, or plain HTML.

Principle 1: Standards, not opinions

Every topic in the spec links back to the source standard that defines it. The site names WHATWG, W3C, IETF RFCs, WCAG, MDN, and "the organisations defining the modern web" as the references behind its pages.

What this means in practice:

  • Each item is framed as a yes/no check, so you can audit against it rather than debate it.
  • The justification for an item comes from an external standard, not from the site's own preference.
  • Sources are credited on every page.

For example, an accessibility item about contrast traces back to WCAG rather than to a design opinion, and a security header item traces back to the relevant IETF RFC or W3C document.

Principle 2: Platform agnostic

The spec describes technical features a website should have, independent of the tool used to build it. The site explicitly lists WordPress, Drupal, TYPO3, Next.js, Astro, Hugo, a Django app, and plain HTML as equally valid implementations.

The stated relationship between spec and implementation is one-directional: "Implementation hints follow it, not the other way round." In other words, the spec is not derived from what any particular CMS or framework happens to do by default — implementation guidance is written to serve the spec, not to describe one platform's behaviour.

This is what makes the checklist reusable across a portfolio of sites built on different stacks: the same yes/no items apply, and only the "how to implement" step changes.

Principle 3: Built in the open

The spec is published under an MIT licence and developed publicly. Two concrete signals support this:

  • Every page has an "Edit on GitHub" link, and pull requests are welcome.
  • Sources are credited on every page.

The site also reports a public change history, with a full changelog and dated additions — for example, additions on 30 September 2026 (auth.md agent registration guidance), 25 September 2026 (a page on status messages), and 24 September 2026 (a page on /.well-known/gpc.json). A visible changelog is consistent with the open-development principle: you can see what changed and when.

How the principles shape the spec's scope

The spec organises its 173 topics into ten categories, described as "mapped to widely-accepted standards":

Category Topics
Foundations 20
SEO 14
Accessibility 30
Security 20
Well-Known URIs 13
Agent Readiness 22
Performance 26
Privacy 7
Resilience 8
Internationalisation 13

The range — from /.well-known/security.txt to WCAG contrast — illustrates the standards-first approach: each category maps onto an existing body of standards (WHATWG/W3C for foundations, WCAG for accessibility, IETF RFCs for well-known URIs and security, Core Web Vitals for performance) rather than onto a vendor's feature set.

What the principles imply for you

  • If you want a checklist you can defend to a client or reviewer, the standards-first principle means each item has an external citation you can follow.
  • If you run multiple sites on different platforms, the platform-agnostic principle means one checklist covers all of them; only the fix differs.
  • If you need to verify or challenge an item, the open-build principle gives you the page's edit link and credited sources.

The spec is also designed to be consumed by agents, not only humans: the whole spec is available as an open, read-only MCP server with no authentication, plus a published Agent Skill, per-page Markdown via /llms.txt, and Accept: text/markdown on any spec URL. That agent-readiness is itself an application of the same principles — a standard interface, no platform lock-in, and openly documented access.

What categories and topics does The Website Specification cover?

The Website Specification (specification.website) organises its content into ten categories covering 173 topics in total. Each category maps to widely-accepted standards, and every topic links back to its source standard — WHATWG, W3C, IETF RFCs, WCAG, or MDN. The categories are: Foundations, SEO, Accessibility, Security, Well-Known URIs, Agent Readiness, Performance, Privacy, Resilience, and Internationalisation.

The ten categories at a glance

Category Topics What it covers
Foundations 20 The HTML, head, and document basics every page needs
SEO 14 Search visibility — robots.txt, sitemaps, canonicals, structured data
Accessibility 30 WCAG-aligned rules so people of all abilities can use the site
Security 20 Headers, transport, and policies that keep visitors safe
Well-Known URIs 13 Standard, agreed-upon paths under /.well-known/
Agent Readiness 22 Things that make a site legible to AI agents and crawlers
Performance 26 Core Web Vitals, caching, images, fonts, network behaviour
Privacy 7 Consent, signals, and respecting visitor choice
Resilience 8 Graceful failure — error pages, offline, redirects
Internationalisation 13 Language, localisation, and related concerns

Accessibility (30) and Performance (26) are the largest categories; Privacy (7) and Resilience (8) are the smallest.

What each category actually contains

Foundations (20 topics)

The HTML, head, and document basics every page needs. This is the layer that everything else builds on — document structure, metadata, and the core markup decisions that apply regardless of platform.

SEO (14 topics)

Search visibility concerns: robots.txt, sitemaps, canonical URLs, and structured data. These are the signals that determine how search engines discover, index, and present your pages.

Accessibility (30 topics)

WCAG-aligned rules so people of all abilities can use the site. The excerpt specifically cites WCAG contrast as an example of the kind of detail covered here.

Security (20 topics)

Headers, transport, and policies that keep visitors safe. The excerpt names /.well-known/security.txt as one example topic in this area.

Well-Known URIs (13 topics)

Standard, agreed-upon paths under /.well-known/. These are the conventional locations that other systems and tools expect to find — for example /.well-known/security.txt and /.well-known/gpc.json (the latter added 24 September 2026).

Agent Readiness (22 topics)

Things that make a site legible to AI agents and crawlers. The spec itself practises what it preaches here: it publishes an open MCP server (read-only, no auth), an Agent Skill, per-page Markdown via /llms.txt, and supports Accept: text/markdown on any spec URL. Recent additions include auth.md agent registration guidance (30 September 2026).

Performance (26 topics)

Core Web Vitals, caching, images, fonts, and network behaviour. This is the second-largest category and covers the technical delivery side of a site.

Privacy (7 topics)

Consent, signals, and respecting visitor choice. The smallest category alongside Resilience.

Resilience (8 topics)

Graceful failure — error pages, offline behaviour, and redirects. What happens when things go wrong.

Internationalisation (13 topics)

Language, localisation, and related concerns for sites serving multiple languages or regions.

How the topics are structured

Each topic is a yes/no checklist item. For every item you get three things:

  1. What it is — the feature or requirement in plain terms.
  2. Why it matters — the rationale, linked to the source standard.
  3. How to implement it — implementation hints that follow the spec rather than any particular platform.

The spec is explicitly platform-agnostic: whether you ship WordPress, Drupal, TYPO3, Next.js, Astro, Hugo, a Django app, or plain HTML, the spec stays the same and implementation hints follow it, not the other way round.

Where to start

If you want to work through the categories systematically, the spec's own three-step flow is:

  1. Audit — run the checklist against your site, or let your agent do it. Each item is a yes/no.
  2. Learn — open any item for what it is, why it matters, and how to implement it.
  3. Improve — fix what's missing, then re-check.

The full topic list is browsable at specification.website, and the project is built in the open under an MIT licence with every page carrying an "Edit on GitHub" link.

Website Overview

Identifiable technologies and additional version or configuration signals make the service easier to fingerprint, which may help targeted scanners narrow their checks. Page metadata, canonical configuration and social previews work together to provide more consistent search and sharing presentation.

Domain and Registration

The domain was registered less than a year ago and has limited historical evidence to assess. Transfer-protection status is present, helping reduce the risk of unauthorized domain transfers. The registrar is Cloudflare, Inc., a widely used domain service provider. The domain uses the common .website extension, which is not an independent safety signal.

DNS and Email

Nameservers are provided by Cloudflare, indicating managed DNS hosting. MX records point to the Cloudflare Email Routing email service. DNSSEC is enabled, allowing validating resolvers to authenticate signed DNS data. No CNAME was found; the observed records resolve directly to addresses. SPF and DMARC are configured. DKIM status is unknown.

TLS and Certificates

The public key uses EC with 256 bits. The server supplied a complete certificate chain. No organization name is present in the certificate; the available fields are consistent with domain validation. The certificate was issued within the Google Trust Services cloud or CDN ecosystem. The certificate's total validity is about 90 days, consistent with a short renewal cycle.

HTTP and Browser Security

CORS permits any origin to read this response. This is common for public resources; sensitive responses need narrower handling. No X-Powered-By header was found, reducing one common source of backend fingerprinting information. All six checked browser-security headers are present. Their effectiveness still depends on the policy values and application behavior. The cf-ray response header indicates a CDN or caching proxy in the delivery path. No obvious internal addresses or debug information were found in the headers.

Technology Stack Analysis

The public page identifies Astro 7.3.5, Cloudflare, with exact versions exposed for 1 technologies. These details can narrow vulnerability checks, although exposure alone is not a vulnerability.

Search and Social Sharing

The Generator tag identifies Astro v7.3.5, making the publishing system easier to fingerprint. Twitter Card metadata is configured. The title has 25 characters, within a common display range. A meta description is present, with 133 characters. The observed directives allow indexing and link following.

Hosting and Email

DNSCloudflare
HostingCloudflare
EmailCloudflare Email Routing
Approximate IP geolocation (inferred; a CDN or proxy may differ from the origin server) Location unknown Inferred 104.21.16.247

Registration details

RDAP / WHOIS

RegistrarCloudflare, Inc.
Registered2026-05-29
Expires2027-05-29
Domain statusclient transfer prohibited
Nameserversbrett.ns.cloudflare.com、rachel.ns.cloudflare.com
DNSSECsigned

DNS records

DNS

TypeNameValueTTLPriority
Aspecification.website104.21.16.247300—
Aspecification.website172.67.217.84300—
AAAAspecification.website2606:4700:3033::6815:10f7300—
AAAAspecification.website2606:4700:3035::ac43:d954300—
MXspecification.websiteroute1.mx.cloudflare.net30032
MXspecification.websiteroute3.mx.cloudflare.net30036
MXspecification.websiteroute2.mx.cloudflare.net30058
NSspecification.websitebrett.ns.cloudflare.com86400—
NSspecification.websiterachel.ns.cloudflare.com86400—
TXTspecification.websitegoogle-site-verification=gPWFda7zM_pRq6o5p8SI_yI6lFRfYPXpcdnAi5fo7oQ300—
TXTspecification.websitev=spf1 include:_spf.mx.cloudflare.net ~all300—
DSspecification.website2371 13 2 735988034797f6a3a1293d7c639cfdc55ed5069922cd327a559ebc635f9ae0e3900—
DMARC_dmarc.specification.websitev=DMARC1; p=none; rua=mailto:[email protected]300—

TLS and certificates

TLS / SSL

AssessmentNormal configuration
Supported protocolsTLSv1.2、TLSv1.3
Negotiated protocolTLSv1.3
Certificate subjectspecification.website
IssuerGoogle Trust Services
Valid until2026-12-23T16:13 · Remaining when checked: 78 days
Verification detailsCertificate trust: Passed · Hostname match: Passed

HTTP response headers

HTTP

HeaderValue
content-typetext/html; charset=utf-8
cache-controlpublic, max-age=0, must-revalidate
servercloudflare
strict-transport-securitymax-age=63072000; includeSubDomains
content-security-policydefault-src 'self'; script-src 'self' 'wasm-unsafe-eval' 'inline-speculation-rules' 'sha256-N74AzU+1FxvXAWIxrP2zNCBUxV949ZHOXXqjTvbusx0=' 'sha256-UU9xsfeOKmx3D7Lk33alkWn1rIjk46pD684u4pupy4o=' 'sha256-8wqCJSSabgg10EbyE8Gnnwc8zsNpWH4v1wi4+NcyfRI=' 'sha256-w+JnOoPFbfcInFfLFplGUGoseLraWShHCR6WR4sYBGI='; worker-src 'self' blob:; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self' data:; connect-src 'self' https://plausible.io; frame-ancestors 'none'; base-uri 'self'; form-action 'self'; object-src 'none'; report-to csp-endpoint; upgrade-insecure-requests
x-frame-optionsDENY
x-content-type-optionsnosniff
referrer-policystrict-origin-when-cross-origin
permissions-policyaccelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=(), interest-cohort=()
access-control-allow-origin*

Identified technologies

Astro 7.3.5Cloudflare

Pages, Search and Sharing

Meta descriptionA platform-agnostic, full specification of the technical features a good website should have. Built in the open under an MIT licence.
Canonical URLhttps://specification.website/
LanguageEnglish (default)
Twitter Cardsummary_large_image
All bots 1 allowed · 0 disallowed
  • Allow/
gptbot 1 allowed · 0 disallowed
  • Allow/
claudebot 1 allowed · 0 disallowed
  • Allow/
claude-web 1 allowed · 0 disallowed
  • Allow/
anthropic-ai 1 allowed · 0 disallowed
  • Allow/
perplexitybot 1 allowed · 0 disallowed
  • Allow/
google-extended 1 allowed · 0 disallowed
  • Allow/
applebot-extended 1 allowed · 0 disallowed
  • Allow/
ccbot 1 allowed · 0 disallowed
  • Allow/

User reviews (0)

  • No reviews yet.