{"id":9003241321087637,"date":"2026-04-15T18:22:11","date_gmt":"2026-04-15T17:22:11","guid":{"rendered":"https:\/\/circulardesign.io\/?p=9003241321087637"},"modified":"2026-04-15T18:22:30","modified_gmt":"2026-04-15T17:22:30","slug":"website-launch-plan-guide","status":"publish","type":"post","link":"https:\/\/circulardesign.io\/de\/website-launch-plan-guide\/","title":{"rendered":"Website Launch Plan: The Complete 2026 Guide for Nonprofits"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"en-GB\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\n<title>Website Launch Plan: The Complete 2026 Guide for Nonprofits<\/title>\n<meta name=\"description\" content=\"A 6-phase website launch plan built for nonprofits with a free interactive checklist, budget guide, and real go live strategy.\">\n<meta name=\"keywords\" content=\"website launch plan, new website launch strategy, launching a new website, website launch checklist, how to launch a new website, pre-launch website checklist, website launch strategy\">\n<link rel=\"canonical\" href=\"https:\/\/circulardesign.io\/website-launch-plan-guide\/\">\n\n<meta property=\"og:title\" content=\"The Complete Website Launch Guide: Plan, Execute &#038; Optimise\">\n<meta property=\"og:description\" content=\"A 6-phase website launch strategy with a free interactive checklist \u2014 built specifically for nonprofits and purpose-driven organisations.\">\n<meta property=\"og:url\" content=\"https:\/\/circulardesign.io\/website-launch-plan-guide\/\">\n<meta property=\"og:type\" content=\"article\">\n<meta property=\"og:image\" content=\"https:\/\/circulardesign.io\/wp-content\/uploads\/website-launch-plan-guide.jpg\">\n<meta property=\"article:published_time\" content=\"2026-04-11\">\n<meta property=\"article:author\" content=\"Jacob Warn\">\n\n<meta name=\"twitter:card\" content=\"summary_large_image\">\n<meta name=\"twitter:title\" content=\"The Complete Website Launch Guide: Plan, Execute &#038; Optimise\">\n<meta name=\"twitter:description\" content=\"6 phases, a free checklist, and real-world tips for launching a website that works from day one.\">\n\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"Article\",\n  \"headline\": \"Your Comprehensive Guide to a Successful New Website Launch Strategy\",\n  \"description\": \"A 6-phase framework for planning, executing, and optimising a new website launch \u2014 with a free interactive checklist built for nonprofits.\",\n  \"author\": {\n    \"@type\": \"Person\",\n    \"name\": \"Jacob Warn\",\n    \"url\": \"https:\/\/www.linkedin.com\/in\/jacobwarn\/\",\n    \"jobTitle\": \"Co-Director, Circular Design\"\n  },\n  \"publisher\": {\n    \"@type\": \"Organization\",\n    \"name\": \"Circular Design\",\n    \"url\": \"https:\/\/circulardesign.io\",\n    \"logo\": {\n      \"@type\": \"ImageObject\",\n      \"url\": \"https:\/\/circulardesign.io\/wp-content\/uploads\/circular-design-logo.png\"\n    }\n  },\n  \"datePublished\": \"2026-04-11\",\n  \"dateModified\": \"2026-04-11\",\n  \"mainEntityOfPage\": {\n    \"@type\": \"WebPage\",\n    \"@id\": \"https:\/\/circulardesign.io\/website-launch-plan-guide\/\"\n  },\n  \"image\": \"https:\/\/circulardesign.io\/wp-content\/uploads\/website-launch-plan-guide.jpg\",\n  \"keywords\": [\"website launch plan\", \"new website launch strategy\", \"website launch checklist\", \"how to launch a new website\", \"pre-launch website checklist\", \"nonprofit web design\"]\n}\n<\/script>\n\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"HowTo\",\n  \"name\": \"How to Launch a New Website: A 6-Phase Strategy\",\n  \"description\": \"Step-by-step guide to planning, building, and launching a successful website for nonprofits and purpose-driven organisations.\",\n  \"totalTime\": \"P60D\",\n  \"step\": [\n    {\n      \"@type\": \"HowToStep\",\n      \"name\": \"Phase 1: Pre-Launch Planning & Strategy\",\n      \"text\": \"Define your goals and KPIs, research your audience, analyse competitors, and plan your content strategy and hosting before a single page is built.\"\n    },\n    {\n      \"@type\": \"HowToStep\",\n      \"name\": \"Phase 2: Technical Readiness & SEO Setup\",\n      \"text\": \"Configure your domain, hosting, and SSL certificate. Set up Google Analytics 4, Search Console, your sitemap, robots.txt, and schema markup.\"\n    },\n    {\n      \"@type\": \"HowToStep\",\n      \"name\": \"Phase 3: Content & Quality Assurance\",\n      \"text\": \"Final content review, image optimisation, mobile testing, cross-browser compatibility, accessibility checks (WCAG 2.2), and broken link audits.\"\n    },\n    {\n      \"@type\": \"HowToStep\",\n      \"name\": \"Phase 4: Pre-Launch Marketing\",\n      \"text\": \"Build pre-launch buzz through email campaigns, social media teasers, and targeted outreach before the doors open.\"\n    },\n    {\n      \"@type\": \"HowToStep\",\n      \"name\": \"Phase 5: Launch Day Execution\",\n      \"text\": \"Follow your go-live checklist, monitor in real time for traffic and errors, and coordinate your announcements across channels.\"\n    },\n    {\n      \"@type\": \"HowToStep\",\n      \"name\": \"Phase 6: Post-Launch Optimisation\",\n      \"text\": \"Analyse performance in GA4, gather user feedback, run A\/B tests, and implement ongoing SEO and content updates.\"\n    }\n  ]\n}\n<\/script>\n\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [\n    {\n      \"@type\": \"Question\",\n      \"name\": \"How long does it take to plan and launch a new website?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"For most small-to-medium nonprofits and organisations, a well-planned website launch takes between 8 and 16 weeks from initial scoping to go-live. Rushing this timeline is one of the most common causes of post-launch problems \u2014 the planning phase alone should take at least two weeks.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"What should be on a pre-launch website checklist?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Your pre-launch checklist should cover: green hosting setup, SSL certificate, Google Analytics 4 and Search Console configuration, sitemap submission, robots.txt, schema markup, image optimisation, mobile responsiveness, cross-browser testing, accessibility (WCAG 2.2), form testing, 301 redirects (if migrating), and a Core Web Vitals audit.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"What is the most important phase of a website launch?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Pre-launch planning is the single most important phase. Research shows that fixing problems during the planning stage costs up to 60 times less than addressing them after launch. Defining your goals, audience, and content strategy before you build prevents costly rework later.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"How do I launch a website without losing my SEO rankings?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"If you're migrating an existing site, set up 301 redirects from every old URL to the corresponding new URL before launch. Export your current page data from Google Search Console, crawl the new site with Screaming Frog to verify redirects, and resubmit your sitemap immediately after go-live.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"What is AEO and why does it matter for a website launch in 2026?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Answer Engine Optimisation (AEO) means structuring your content so that AI tools like Google AI Overviews, ChatGPT, and Perplexity can accurately find, understand, and cite it. For a website launch in 2026, this means using clear headings, FAQ schema, structured data, and writing in a direct, question-answering style from the first paragraph.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Do nonprofits need a website launch strategy?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Absolutely \u2014 arguably more than commercial organisations. Donors, volunteers, and funders make judgements based on your website within seconds. A structured website launch plan ensures your site represents your mission accurately, loads fast, passes accessibility standards, and reaches the right people from day one.\"\n      }\n    }\n  ]\n}\n<\/script>\n\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Plus+Jakarta+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400;1,600&#038;display=swap\" rel=\"stylesheet\">\n\n<style>\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   CIRCULAR DESIGN \u2014 LIGHT THEME 2026\n   Same brand palette, bright surfaces,\n   teal\/purple accents on white + mint\n   \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n:root {\n  --teal:          #13E5B3;\n  --teal-mid:      #0ED0A7;\n  --teal-dark:     #0CA686;\n  --teal-xlight:   #E0FFF7;\n  --teal-pale:     #EAFFF9;\n  --purple:        #623FD1;\n  --purple-2:      #6448D8;\n  --purple-pale:   #EAE9FF;\n  --purple-light:  #F2F0FF;\n  --navy:          #15153F;\n  --navy-mid:      #1A1A47;\n  --page-bg:       #F4F7FF;\n  --surface:       #FFFFFF;\n  --white:         #FFFFFF;\n  --dark:          #0A051C;\n  --grey:          #9896B8;\n  --grey-light:    #E8E7F4;\n  --font:          \"Plus Jakarta Sans\", sans-serif;\n  --r-sm: 8px; --r-md: 14px; --r-lg: 24px; --r-xl: 32px; --r-pill: 100px;\n  --shadow-sm:  0 2px 12px rgba(98,63,209,0.08);\n  --shadow-md:  0 6px 28px rgba(98,63,209,0.13);\n  --shadow-lg:  0 14px 48px rgba(98,63,209,0.18);\n  --ease-out:   cubic-bezier(0.22,1,0.36,1);\n}\n\n\/* \u2500\u2500 RESET \u2500\u2500 *\/\n*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\nbody {\n  font-family: var(--font);\n  background: var(--page-bg);\n  color: var(--navy);\n  line-height: 1.72;\n  font-size: 17px;\n}\nimg { max-width: 100%; height: auto; display: block; border-radius: var(--r-md); }\na { color: var(--purple); text-decoration: underline; text-underline-offset: 3px; transition: color .2s; }\na:hover { color: var(--teal-dark); }\n\n\/* \u2500\u2500 ARTICLE WRAPPER \u2500\u2500 *\/\n.cd-article {\n  max-width: 760px;\n  margin: 0 auto;\n  padding: 0 20px 80px;\n}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   HERO \u2014 Light with geometric blobs\n   \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.cd-hero {\n  background: var(--white);\n  padding: 80px 24px 96px;\n  text-align: center;\n  position: relative;\n  overflow: hidden;\n  border-bottom: 1px solid var(--grey-light);\n}\n\/* Teal blob top-left *\/\n.cd-hero::before {\n  content: '';\n  position: absolute;\n  top: -160px; left: -120px;\n  width: 520px; height: 520px;\n  background: radial-gradient(circle, rgba(19,229,179,0.22) 0%, transparent 65%);\n  pointer-events: none;\n}\n\/* Purple blob bottom-right *\/\n.cd-hero::after {\n  content: '';\n  position: absolute;\n  bottom: -120px; right: -100px;\n  width: 480px; height: 480px;\n  background: radial-gradient(circle, rgba(98,63,209,0.14) 0%, transparent 65%);\n  pointer-events: none;\n}\n\/* Decorative grid dots *\/\n.cd-hero__dots {\n  position: absolute;\n  inset: 0;\n  background-image: radial-gradient(circle, rgba(98,63,209,0.10) 1.5px, transparent 1.5px);\n  background-size: 28px 28px;\n  pointer-events: none;\n  mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, black 0%, transparent 100%);\n}\n.cd-hero__eyebrow {\n  display: inline-flex;\n  align-items: center;\n  gap: 8px;\n  background: var(--teal-pale);\n  color: var(--teal-dark);\n  border: 1.5px solid rgba(19,229,179,0.35);\n  padding: 7px 18px;\n  border-radius: var(--r-pill);\n  font-size: 12px;\n  font-weight: 700;\n  letter-spacing: 0.09em;\n  text-transform: uppercase;\n  margin-bottom: 28px;\n  position: relative;\n  z-index: 2;\n}\n.cd-hero__eyebrow::before {\n  content: '';\n  width: 7px; height: 7px;\n  border-radius: 50%;\n  background: var(--teal);\n  display: inline-block;\n}\n.cd-hero__h1 {\n  font-size: clamp(28px, 5vw, 50px);\n  font-weight: 800;\n  line-height: 1.12;\n  letter-spacing: -0.025em;\n  color: var(--navy);\n  max-width: 700px;\n  margin: 0 auto 20px;\n  position: relative;\n  z-index: 2;\n}\n.cd-hero__h1 em {\n  font-style: italic;\n  background: linear-gradient(135deg, var(--teal-dark) 0%, var(--purple) 100%);\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  background-clip: text;\n}\n.cd-hero__intro {\n  font-size: 18px;\n  color: rgba(21,21,63,0.65);\n  max-width: 600px;\n  margin: 0 auto 32px;\n  line-height: 1.65;\n  font-weight: 450;\n  position: relative;\n  z-index: 2;\n}\n.cd-hero__meta {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  gap: 24px;\n  font-size: 12.5px;\n  color: var(--grey);\n  flex-wrap: wrap;\n  text-transform: uppercase;\n  letter-spacing: 0.05em;\n  position: relative;\n  z-index: 2;\n}\n.cd-hero__meta span {\n  display: flex; align-items: center; gap: 5px;\n}\n.cd-hero__meta span:not(:last-child)::after {\n  content: '\u00b7';\n  margin-left: 18px;\n  opacity: 0.5;\n}\n\n\/* \u2500\u2500 AUTHOR STRIP \u2500\u2500 *\/\n.cd-author-strip {\n  background: var(--white);\n  border-top: 3px solid var(--teal);\n  border-bottom: 1px solid var(--grey-light);\n  padding: 16px 24px;\n  display: flex;\n  align-items: center;\n  gap: 14px;\n  max-width: 760px;\n  margin: 0 auto;\n}\n.cd-author-strip__avatar {\n  width: 44px; height: 44px;\n  border-radius: 50%;\n  background: linear-gradient(135deg, var(--teal) 0%, var(--purple) 100%);\n  flex-shrink: 0;\n  display: flex; align-items: center; justify-content: center;\n  font-weight: 800; color: var(--white); font-size: 16px;\n}\n.cd-author-strip__text { font-size: 13.5px; line-height: 1.5; color: var(--navy-mid); }\n.cd-author-strip__name { font-weight: 700; color: var(--navy); }\n.cd-author-strip__link { color: var(--purple); font-weight: 600; text-decoration: none; }\n.cd-author-strip__link:hover { color: var(--teal-dark); }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   TL;DR \u2014 Light mint with navy text\n   \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.cd-tldr {\n  background: linear-gradient(135deg, var(--teal-pale) 0%, #f0fffb 100%);\n  border: 1.5px solid rgba(19,229,179,0.3);\n  border-radius: var(--r-lg);\n  padding: 32px 36px;\n  margin: 40px 0;\n  position: relative;\n  overflow: hidden;\n}\n.cd-tldr::after {\n  content: '';\n  position: absolute;\n  bottom: -30px; right: -30px;\n  width: 160px; height: 160px;\n  background: radial-gradient(circle, rgba(19,229,179,0.18), transparent 70%);\n  pointer-events: none;\n}\n.cd-tldr__label {\n  display: inline-block;\n  background: var(--teal);\n  color: var(--dark);\n  font-size: 10.5px;\n  font-weight: 800;\n  letter-spacing: .13em;\n  text-transform: uppercase;\n  padding: 4px 12px;\n  border-radius: var(--r-pill);\n  margin-bottom: 14px;\n}\n.cd-tldr h2 {\n  font-size: 19px !important;\n  font-weight: 800;\n  margin: 0 0 16px !important;\n  color: var(--navy) !important;\n}\n.cd-tldr ul { list-style: none; display: flex; flex-direction: column; gap: 11px; }\n.cd-tldr ul li {\n  display: flex; gap: 10px; align-items: flex-start;\n  font-size: 15px; color: var(--navy-mid) !important; line-height: 1.55;\n}\n.cd-tldr ul li::before {\n  content: '\u2192';\n  color: var(--teal-dark);\n  font-weight: 800;\n  flex-shrink: 0;\n  margin-top: 1px;\n}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   TYPOGRAPHY\n   \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.cd-article h2 {\n  font-size: clamp(22px, 3.5vw, 30px);\n  font-weight: 800;\n  color: var(--navy);\n  margin: 56px 0 18px;\n  line-height: 1.22;\n  letter-spacing: -0.015em;\n  position: relative;\n  padding-bottom: 14px;\n}\n.cd-article h2::after {\n  content: '';\n  position: absolute;\n  bottom: 0; left: 0;\n  height: 3px;\n  width: 48px;\n  background: linear-gradient(90deg, var(--teal), var(--purple));\n  border-radius: 99px;\n}\n.cd-article h2:first-of-type { margin-top: 36px; }\n.cd-article h3 {\n  font-size: 20px;\n  font-weight: 700;\n  color: var(--navy);\n  margin: 36px 0 12px;\n}\n.cd-article h4 {\n  font-size: 14px;\n  font-weight: 700;\n  color: var(--purple);\n  margin: 24px 0 8px;\n  text-transform: uppercase;\n  letter-spacing: .06em;\n}\n.cd-article p { margin-bottom: 20px; color: #2a2848; }\n.cd-article p:last-child { margin-bottom: 0; }\n.cd-article ul, .cd-article ol {\n  margin: 0 0 20px 22px;\n  display: flex; flex-direction: column; gap: 10px;\n}\n.cd-article li { line-height: 1.65; color: #2a2848; }\n.cd-article strong { font-weight: 700; color: var(--navy); }\n\nblockquote {\n  border-left: 4px solid var(--teal);\n  background: var(--white);\n  box-shadow: var(--shadow-sm);\n  padding: 22px 26px;\n  border-radius: 0 var(--r-md) var(--r-md) 0;\n  margin: 36px 0;\n  font-style: italic;\n  color: var(--navy-mid);\n  font-size: 17px;\n  line-height: 1.72;\n}\nblockquote cite {\n  display: block;\n  margin-top: 14px;\n  font-size: 13px;\n  font-style: normal;\n  font-weight: 700;\n  color: var(--teal-dark);\n}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   STATS \u2014 Static cards\n   \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.cd-stats {\n  display: grid;\n  grid-template-columns: repeat(3, 1fr);\n  gap: 16px;\n  margin: 36px 0;\n}\n.cd-stat {\n  background: var(--white);\n  border-radius: var(--r-lg);\n  padding: 28px 20px 22px;\n  text-align: center;\n  box-shadow: var(--shadow-sm);\n  border: 1.5px solid transparent;\n  position: relative;\n  overflow: hidden;\n  transition: box-shadow .3s, border-color .3s, transform .3s;\n}\n.cd-stat::before {\n  content: '';\n  position: absolute;\n  top: 0; left: 0; right: 0;\n  height: 3px;\n  background: linear-gradient(90deg, var(--teal), var(--teal-mid));\n  transform: scaleX(1);\n}\n.cd-stat:hover { box-shadow: var(--shadow-md); border-color: rgba(19,229,179,0.25); transform: translateY(-3px); }\n.cd-stat__num {\n  font-size: 40px;\n  font-weight: 900;\n  letter-spacing: -0.03em;\n  line-height: 1;\n  margin-bottom: 8px;\n  background: linear-gradient(135deg, var(--teal-dark) 0%, var(--purple) 100%);\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n  background-clip: text;\n  display: block;\n}\n.cd-stat__label {\n  font-size: 13px;\n  color: var(--grey);\n  line-height: 1.45;\n  font-weight: 500;\n}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   TIMELINE VISUAL \u2014 Static bars\n   \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.cd-timeline-visual {\n  background: var(--white);\n  border-radius: var(--r-lg);\n  padding: 28px 28px 24px;\n  margin: 36px 0;\n  box-shadow: var(--shadow-sm);\n  border: 1.5px solid var(--grey-light);\n}\n.cd-timeline-visual h4 {\n  font-size: 12px;\n  font-weight: 700;\n  text-transform: uppercase;\n  letter-spacing: .09em;\n  color: var(--purple);\n  margin: 0 0 22px;\n}\n.cd-timeline-row {\n  display: grid;\n  grid-template-columns: 94px 1fr;\n  gap: 12px;\n  align-items: start;\n  margin-bottom: 16px;\n}\n.cd-timeline-row:last-child { margin-bottom: 0; }\n.cd-timeline-label {\n  font-size: 10.5px;\n  font-weight: 700;\n  text-transform: uppercase;\n  letter-spacing: .06em;\n  color: var(--grey);\n  padding-top: 5px;\n  text-align: right;\n}\n.cd-timeline-bar-wrap { display: flex; flex-direction: column; gap: 5px; }\n.cd-timeline-name { font-size: 13px; font-weight: 600; color: var(--navy); }\n.cd-timeline-bar {\n  height: 10px;\n  border-radius: 99px;\n  background: var(--grey-light);\n  overflow: hidden;\n  position: relative;\n}\n.cd-timeline-fill {\n  height: 100%;\n  border-radius: 99px;\n  position: absolute; top: 0; left: 0;\n}\n\/* Bar colours & positions *\/\n.tf--phase1 { background: linear-gradient(90deg,#13E5B3,#0ED0A7); width: 25%; margin-left: 0%; }\n.tf--phase2 { background: linear-gradient(90deg,#0ED0A7,#14C5C3); width: 18%; margin-left: 23%; }\n.tf--phase3 { background: linear-gradient(90deg,#14C5C3,#623FD1); width: 22%; margin-left: 40%; }\n.tf--phase4 { background: linear-gradient(90deg,#7C5CE8,#6448D8); width: 15%; margin-left: 60%; }\n.tf--phase5 { background: linear-gradient(90deg,#623FD1,#9C73E0); width: 8%; margin-left: 73%;  }\n.tf--phase6 { background: linear-gradient(90deg,#9C73E0,#C4A8F4); width: 19%; margin-left: 80%; }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   PHASE CARDS \u2014 Light with left accent\n   \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.cd-phase {\n  background: var(--white);\n  border-radius: var(--r-lg);\n  padding: 30px 28px 26px;\n  margin-bottom: 20px;\n  position: relative;\n  box-shadow: var(--shadow-sm);\n  border: 1.5px solid var(--grey-light);\n  border-left: 4px solid var(--teal);\n  transition: box-shadow .3s, border-color .3s, transform .3s;\n}\n.cd-phase:nth-child(even) { border-left-color: var(--purple); }\n.cd-phase:hover {\n  box-shadow: var(--shadow-md);\n  border-color: rgba(19,229,179,0.35);\n  border-left-color: var(--teal);\n  transform: translateX(4px);\n}\n.cd-phase:nth-child(even):hover { border-left-color: var(--purple); border-color: rgba(98,63,209,0.2); }\n.cd-phase__badge {\n  display: inline-flex;\n  align-items: center;\n  gap: 6px;\n  background: var(--purple-light);\n  color: var(--purple);\n  font-size: 11px;\n  font-weight: 800;\n  letter-spacing: .09em;\n  text-transform: uppercase;\n  padding: 5px 13px;\n  border-radius: var(--r-pill);\n  margin-bottom: 12px;\n}\n.cd-phase h3 {\n  font-size: 20px;\n  font-weight: 800;\n  color: var(--navy);\n  margin: 0 0 8px;\n  line-height: 1.25;\n}\n.cd-phase__tag {\n  display: inline-block;\n  font-size: 12px;\n  font-weight: 700;\n  padding: 4px 11px;\n  border-radius: var(--r-pill);\n  margin-bottom: 16px;\n  background: #f4f4f8;\n  color: #555;\n}\n.cd-phase__tag--teal   { background: rgba(19,229,179,0.12); color: #0CA686; }\n.cd-phase__tag--purple { background: var(--purple-pale); color: var(--purple-2); }\n.cd-phase__tag--amber  { background: #FFF8E6; color: #9A6500; }\n.cd-phase p { font-size: 16px; margin-bottom: 16px; line-height: 1.7; }\n.cd-phase p:last-child { margin-bottom: 0; }\n.cd-phase ul { font-size: 15.5px; }\n.cd-phase-num {\n  position: absolute;\n  top: 22px; right: 22px;\n  width: 38px; height: 38px;\n  border-radius: 50%;\n  background: var(--teal-pale);\n  display: flex; align-items: center; justify-content: center;\n  font-size: 16px; font-weight: 900; color: var(--teal-dark);\n}\n.cd-phase:nth-child(even) .cd-phase-num { background: var(--purple-light); color: var(--purple); }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   CALLOUT \u2014 Light variants\n   \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.cd-callout {\n  display: flex;\n  gap: 14px;\n  align-items: flex-start;\n  border-radius: var(--r-md);\n  padding: 18px 20px;\n  margin: 28px 0;\n}\n.cd-callout__icon { font-size: 22px; flex-shrink: 0; line-height: 1; margin-top: 2px; }\n.cd-callout__text { font-size: 15px; line-height: 1.65; color: var(--navy); }\n.cd-callout--teal   { background: var(--teal-pale); border: 1.5px solid rgba(19,229,179,0.3); }\n.cd-callout--purple { background: var(--purple-light); border: 1.5px solid rgba(98,63,209,0.18); }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   CHECKLIST \u2014 Animated progress\n   \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.cd-checklist {\n  background: var(--white);\n  border-radius: var(--r-lg);\n  padding: 32px 28px;\n  margin: 40px 0;\n  box-shadow: var(--shadow-sm);\n  border: 1.5px solid var(--grey-light);\n}\n.cd-checklist h3 { font-size: 20px; font-weight: 800; color: var(--navy); margin: 0 0 6px; }\n.cd-checklist > p { font-size: 13.5px; color: var(--grey); margin: 0 0 20px; }\n.cd-checklist__items { display: flex; flex-direction: column; gap: 8px; }\n.cd-checklist__item {\n  display: flex;\n  align-items: flex-start;\n  gap: 12px;\n  background: var(--page-bg);\n  border: 1.5px solid transparent;\n  border-radius: var(--r-sm);\n  padding: 12px 14px;\n  cursor: pointer;\n  transition: border-color .2s, background .2s, transform .2s;\n  user-select: none;\n}\n.cd-checklist__item:hover { border-color: rgba(19,229,179,0.4); background: var(--teal-pale); transform: translateX(3px); }\n.cd-checklist__item.checked { background: rgba(19,229,179,0.08); border-color: var(--teal); }\n.cd-checklist__box {\n  width: 20px; height: 20px;\n  border: 2px solid #C8C6E0;\n  border-radius: 5px;\n  flex-shrink: 0;\n  display: flex; align-items: center; justify-content: center;\n  transition: background .2s, border-color .2s;\n  margin-top: 1px;\n}\n.cd-checklist__item.checked .cd-checklist__box {\n  background: var(--teal); border-color: var(--teal);\n}\n.cd-checklist__item.checked .cd-checklist__box::after {\n  content: '\u2713'; color: var(--dark); font-size: 12px; font-weight: 900;\n}\n.cd-checklist__label {\n  font-size: 14.5px; color: var(--navy); line-height: 1.5; font-weight: 500;\n}\n.cd-checklist__item.checked .cd-checklist__label {\n  text-decoration: line-through; color: var(--grey);\n}\n.cd-checklist__section-label {\n  font-size: 11px;\n  font-weight: 800;\n  letter-spacing: .08em;\n  text-transform: uppercase;\n  color: var(--purple);\n  margin: 20px 0 8px;\n  padding-left: 4px;\n}\n.cd-checklist__section-label:first-of-type { margin-top: 0; }\n.cd-checklist__progress { margin-top: 22px; display: flex; flex-direction: column; gap: 9px; }\n.cd-checklist__progress span { font-size: 13px; font-weight: 700; color: var(--navy-mid); }\n.cd-checklist__bar {\n  height: 9px;\n  background: var(--grey-light);\n  border-radius: 99px;\n  overflow: hidden;\n}\n.cd-checklist__fill {\n  height: 100%;\n  background: linear-gradient(90deg, var(--teal), var(--teal-mid));\n  border-radius: 99px;\n  width: 0%;\n  transition: width .5s var(--ease-out);\n}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   TABLE\n   \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.cd-table-wrap {\n  overflow-x: auto;\n  margin: 28px 0;\n  border-radius: var(--r-md);\n  box-shadow: var(--shadow-sm);\n  border: 1px solid var(--grey-light);\n}\n.cd-table { width: 100%; border-collapse: collapse; font-size: 14px; }\n.cd-table thead th {\n  background: var(--navy);\n  color: var(--white);\n  padding: 13px 16px;\n  text-align: left;\n  font-weight: 700;\n  font-size: 12.5px;\n  letter-spacing: .03em;\n}\n.cd-table thead th:first-child { border-radius: var(--r-sm) 0 0 0; }\n.cd-table thead th:last-child  { border-radius: 0 var(--r-sm) 0 0; }\n.cd-table tbody td {\n  padding: 12px 16px;\n  border-bottom: 1px solid var(--grey-light);\n  vertical-align: top;\n  line-height: 1.5;\n  color: var(--navy);\n}\n.cd-table tbody tr:last-child td { border-bottom: none; }\n.cd-table tbody tr:hover td { background: var(--teal-pale); }\n.badge { display: inline-block; padding: 3px 10px; border-radius: var(--r-pill); font-size: 12px; font-weight: 700; }\n.badge--green { background: rgba(19,229,179,0.15); color: #0CA686; }\n.badge--amber { background: #FFF3CD; color: #9A6500; }\n.badge--red   { background: #FDECEA; color: #C0392B; }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   FAQ\n   \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.cd-faq { margin: 52px 0 36px; }\n.cd-faq h2 { margin-bottom: 24px !important; }\n.cd-faq__item {\n  border: 1.5px solid var(--grey-light);\n  border-radius: var(--r-md);\n  margin-bottom: 10px;\n  overflow: hidden;\n  background: var(--white);\n  transition: border-color .25s, box-shadow .25s;\n}\n.cd-faq__item:hover { border-color: rgba(19,229,179,0.4); box-shadow: var(--shadow-sm); }\n.cd-faq__item.open  { border-color: var(--teal); box-shadow: var(--shadow-sm); }\n.cd-faq__q {\n  width: 100%; background: none; border: none;\n  padding: 18px 20px;\n  text-align: left;\n  font-family: var(--font);\n  font-size: 15.5px; font-weight: 700; color: var(--navy);\n  cursor: pointer;\n  display: flex; align-items: center; justify-content: space-between; gap: 12px;\n}\n.cd-faq__icon {\n  width: 28px; height: 28px;\n  border-radius: 50%;\n  background: var(--teal-pale);\n  display: flex; align-items: center; justify-content: center;\n  font-size: 18px; font-weight: 400; color: var(--teal-dark);\n  flex-shrink: 0;\n  transition: transform .25s, background .25s;\n}\n.cd-faq__item.open .cd-faq__icon { transform: rotate(45deg); background: var(--teal); color: var(--dark); }\n.cd-faq__a {\n  display: none;\n  padding: 0 20px 18px;\n  padding-top: 0;\n  font-size: 15.5px; color: #3a3a5c; line-height: 1.72;\n}\n.cd-faq__item.open .cd-faq__a { display: block; }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   CTA BANNER\n   \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.cd-cta {\n  background: linear-gradient(135deg, var(--navy) 0%, var(--navy-mid) 60%, #252575 100%);\n  border-radius: var(--r-xl);\n  padding: 52px 44px;\n  text-align: center;\n  color: var(--white);\n  margin: 56px 0 36px;\n  position: relative;\n  overflow: hidden;\n}\n.cd-cta::before {\n  content: '';\n  position: absolute;\n  top: -60px; left: -60px;\n  width: 280px; height: 280px;\n  background: radial-gradient(circle, rgba(19,229,179,0.18), transparent 70%);\n}\n.cd-cta::after {\n  content: '';\n  position: absolute;\n  bottom: -50px; right: -50px;\n  width: 220px; height: 220px;\n  background: radial-gradient(circle, rgba(98,63,209,0.25), transparent 70%);\n}\n.cd-cta h2 {\n  font-size: clamp(22px, 4vw, 30px);\n  font-weight: 800;\n  color: var(--white) !important;\n  margin-bottom: 14px;\n  line-height: 1.25;\n  position: relative; z-index: 1;\n}\n.cd-cta p {\n  font-size: 16px;\n  color: rgba(255,255,255,0.78);\n  margin-bottom: 28px;\n  max-width: 460px;\n  margin-left: auto; margin-right: auto;\n  position: relative; z-index: 1;\n}\n.cd-btn {\n  display: inline-block;\n  background: var(--teal);\n  color: var(--dark);\n  font-family: var(--font);\n  font-size: 15.5px;\n  font-weight: 800;\n  padding: 15px 34px;\n  border-radius: var(--r-pill);\n  text-decoration: none;\n  transition: background .2s, transform .2s, box-shadow .2s;\n  border: none; cursor: pointer;\n  position: relative; z-index: 1;\n}\n.cd-btn:hover { background: #0ED0A7; color: var(--dark); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(19,229,179,0.35); }\n.cd-btn--ghost {\n  background: transparent;\n  color: var(--white);\n  border: 2px solid rgba(255,255,255,0.35);\n  margin-left: 10px;\n}\n.cd-btn--ghost:hover { background: rgba(255,255,255,0.1); color: var(--white); box-shadow: none; }\n\n\/* \u2500\u2500 INLINE CTA \u2500\u2500 *\/\n.cd-inline-cta {\n  background: var(--white);\n  border: 1.5px solid rgba(19,229,179,0.35);\n  border-left: 4px solid var(--teal);\n  border-radius: var(--r-md);\n  padding: 18px 22px;\n  margin: 32px 0;\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: 16px;\n  flex-wrap: wrap;\n  box-shadow: var(--shadow-sm);\n}\n.cd-inline-cta__text { font-size: 14.5px; color: var(--navy); font-weight: 600; line-height: 1.5; }\n.cd-inline-cta__btn {\n  background: var(--purple);\n  color: var(--white);\n  text-decoration: none;\n  padding: 10px 20px;\n  border-radius: var(--r-pill);\n  font-size: 13.5px;\n  font-weight: 700;\n  white-space: nowrap;\n  transition: background .2s, transform .2s;\n  flex-shrink: 0;\n}\n.cd-inline-cta__btn:hover { background: var(--purple-2); color: var(--white); transform: translateY(-1px); }\n\n\/* \u2500\u2500 AUTHOR BIO \u2500\u2500 *\/\n.cd-author-bio {\n  background: var(--white);\n  border-radius: var(--r-lg);\n  padding: 32px;\n  margin-top: 52px;\n  display: flex;\n  gap: 22px;\n  align-items: flex-start;\n  box-shadow: var(--shadow-sm);\n  border: 1.5px solid var(--grey-light);\n}\n.cd-author-bio__avatar {\n  width: 68px; height: 68px;\n  border-radius: 50%;\n  background: linear-gradient(135deg, var(--teal), var(--purple));\n  display: flex; align-items: center; justify-content: center;\n  font-size: 24px; font-weight: 900; color: var(--white);\n  flex-shrink: 0;\n}\n.cd-author-bio__name { font-size: 17px; font-weight: 800; color: var(--navy); margin-bottom: 4px; }\n.cd-author-bio__role { font-size: 12.5px; color: var(--purple); font-weight: 600; margin-bottom: 12px; }\n.cd-author-bio__desc { font-size: 14px; color: #3a3a5c; line-height: 1.65; }\n.cd-author-bio__link { display: inline-block; margin-top: 12px; font-size: 13px; font-weight: 700; }\n\n\/* \u2500\u2500 NAV LINKS \u2500\u2500 *\/\n.cd-nav-links {\n  background: var(--white);\n  border-radius: var(--r-md);\n  padding: 20px 24px;\n  margin: 28px 0;\n  box-shadow: var(--shadow-sm);\n  border: 1.5px solid var(--grey-light);\n}\n.cd-nav-links h4 {\n  font-size: 11px; font-weight: 700; letter-spacing: .09em;\n  text-transform: uppercase; color: var(--grey); margin-bottom: 12px;\n}\n.cd-nav-links ul { margin: 0; display: flex; flex-direction: column; gap: 6px; }\n.cd-nav-links ul li { list-style: none; padding-left: 0; }\n.cd-nav-links ul li a { font-size: 14px; font-weight: 600; color: var(--purple); text-decoration: none; }\n.cd-nav-links ul li a:hover { color: var(--teal-dark); }\n\n\/* \u2500\u2500 DIVIDER \u2500\u2500 *\/\n.cd-divider {\n  height: 1px;\n  background: linear-gradient(90deg, transparent, var(--grey-light) 20%, var(--grey-light) 80%, transparent);\n  border: none;\n  margin: 52px 0;\n}\n\n\/* \u2500\u2500 SOURCES \u2500\u2500 *\/\n.cd-sources {\n  background: var(--white);\n  border-radius: var(--r-md);\n  padding: 20px 24px;\n  margin: 32px 0;\n  border: 1.5px solid var(--grey-light);\n}\n.cd-sources h4 {\n  font-size: 11px; font-weight: 700; text-transform: uppercase;\n  letter-spacing: .09em; color: var(--grey); margin-bottom: 12px;\n}\n.cd-sources ol { margin: 0 0 0 18px; display: flex; flex-direction: column; gap: 6px; }\n.cd-sources li { font-size: 13px; color: #555; line-height: 1.55; }\n.cd-sources a { font-size: 13px; }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   PHASE STEPS COUNTER BADGE\n   \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.cd-phases-header {\n  display: flex;\n  align-items: center;\n  gap: 12px;\n  margin-bottom: 8px;\n}\n.cd-phase-step-num {\n  width: 32px; height: 32px;\n  border-radius: 50%;\n  background: linear-gradient(135deg, var(--teal) 0%, var(--teal-mid) 100%);\n  display: flex; align-items: center; justify-content: center;\n  font-size: 14px; font-weight: 900; color: var(--dark);\n  flex-shrink: 0;\n}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   SECTION REVEAL PILL (phase labels)\n   \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.cd-section-pill {\n  display: inline-flex;\n  align-items: center;\n  gap: 8px;\n  background: var(--purple-light);\n  color: var(--purple);\n  font-size: 11px;\n  font-weight: 700;\n  letter-spacing: .08em;\n  text-transform: uppercase;\n  padding: 5px 14px;\n  border-radius: var(--r-pill);\n  margin-bottom: 12px;\n}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   RESPONSIVE\n   \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n@media (max-width: 900px) {\n  .cd-article { padding: 0 16px 60px; }\n  .cd-stats { grid-template-columns: repeat(2, 1fr); }\n  .cd-cta { padding: 40px 28px; }\n  .cd-tldr { padding: 26px 24px; }\n  .cd-hero { padding: 64px 20px 76px; }\n  .cd-timeline-row { grid-template-columns: 72px 1fr; }\n}\n@media (max-width: 600px) {\n  .cd-hero { padding: 52px 18px 64px; }\n  .cd-article { padding: 0 14px 48px; }\n  .cd-tldr { padding: 20px 16px; }\n  .cd-stats { grid-template-columns: repeat(2, 1fr); gap: 10px; }\n  .cd-stat__num { font-size: 32px; }\n  .cd-phase { padding: 22px 16px; }\n  .cd-phase h3 { font-size: 18px; }\n  .cd-author-bio { flex-direction: column; padding: 22px 18px; }\n  .cd-author-bio__avatar { width: 52px; height: 52px; font-size: 18px; }\n  .cd-inline-cta { flex-direction: column; }\n  .cd-inline-cta__btn { width: 100%; text-align: center; }\n  .cd-cta .cd-btn { display: block; margin: 0 0 12px; width: 100%; text-align: center; }\n  .cd-cta .cd-btn--ghost { display: block; margin: 0; width: 100%; }\n  .cd-author-strip { flex-direction: column; padding: 14px 16px; }\n  .cd-faq__q { font-size: 15px; padding: 15px 16px; }\n  .cd-article h2 { font-size: clamp(20px, 5vw, 26px); margin: 42px 0 14px; }\n  .cd-hero__h1 { font-size: clamp(24px, 7.5vw, 36px); }\n  .cd-timeline-row { grid-template-columns: 62px 1fr; }\n}\n<\/style>\n<\/head>\n<body>\n\n<div class=\"cd-article\">\n\n  <p>Here&#8217;s a scene I&#8217;ve watched play out more times than I&#8217;d like to admit. An organisation spends four months building a new website. Good team, real effort, genuine excitement. Then launch day arrives. The domain doesn&#8217;t resolve. A form sends submissions to an email address nobody checks. Half the old pages return 404 errors because nobody set up the redirects. The team that should be celebrating is instead firefighting, and the goodwill of the launch moment has already passed.<\/p>\n\n  <p>The problem is almost never the design. Usually it&#8217;s not even the content. It&#8217;s the planning, or rather the lack of it. Someone assumed someone else was handling the hosting. The SEO setup got pushed to &#8220;after launch.&#8221; The go-live checklist was a three-item list someone wrote on a Post-it note the morning of.<\/p>\n\n  <div class=\"cd-tldr\">\n    <span class=\"cd-tldr__label\">TL;DR \u2014 Quick Summary<\/span>\n    <h2>What This Guide Covers<\/h2>\n    <ul>\n      <li>A new website launch strategy has six distinct phases . Skip any of them and you&#8217;ll spend months fixing the consequences.<\/li>\n      <li>Pre-launch planning is where 80% of launch success is determined. Do the groundwork before you build.<\/li>\n      <li>Technical SEO, accessibility, and Core Web Vitals need to be set up before go-live , set up before go-live.<\/li>\n      <li>AEO (Answer Engine Optimisation) matters as much as traditional SEO in 2026 . Structure your content so AI tools can find and cite it.<\/li>\n      <li>Launch day is a moment, but post-launch optimisation is the job. Analytics, feedback, and iteration are what make a site actually perform.<\/li>\n      <li>Includes a free interactive website launch checklist covering all six phases \u2014 tick it off as you go.<\/li>\n    <\/ul>\n  <\/div>\n\n  <div class=\"cd-nav-links\">\n    <h4>Jump to Section<\/h4>\n    <ul>\n      <li><a href=\"#phase1\">Phase 1: Pre-Launch Planning<\/a><\/li>\n      <li><a href=\"#phase2\">Phase 2: Technical Readiness &#038; SEO<\/a><\/li>\n      <li><a href=\"#phase3\">Phase 3: Content &#038; Quality Assurance<\/a><\/li>\n      <li><a href=\"#phase4\">Phase 4: Pre-Launch Marketing<\/a><\/li>\n      <li><a href=\"#phase5\">Phase 5: Launch Day Execution<\/a><\/li>\n      <li><a href=\"#phase6\">Phase 6: Post-Launch Optimisation<\/a><\/li>\n      <li><a href=\"#mistakes\">5 Common Website Launch Mistakes<\/a><\/li>\n      <li><a href=\"#checklist\">Interactive Launch Checklist<\/a><\/li>\n      <li><a href=\"#budget\">Website Launch Budget Guide<\/a><\/li>\n      <li><a href=\"#faq\">Frequently Asked Questions<\/a><\/li>\n    <\/ul>\n  <\/div>\n\n\n  <p>I wrote this guide because I kept seeing the same gaps show up across nonprofit launches, and I wanted something practical to point people to before things went wrong. What follows is the <strong>website launch plan<\/strong> we actually use with clients: six phases, a proper <strong>pre-launch checklist<\/strong>, and the kind of detail that stops small oversights from becoming very expensive problems.<\/p>\n\n  <div class=\"cd-stats\">\n    <div class=\"cd-stat\">\n      <div class=\"cd-stat__num\">60\u00d7<\/div>\n      <div class=\"cd-stat__label\">Cheaper to fix problems in planning than after launch<\/div>\n    <\/div>\n    <div class=\"cd-stat\">\n      <div class=\"cd-stat__num\">94%<\/div>\n      <div class=\"cd-stat__label\">Of visitors form first impressions from website design<\/div>\n    <\/div>\n    <div class=\"cd-stat\">\n      <div class=\"cd-stat__num\">25%<\/div>\n      <div class=\"cd-stat__label\">Of visitors leave a website that takes more than 4 seconds to load<\/div>\n    <\/div>\n  <\/div>\n\n  <p>Those numbers tell you where the stakes are. First impressions are formed in under a second. Load time decides whether someone stays or leaves before you&#8217;ve had the chance to make your case. And every problem that gets caught before launch costs a fraction of what it costs to fix after go-live \u2014 that 60x figure isn&#8217;t theoretical, it&#8217;s what it actually feels like when you&#8217;re rebuilding redirects on a live site with supporters trying to reach you.<\/p>\n\n  <div class=\"cd-timeline-visual\">\n    <h4>Typical Website Launch Timeline (8\u201314 weeks)<\/h4>\n    <div class=\"cd-timeline-row\">\n      <div class=\"cd-timeline-label\">Weeks 1\u20133<\/div>\n      <div class=\"cd-timeline-bar-wrap\">\n        <div class=\"cd-timeline-name\">Phase 1: Planning &#038; Strategy<\/div>\n        <div class=\"cd-timeline-bar\"><div class=\"cd-timeline-fill tf--phase1\"><\/div><\/div>\n      <\/div>\n    <\/div>\n    <div class=\"cd-timeline-row\">\n      <div class=\"cd-timeline-label\">Weeks 3\u20135<\/div>\n      <div class=\"cd-timeline-bar-wrap\">\n        <div class=\"cd-timeline-name\">Phase 2: Technical Setup &#038; SEO<\/div>\n        <div class=\"cd-timeline-bar\"><div class=\"cd-timeline-fill tf--phase2\"><\/div><\/div>\n      <\/div>\n    <\/div>\n    <div class=\"cd-timeline-row\">\n      <div class=\"cd-timeline-label\">Weeks 5\u20138<\/div>\n      <div class=\"cd-timeline-bar-wrap\">\n        <div class=\"cd-timeline-name\">Phase 3: Content &#038; QA<\/div>\n        <div class=\"cd-timeline-bar\"><div class=\"cd-timeline-fill tf--phase3\"><\/div><\/div>\n      <\/div>\n    <\/div>\n    <div class=\"cd-timeline-row\">\n      <div class=\"cd-timeline-label\">Weeks 8\u201310<\/div>\n      <div class=\"cd-timeline-bar-wrap\">\n        <div class=\"cd-timeline-name\">Phase 4: Pre-Launch Marketing<\/div>\n        <div class=\"cd-timeline-bar\"><div class=\"cd-timeline-fill tf--phase4\"><\/div><\/div>\n      <\/div>\n    <\/div>\n    <div class=\"cd-timeline-row\">\n      <div class=\"cd-timeline-label\">Week 10\u201311<\/div>\n      <div class=\"cd-timeline-bar-wrap\">\n        <div class=\"cd-timeline-name\">Phase 5: Launch Day<\/div>\n        <div class=\"cd-timeline-bar\"><div class=\"cd-timeline-fill tf--phase5\"><\/div><\/div>\n      <\/div>\n    <\/div>\n    <div class=\"cd-timeline-row\">\n      <div class=\"cd-timeline-label\">Weeks 11\u201314+<\/div>\n      <div class=\"cd-timeline-bar-wrap\">\n        <div class=\"cd-timeline-name\">Phase 6: Post-Launch Optimisation<\/div>\n        <div class=\"cd-timeline-bar\"><div class=\"cd-timeline-fill tf--phase6\"><\/div><\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <hr class=\"cd-divider\">\n\n  <h2 id=\"phase1\">Phase 1: Pre-Launch Planning \u2014 Where Your New Website Launch Strategy Is Won or Lost<\/h2>\n\n  <p>I know &#8220;start with planning&#8221; sounds obvious. But most website projects don&#8217;t plan \u2014 they estimate. Estimating is deciding the homepage needs six sections and the about page needs a team photo. Planning is deciding what you need visitors to do when they land, then working backwards from that. A realistic <strong>website launch timeline<\/strong> starts here too: you can&#8217;t build one without first knowing what you&#8217;re building and why. That 60x cost figure is real \u2014 I&#8217;ve seen migrations where a single forgotten redirect decision took three weeks and real money to unpick after go-live.<\/p>\n\n  <div class=\"cd-phase\" id=\"p1-goals\">\n    <div class=\"cd-phase__badge\">Step 1 <span>\u00b7<\/span> Most Important<\/div>\n    <div class=\"cd-phase-num\">1<\/div>\n    <h3>Define Your Goals and KPIs First<\/h3>\n    <span class=\"cd-phase__tag cd-phase__tag--teal\">\ud83d\udfe2 Do This First<\/span>\n    <p>The most important question isn&#8217;t &#8220;what should the website look like?&#8221; It&#8217;s &#8220;what do we actually need it to do?&#8221; That sounds obvious, but you&#8217;d be surprised how often it goes unanswered. I&#8217;ve sat in kick-off meetings where the entire team is excited about fonts and hero images, and nobody has said out loud what a successful launch means in real terms.<\/p>\n    <p>For a nonprofit, this gets specific quickly. Are you trying to increase monthly donations by a particular percentage? Reduce the number of phone calls from people who can&#8217;t find information on the site? Get more volunteer applications through the form rather than by email? Each of those leads to completely different design priorities. Without that clarity, you end up with a site that everyone on the team likes \u2014 and that doesn&#8217;t actually move anything.<\/p>\n    <p>Tie your goals to real numbers and a real timeframe. &#8220;More traffic&#8221; doesn&#8217;t tell you anything. &#8220;A 25% increase in contact form submissions within three months of launch&#8221; gives you something to point at when the board asks if the new site is working.<\/p>\n  <\/div>\n\n  <div class=\"cd-phase\">\n    <div class=\"cd-phase__badge\">Step 2<\/div>\n    <div class=\"cd-phase-num\">2<\/div>\n    <h3>Audience Research and Competitor Analysis<\/h3>\n    <span class=\"cd-phase__tag cd-phase__tag--purple\">\ud83d\udfe3 Strategic<\/span>\n    <p>&#8220;Anyone who cares about our cause&#8221; is not an audience. I&#8217;ve heard some version of that answer in almost every nonprofit kick-off I&#8217;ve ever run, and it always leads to a homepage that tries to say everything to everyone \u2014 which ends up saying nothing convincingly to anyone.<\/p>\n    <p>Talk to real people first. Not a survey. Actual conversations with two or three of your donors, your volunteers, maybe a beneficiary if that&#8217;s appropriate. What did they search for before they found you? What almost made them leave? What question does your homepage currently not answer? Those conversations are worth more than any analytics report at this stage.<\/p>\n    <p>Then look at your closest competitors. Not to imitate, but to find the gaps. What topics are they covering shallowly that you could go deep on? What does their audience complain about in comments or reviews? What does their site make hard that yours could make easy? That&#8217;s where you find the angle that makes your launch worth paying attention to.<\/p>\n  <\/div>\n\n  <div class=\"cd-phase\">\n    <div class=\"cd-phase__badge\">Step 3<\/div>\n    <div class=\"cd-phase-num\">3<\/div>\n    <h3>Content Strategy and Technical Planning<\/h3>\n    <span class=\"cd-phase__tag cd-phase__tag--amber\">\ud83d\udfe1 Often Skipped<\/span>\n    <p>This is the one that gets skipped most. Not because teams don&#8217;t know it matters. They do. But it&#8217;s the least glamorous part of a website project. Nobody gets excited about a content audit. But here&#8217;s what happens when you skip it: you migrate 80 pages from your old site, 60 of which had no visitors and no purpose, and you&#8217;ve now committed to maintaining them on the new site too.<\/p>\n    <p>If you&#8217;re moving from an existing site, go through every page before the build starts. Keep what&#8217;s earning traffic and genuinely serves your audience. Rewrite what has potential but is out of date. Delete everything else and set up redirects. Not to avoid 404 errors alone, but because having fewer, better pages is genuinely good for your rankings.<\/p>\n    <p>Technical decisions belong here too. Which CMS? Which host? Which domain? For nonprofits on WordPress, we almost always point people toward <a href=\"https:\/\/circulardesign.io\/services\/web-design\/\">a sustainable hosting setup<\/a>. Servers that are optimised specifically for WordPress just perform better day to day. And if you want to factor in the <a href=\"https:\/\/circulardesign.io\/web-design-trends-2026-charities-nonprofits\/\">latest web design thinking<\/a>, now is when to do it, before the site is half built.<\/p>\n  <\/div>\n\n  <div class=\"cd-callout cd-callout--teal\">\n    <div class=\"cd-callout__icon\">\ud83d\udca1<\/div>\n    <div class=\"cd-callout__text\"><strong>Planning tip:<\/strong> Set your budget at this stage: not just design and development, but hosting, plugins, photography, copywriting, and post-launch maintenance. Underbudgeted launches tend to cut corners in the places that hurt most: accessibility, performance, and ongoing care.<\/div>\n  <\/div>\n\n  <div class=\"cd-inline-cta\">\n    <div class=\"cd-inline-cta__text\">\ud83c\udfaf Launching a redesigned site rather than a new one? Our <strong>nonprofit website redesign guide<\/strong> has a dedicated planning framework.<\/div>\n    <a class=\"cd-inline-cta__btn\" href=\"https:\/\/circulardesign.io\/nonprofit-website-redesign-guide\/\">Read the redesign guide \u2192<\/a>\n  <\/div>\n\n  <hr class=\"cd-divider\">\n\n  <h2 id=\"phase2\">Phase 2: Technical Readiness, SEO Setup &#038; Your Go-Live Checklist<\/h2>\n\n  <p>Technical setup is where the invisible work lives. Your visitors never see it, but they feel every shortcut you took. A slow page, a security warning in the browser bar, a site Google can&#8217;t index. These aren&#8217;t aesthetic problems. They&#8217;re trust problems, and they almost always trace back to decisions rushed or deferred during this phase.<\/p>\n\n  <figure style=\"margin: 28px 0;\">\n    <img decoding=\"async\"\n      src=\"https:\/\/circulardesign.io\/wp-content\/uploads\/2026\/04\/Technical-SEO-Setup.jpg\"\n      alt=\"Developer setting up technical SEO configuration and Google Search Console for a new website launch \u2014 showing pre-launch technical readiness checklist\"\n      width=\"760\" height=\"400\"\n      style=\"width:100%;object-fit:cover;\"\n      loading=\"lazy\"\n    >\n    <figcaption style=\"font-size:13px;color:#777;text-align:center;margin-top:8px;\">\n      Technical SEO setup happens before launch \u2014 not after the fact.\n    <\/figcaption>\n  <\/figure>\n\n  <div class=\"cd-phase\">\n    <div class=\"cd-phase__badge\">Technical Setup<\/div>\n    <div class=\"cd-phase-num\">\ud83d\udd27<\/div>\n    <h3>Domain, Hosting &#038; SSL Configuration<\/h3>\n    <span class=\"cd-phase__tag cd-phase__tag--teal\">\ud83d\udfe2 Must Complete Before Build<\/span>\n    <p>Register your domain early \u2014 and if you&#8217;re transferring one, build in at least a week for the process because registrars are rarely fast. One thing most people don&#8217;t know to do: lower your domain&#8217;s TTL (the time it takes DNS changes to spread across the internet) a few days before launch. This means when you point the domain to your new server, the change takes effect in minutes rather than hours. It&#8217;s a small thing that makes launch day noticeably calmer.<\/p>\n    <p>For hosting, the cheapest shared option on a fossil-fuel server is not the right call for a nonprofit that takes its reputation seriously. <a href=\"https:\/\/circulardesign.io\/services\/hosting\/\">Green-hosted WordPress<\/a> loads faster, is easier to maintain, and means your site isn&#8217;t quietly contributing to the emissions your organisation is probably working to reduce. SSL goes on before content goes up \u2014 not after. It takes ten minutes, and launching without it in 2026 is the kind of oversight that makes donors quietly wonder about your attention to detail.<\/p>\n  <\/div>\n\n  <div class=\"cd-phase\">\n    <div class=\"cd-phase__badge\">Analytics &#038; Search Tools<\/div>\n    <div class=\"cd-phase-num\">\ud83d\udcca<\/div>\n    <h3>GA4, Search Console, Sitemap &#038; robots.txt<\/h3>\n    <span class=\"cd-phase__tag cd-phase__tag--teal\">\ud83d\udfe2 Set Up in Staging, Not After Go-Live<\/span>\n    <p>The number of times I&#8217;ve seen a team launch a site and then spend the first week scrambling to set up analytics \u2014 while real visitor data disappears, unrecorded, forever \u2014 is genuinely painful. Connect GA4 and Search Console while the site is still on staging. Test that your key events are firing. Know what you&#8217;re measuring before the doors open.<\/p>\n    <p>Your XML sitemap should be ready to submit the moment you go live. Not two weeks later. Your robots.txt file should be blocking your staging environment from being indexed right now, and should open up the moment you switch to the live domain. Miss that one step and you&#8217;ll spend a confused month wondering why Google is ranking pages from your old staging URL.<\/p>\n    <p>If you&#8217;re moving from an existing site, build a redirect map before you write a single line of code on the new one. Every old URL mapped to its new equivalent, in a spreadsheet, with 301 redirects set and tested before go-live. This is the single most important thing you can do to protect your existing rankings through a migration. Our guide on <a href=\"https:\/\/circulardesign.io\/how-to-boost-your-website-traffic-with-seo\/\">optimising your site for search engines<\/a> goes deeper on this if you need it.<\/p>\n  <\/div>\n\n  <div class=\"cd-phase\">\n    <div class=\"cd-phase__badge\">Schema &#038; AEO<\/div>\n    <div class=\"cd-phase-num\">\ud83e\udd16<\/div>\n    <h3>Schema Markup and Answer Engine Optimisation<\/h3>\n    <span class=\"cd-phase__tag cd-phase__tag--purple\">\ud83d\udfe3 2026 Priority<\/span>\n    <p>Schema markup is the metadata you add to your pages so that search engines and AI tools can understand what they&#8217;re looking at. Not just that a page exists, but what type it is, who wrote it, what questions it answers. In 2026, this is the difference between your content being cited in a Google AI Overview or ChatGPT answer, or being invisible to anyone who asks those tools a question you should be answering.<\/p>\n    <p>At minimum, set up Organisation schema on your homepage, Article schema on every blog post, FAQ schema on your service pages, and BreadcrumbList schema everywhere. Use JSON-LD format in the page head \u2014 it&#8217;s the cleanest approach and the one Google prefers.<\/p>\n    <p>AEO goes a step beyond standard SEO. It&#8217;s about writing content that AI systems can actually summarise and cite. That means putting the most direct answer in your first sentence, not burying it in paragraph four after a long preamble. It means using clear headings that match the actual questions people ask. And it means FAQ sections that answer real questions with real specificity \u2014 not vague marketing language dressed up as a question. Our <a href=\"https:\/\/circulardesign.io\/services\/seo-service-offer\/\">SEO services<\/a> cover full schema implementation and AEO setup if you&#8217;d rather have someone handle it properly.<\/p>\n  <\/div>\n\n  <div class=\"cd-phase\">\n    <div class=\"cd-phase__badge\">Performance<\/div>\n    <div class=\"cd-phase-num\">\u26a1<\/div>\n    <h3>Core Web Vitals &#038; Performance Optimisation<\/h3>\n    <span class=\"cd-phase__tag cd-phase__tag--teal\">\ud83d\udfe2 Test Before, Not After<\/span>\n    <p>Google&#8217;s Core Web Vitals aren&#8217;t just a technical checkbox \u2014 they&#8217;re a real measure of how your site feels to someone using it. A page that scores poorly tends to feel slightly broken even when it looks fine. Pass these three before launch: LCP (how long until your main content loads \u2014 under 2.5 seconds), CLS (how much the page jumps around as it loads \u2014 under 0.1), and INP (how quickly the page responds when someone clicks or taps \u2014 under 200ms).<\/p>\n    <p>The most common culprits on nonprofit sites: hero images that are 2MB when they should be 80KB, fonts loading without fallbacks so text jumps when they arrive, and third-party scripts from old social media integrations that nobody uses anymore running on every page. Run PageSpeed Insights on your staging site well before launch \u2014 not the day before \u2014 so you have time to actually fix what it finds. If you&#8217;re hosting with us, this is part of the standard build process rather than something extra to remember.<\/p>\n  <\/div>\n\n  <h3>Essential Pre-Launch SEO Checklist: At a Glance<\/h3>\n  <div class=\"cd-table-wrap\">\n    <table class=\"cd-table\">\n      <thead>\n        <tr>\n          <th>Task<\/th>\n          <th>Why It Matters<\/th>\n          <th>Tool<\/th>\n          <th>Priority<\/th>\n        <\/tr>\n      <\/thead>\n      <tbody>\n        <tr>\n          <td>SSL certificate installed<\/td>\n          <td>HTTPS is a Google ranking signal and builds visitor trust<\/td>\n          <td>Your host \/ Let&#8217;s Encrypt<\/td>\n          <td><span class=\"badge badge--red\">Critical<\/span><\/td>\n        <\/tr>\n        <tr>\n          <td>GA4 + Search Console connected<\/td>\n          <td>You can&#8217;t improve what you can&#8217;t measure<\/td>\n          <td>Google<\/td>\n          <td><span class=\"badge badge--red\">Critical<\/span><\/td>\n        <\/tr>\n        <tr>\n          <td>XML sitemap created &#038; submitted<\/td>\n          <td>Helps Google discover and index all pages<\/td>\n          <td>Yoast \/ Rank Math<\/td>\n          <td><span class=\"badge badge--red\">Critical<\/span><\/td>\n        <\/tr>\n        <tr>\n          <td>robots.txt configured<\/td>\n          <td>Prevents staging from being indexed<\/td>\n          <td>WordPress \/ Manual<\/td>\n          <td><span class=\"badge badge--red\">Critical<\/span><\/td>\n        <\/tr>\n        <tr>\n          <td>301 redirects mapped (if migrating)<\/td>\n          <td>Protects existing rankings and avoids 404 errors<\/td>\n          <td>Screaming Frog \/ Redirection plugin<\/td>\n          <td><span class=\"badge badge--red\">Critical<\/span><\/td>\n        <\/tr>\n        <tr>\n          <td>Schema markup implemented<\/td>\n          <td>Enables rich results and AI citability (AEO)<\/td>\n          <td>JSON-LD \/ Rank Math<\/td>\n          <td><span class=\"badge badge--amber\">High<\/span><\/td>\n        <\/tr>\n        <tr>\n          <td>Core Web Vitals passing<\/td>\n          <td>Page experience affects rankings and conversions<\/td>\n          <td>PageSpeed Insights<\/td>\n          <td><span class=\"badge badge--amber\">High<\/span><\/td>\n        <\/tr>\n        <tr>\n          <td>Meta titles &#038; descriptions set<\/td>\n          <td>Controls how pages appear in search results<\/td>\n          <td>Yoast \/ Rank Math<\/td>\n          <td><span class=\"badge badge--amber\">High<\/span><\/td>\n        <\/tr>\n      <\/tbody>\n    <\/table>\n  <\/div>\n\n  <hr class=\"cd-divider\">\n\n  <h2 id=\"phase3\">Phase 3: Content Finalisation, QA &#038; Pre-Launch Website Checks<\/h2>\n\n  <p>QA is the phase that gets squeezed when timelines get tight. I understand why \u2014 by this point the team is tired, the client wants to see it live, and the pressure to just press go is real. But the things that go wrong when you skip a proper review aren&#8217;t small. They&#8217;re the kind of thing a supporter screenshots and sends around. A contact form that doesn&#8217;t work. A broken page in the mobile nav. A donation button that leads to an error.<\/p>\n\n  <div class=\"cd-phase\">\n    <div class=\"cd-phase__badge\">Content Review<\/div>\n    <div class=\"cd-phase-num\">\ud83d\udcdd<\/div>\n    <h3>Final Content Review and Image Optimisation<\/h3>\n    <span class=\"cd-phase__tag cd-phase__tag--teal\">\ud83d\udfe2 Do This Late in the Build<\/span>\n    <p>Read every page of your new site as if you&#8217;ve never heard of your organisation. Not as a team member who knows what everything means \u2014 as the funder who&#8217;s considering their first donation, or the volunteer who found you via Google and has two minutes to decide if this is worth their time. Does each page tell them what to do next? Is the language clear or full of insider shorthand?<\/p>\n    <p>Images are worth a dedicated check. Every photo should be in WebP format and resized to match how it actually displays \u2014 not uploaded at 3000px and shrunk visually in CSS while still loading the full file. Every image needs alt text that describes what&#8217;s in the picture, naturally and accurately. This matters for accessibility \u2014 screen reader users depend on it \u2014 and it matters for SEO. Both reasons are equally good.<\/p>\n    <p>While you&#8217;re at it, trace your internal links. Every important page should be reachable from somewhere else on the site. Pages with no links pointing to them effectively don&#8217;t exist for search engines or for visitors who aren&#8217;t following a direct URL.<\/p>\n  <\/div>\n\n  <div class=\"cd-phase\">\n    <div class=\"cd-phase__badge\">Technical QA<\/div>\n    <div class=\"cd-phase-num\">\ud83e\uddea<\/div>\n    <h3>Mobile Testing, Cross-Browser Checks &#038; Accessibility<\/h3>\n    <span class=\"cd-phase__tag cd-phase__tag--amber\">\ud83d\udfe1 Often Underestimated<\/span>\n    <p>Test on a real phone \u2014 not a browser resized to mobile view. The difference between the two is bigger than most developers will admit. Navigate the menu with your thumb. Fill in your contact form on a small screen. Try to read the text in bright sunlight. These are the conditions your supporters actually use. If it&#8217;s slightly awkward for you, it&#8217;s unusable for them.<\/p>\n    <p>Cross-browser testing sounds like the kind of thing you can skip. Usually you can&#8217;t. Chrome and Safari cover the majority of your audience, but a quick check in Firefox and Edge takes 20 minutes and regularly turns up something that needs fixing. BrowserStack covers device combinations you don&#8217;t physically own.<\/p>\n    <p>On accessibility: one in five people live with some form of disability. Your site needs to work for them, legally in the UK, EU, and US, and morally regardless of where you&#8217;re based. Run your site through the WAVE tool before launch and address every error it flags. Our guide on <a href=\"https:\/\/circulardesign.io\/why-accessible-web-design-is-essential-in-2025\/\">why accessible web design matters<\/a> has the full picture if you want it.<\/p>\n  <\/div>\n\n  <div class=\"cd-phase\">\n    <div class=\"cd-phase__badge\">Forms &#038; Links<\/div>\n    <div class=\"cd-phase-num\">\ud83d\udd17<\/div>\n    <h3>Form Testing, Broken Link Checks &#038; Staging Review<\/h3>\n    <span class=\"cd-phase__tag cd-phase__tag--purple\">\ud83d\udfe3 Final Gate Before Launch<\/span>\n    <p>Submit every form \u2014 both with valid data and with deliberately wrong data. Does the error message actually explain what went wrong? Does a successful submission land in the right email inbox or CRM field? I&#8217;ve seen nonprofits go live with a donation form that silently dropped submissions. Nobody knew for two weeks. Those were real donors who tried to give and got nothing back.<\/p>\n    <p>Run a broken link crawl. Page slugs shift late in builds more often than you&#8217;d expect, and a link that was correct in week six can quietly break by week ten. Screaming Frog will find them in minutes; fixing them takes seconds.<\/p>\n    <p>If your timeline allows it: do a quiet, unannounced go-live a few days early. Turn the site on, tell nobody publicly, and just watch. Real visitors behave in ways your QA team won&#8217;t predict. A redirect that worked fine in staging may behave differently on the live domain. A form that worked in Chrome may silently break on iOS Safari. Fix what you find. Then announce when it&#8217;s actually ready.<\/p>\n  <\/div>\n\n  <div class=\"cd-callout cd-callout--purple\">\n    <div class=\"cd-callout__icon\">\u267f<\/div>\n    <div class=\"cd-callout__text\"><strong>Accessibility matters more than ever:<\/strong> 22% of nonprofits still have websites that aren&#8217;t accessible for users with visual or hearing disabilities. That&#8217;s a significant part of your audience excluded from your mission, with growing legal risk on top of it. See our guide on <a href=\"https:\/\/circulardesign.io\/why-accessible-web-design-is-essential-in-2025\/\">why accessible web design is essential<\/a>.<\/div>\n  <\/div>\n\n  <hr class=\"cd-divider\">\n\n  <h2 id=\"phase4\">Phase 4: Pre-Launch Marketing \u2014 Build the Story First<\/h2>\n\n  <p>Most organisations treat a website launch as a moment. They finish the build, flip it live, post &#8220;We&#8217;re thrilled to share our new website!&#8221; and then feel slightly deflated when the traffic doesn&#8217;t pour in. The ones who see real results treat the launch as the end of a story they&#8217;ve been telling for weeks, not the start of an announcement.<\/p>\n\n  <figure style=\"margin: 28px 0;\">\n    <img decoding=\"async\"\n      src=\"https:\/\/circulardesign.io\/wp-content\/uploads\/2026\/04\/Launch-Announcement.jpg\"\n      alt=\"Social media planning for a website launch campaign \u2014 creating pre-launch buzz and excitement for a nonprofit's new website\"\n      width=\"760\" height=\"380\"\n      style=\"width:100%;object-fit:cover;\"\n      loading=\"lazy\"\n    >\n    <figcaption style=\"font-size:13px;color:#777;text-align:center;margin-top:8px;\">\n      The launch announcement should feel like a conclusion, not an interruption.\n    <\/figcaption>\n  <\/figure>\n\n  <div class=\"cd-phase\">\n    <div class=\"cd-phase__badge\">Email &#038; Social<\/div>\n    <div class=\"cd-phase-num\">\ud83d\udce3<\/div>\n    <h3>Email Campaigns, Social Teasers &#038; Stakeholder Outreach<\/h3>\n    <span class=\"cd-phase__tag cd-phase__tag--teal\">\ud83d\udfe2 Start 3\u20134 Weeks Before Launch<\/span>\n    <p>Your email list will drive more actual traffic on launch day than any social post. Start warming it up three or four weeks before go-live \u2014 not with vague teaser copy, but with something genuinely worth reading. What problem is the new site solving? What can supporters do there that they couldn&#8217;t before? Give people a reason to care before you ask them to click.<\/p>\n    <p>On social media, behind-the-scenes content tends to land better than polished launch graphics. A photo from a team review session, a brief thread about what you changed and why, a short video walking through the new donation flow \u2014 these feel real in a way that countdown timers don&#8217;t. Your audience is more interested in the story of why you rebuilt than in the reveal itself.<\/p>\n    <p>The tactic most nonprofits overlook: personally emailing your top 20 donors or key funders two days before go-live. Not through your newsletter tool \u2014 an actual individual email that says you wanted them to see it before everyone else. Those people feel involved. They share it because they feel ownership over it, not just because you asked them to. One personal email to the right person is worth more than a week of scheduled posts. For the full campaign playbook, see our guide to <a href=\"https:\/\/circulardesign.io\/7-website-launch-campaign-ideas\/\">creative launch campaigns<\/a>.<\/p>\n  <\/div>\n\n  <div class=\"cd-callout cd-callout--teal\">\n    <div class=\"cd-callout__icon\">\ud83d\udccb<\/div>\n    <div class=\"cd-callout__text\"><strong>Brief your whole team first.<\/strong> Staff, volunteers, board members \u2014 everyone who might post about it, share it, or field questions about it. The worst launch day moment is a well-meaning volunteer sharing the old URL because nobody looped them in.<\/div>\n  <\/div>\n\n  <hr class=\"cd-divider\">\n\n  <h2 id=\"phase5\">Phase 5: Launch Day \u2014 Running Your Go-Live Checklist Without Panicking<\/h2>\n\n  <p>If the previous four phases went properly, launch day should feel almost boring. The site is tested. The redirects are set. The campaign is scheduled. What&#8217;s left is doing things in the right order and paying close attention for a few hours. That&#8217;s all it should be.<\/p>\n\n  <div class=\"cd-phase\">\n    <div class=\"cd-phase__badge\">Go-Live<\/div>\n    <div class=\"cd-phase-num\">\ud83d\ude80<\/div>\n    <h3>Going Live, Checking Everything, and Watching the Data<\/h3>\n    <span class=\"cd-phase__tag cd-phase__tag--teal\">\ud83d\udfe2 Tuesday or Wednesday Morning is Best<\/span>\n    <p>Midweek mornings are consistently the best launch window. You get a full working day to catch and fix anything unexpected, your team is available, and you&#8217;re not competing with Monday&#8217;s inbox backlog. Fridays are genuinely bad \u2014 anything that breaks will ruin your weekend and is harder to fix with a skeleton team.<\/p>\n    <p>Once the domain is pointing to the new site, run through your checklist before you tell anyone. SSL active. Sitemap resolving. All three of your most critical user journeys \u2014 donation, sign-up, and contact \u2014 tested on an actual phone, not a desktop browser. Only once those pass do you send the email and post on social.<\/p>\n    <p>Then keep GA4 open in a tab. A spike in 404 errors in the first hour means a redirect didn&#8217;t carry over from staging to production. A page where session duration drops sharply compared to your staging baseline suggests something broke in the transfer. These things are easy to fix in the first hour. They&#8217;re much harder to diagnose two weeks later when you can&#8217;t remember what the staging version looked like.<\/p>\n    <p>Send the announcement, give the team the green light, and then stay at your desk. Celebrate later \u2014 once the afternoon data confirms nothing is on fire.<\/p>\n  <\/div>\n\n  <blockquote>\n    <p>&#8220;The launches I&#8217;ve seen go wrong are almost always ones where someone made a &#8216;quick&#8217; change the evening before go-live. Freeze everything at least 24 hours out. If something genuinely has to change, test it in staging first and make the call as a team \u2014 not alone at 11pm.&#8221;<\/p>\n    <cite>\u2014 Jacob Warn, Co-Director, Circular Design<\/cite>\n  <\/blockquote>\n\n  <hr class=\"cd-divider\">\n\n  <h2 id=\"phase6\">Phase 6: Post-Launch Optimisation \u2014 Where the Real Work Starts<\/h2>\n\n  <p>Everyone focuses on the launch. Fewer people focus on what comes after. That&#8217;s where most of the long-term value either gets built or quietly disappears.<\/p>\n\n  <p>The team is tired after a launch \u2014 understandably so. But the data you collect in the first four weeks is the most honest signal you&#8217;ll ever get about how your site actually performs. Real visitors, finding your site through search or a link, with no foreknowledge of how it works. That behaviour tells you more than any internal review ever will. Don&#8217;t sleep through it.<\/p>\n\n  <figure style=\"margin: 28px 0;\">\n    <img decoding=\"async\"\n      src=\"https:\/\/circulardesign.io\/wp-content\/uploads\/2026\/04\/Visitors-Dashboard.jpg\"\n      alt=\"Reviewing Google Analytics 4 post-launch data and website performance metrics to optimise a nonprofit website after launch\"\n      width=\"760\" height=\"380\"\n      style=\"width:100%;object-fit:cover;\"\n      loading=\"lazy\"\n    >\n    <figcaption style=\"font-size:13px;color:#777;text-align:center;margin-top:8px;\">\n      The first month of real visitor data is more honest than any internal review.\n    <\/figcaption>\n  <\/figure>\n\n  <div class=\"cd-phase\">\n    <div class=\"cd-phase__badge\">Week 1\u20134 After Launch<\/div>\n    <div class=\"cd-phase-num\">\ud83d\udcc8<\/div>\n    <h3>Performance Analysis &#038; User Feedback<\/h3>\n    <span class=\"cd-phase__tag cd-phase__tag--teal\">\ud83d\udfe2 Start Immediately<\/span>\n    <p>In GA4, your first job is finding the pages where people arrive and leave without doing anything. High traffic, high exit rate \u2014 that combination tells you the page promised something it didn&#8217;t deliver. That&#8217;s your first list of things to fix.<\/p>\n    <p>Within the first month, watch five to ten real people use the site \u2014 not colleagues, not board members who&#8217;ve been in every review meeting, but actual potential supporters who&#8217;ve never seen it. Ask them to complete a specific task. Make a donation. Find this month&#8217;s impact update. Sign up to volunteer. Then sit on your hands and just watch. Every pause, every back-button, every confused scroll is telling you something your data can&#8217;t. Where they hesitate is exactly where you need to improve.<\/p>\n    <p>Check Search Console every week for the first month. Pages that still haven&#8217;t been indexed after two or three weeks need attention \u2014 it&#8217;s usually a robots.txt configuration that didn&#8217;t update when you switched from staging to live, or a redirect loop that snuck through testing.<\/p>\n  <\/div>\n\n  <div class=\"cd-phase\">\n    <div class=\"cd-phase__badge\">Month 2 Onwards<\/div>\n    <div class=\"cd-phase-num\">\ud83d\udd04<\/div>\n    <h3>Ongoing SEO, A\/B Testing &#038; Security Monitoring<\/h3>\n    <span class=\"cd-phase__tag cd-phase__tag--purple\">\ud83d\udfe3 Build a Rhythm<\/span>\n    <p>Ongoing SEO is not a set-and-forget task. It&#8217;s publishing new content, linking it back to existing pages, and tracking keyword positions monthly. It also means not letting the technical foundation erode: plugin updates once a month, broken link checks once a quarter, and a Core Web Vitals check every six months. Pages get heavier over time as things get added \u2014 it takes active effort to keep scores where they should be.<\/p>\n    <p>A\/B testing doesn&#8217;t need to be sophisticated. Change one thing at a time and run it for three to four weeks before deciding whether it worked. The headline on your donation page. The position of your volunteer CTA. The image on your homepage. Small gains, repeated consistently over 12 months, add up to results that feel significant by the end of the year.<\/p>\n    <p>Security tends to be the thing that nobody thinks about until something breaks. Most WordPress vulnerabilities don&#8217;t come from dramatic attacks \u2014 they come from a plugin that hasn&#8217;t been updated in three months and now has a publicly known exploit. A <a href=\"https:\/\/circulardesign.io\/services\/care-plans\/\">website care plan<\/a> with monthly updates, daily backups, and uptime alerts removes this from your team&#8217;s plate entirely. It&#8217;s the kind of thing that costs almost nothing until you need it \u2014 and then it&#8217;s worth everything.<\/p>\n  <\/div>\n\n  <div class=\"cd-inline-cta\">\n    <div class=\"cd-inline-cta__text\">\ud83d\udd0d Not sure where your current site stands? Get a free audit from our team \u2014 we&#8217;ll look at your SEO, performance, carbon footprint, and accessibility in one go.<\/div>\n    <a class=\"cd-inline-cta__btn\" href=\"https:\/\/circulardesign.io\/free-website-audit\/\">Get free audit \u2192<\/a>\n  <\/div>\n\n  <hr class=\"cd-divider\">\n\n\n  <hr class=\"cd-divider\">\n\n  <h2 id=\"mistakes\">5 Website Launch Mistakes That Nonprofits Make Again and Again<\/h2>\n\n  <p>These aren&#8217;t theoretical edge cases. They&#8217;re the same five things I see on almost every first call from an organisation whose launch didn&#8217;t go the way they hoped.<\/p>\n\n  <div class=\"cd-phase\">\n    <div class=\"cd-phase__badge\">Mistake 1<\/div>\n    <div class=\"cd-phase-num\">\u274c<\/div>\n    <h3>Treating the Redirect Map as Optional<\/h3>\n    <span class=\"cd-phase__tag cd-phase__tag--amber\">\ud83d\udfe1 Affects SEO for months<\/span>\n    <p>When you move from an old site to a new one, every URL that Google has indexed needs to point to its new equivalent via a 301 redirect. Miss this, and you don&#8217;t just get 404 errors \u2014 you lose whatever ranking authority those pages had built up over months or years. We&#8217;ve seen nonprofits lose 60% of their organic traffic in the first week after launch purely because nobody mapped the redirects beforehand.<\/p>\n    <p>The fix is simple: export your current URLs from Google Search Console before the build starts, map every one to its new URL, implement the redirects in staging, and verify them with Screaming Frog before you go live. It takes half a day and saves weeks of recovery work.<\/p>\n  <\/div>\n\n  <div class=\"cd-phase\">\n    <div class=\"cd-phase__badge\">Mistake 2<\/div>\n    <div class=\"cd-phase-num\">\u274c<\/div>\n    <h3>Launching Before the Analytics Are Ready<\/h3>\n    <span class=\"cd-phase__tag cd-phase__tag--amber\">\ud83d\udfe1 You lose data you can never get back<\/span>\n    <p>GA4 and Google Search Console should be set up and verified on your staging environment, not installed in the week after launch when you&#8217;re busy with everything else. Every visitor who lands on your site before tracking is live is a data point you&#8217;ll never recover. For a nonprofit trying to demonstrate impact to funders, that gap in your baseline data is genuinely painful.<\/p>\n    <p>Set up GA4 events for your most important actions \u2014 donation form submission, volunteer sign-up, newsletter subscribe \u2014 before launch day. That way your first week of live data is actually useful, not just a record of people visiting pages you can&#8217;t attribute to anything.<\/p>\n  <\/div>\n\n  <div class=\"cd-phase\">\n    <div class=\"cd-phase__badge\">Mistake 3<\/div>\n    <div class=\"cd-phase-num\">\u274c<\/div>\n    <h3>Migrating Everything Instead of Auditing First<\/h3>\n    <span class=\"cd-phase__tag cd-phase__tag--amber\">\ud83d\udfe1 Creates long-term maintenance debt<\/span>\n    <p>The average nonprofit website we work with has between 60 and 120 pages when we first audit it. After a proper content audit, the number that actually earns traffic or serves a clear purpose is usually closer to 30. The other half are event pages from 2019, blog posts that were never read, staff profiles for people who left years ago.<\/p>\n    <p>Migrating all of it onto a new site doesn&#8217;t just slow you down during the build \u2014 it saddles you with maintaining low-quality pages indefinitely. Instead: keep what performs, improve what has potential, and delete or consolidate everything else with appropriate redirects. A smaller, better site outranks a large, mediocre one every time.<\/p>\n  <\/div>\n\n  <div class=\"cd-phase\">\n    <div class=\"cd-phase__badge\">Mistake 4<\/div>\n    <div class=\"cd-phase-num\">\u274c<\/div>\n    <h3>Skipping the Soft Launch<\/h3>\n    <span class=\"cd-phase__tag cd-phase__tag--teal\">\ud83d\udfe2 Easy to fix if you build it in<\/span>\n    <p>A soft launch means switching the site on \u2014 pointing the domain to the new server \u2014 without publicly announcing it. You let real traffic trickle in for three to five days, watch how the site actually behaves under real conditions, and fix what you find. Then you announce.<\/p>\n    <p>This catches things no QA process ever catches: a form that works in Chrome but silently fails on an older Android browser, a redirect that worked in staging but breaks on the live domain, a hero image that loads slowly on a 4G connection. The soft launch is free insurance, and almost nobody uses it.<\/p>\n  <\/div>\n\n  <div class=\"cd-phase\">\n    <div class=\"cd-phase__badge\">Mistake 5<\/div>\n    <div class=\"cd-phase-num\">\u274c<\/div>\n    <h3>No Plan for the First 30 Days After Launch<\/h3>\n    <span class=\"cd-phase__tag cd-phase__tag--purple\">\ud83d\udfe3 Where long-term performance is decided<\/span>\n    <p>The launch gets all the attention. The 30 days after get almost none. But the data you collect in the first month post-launch is the most honest signal you&#8217;ll ever see about how your site actually performs with people who didn&#8217;t build it. High exit rates on your donation page. A navigation element that confuses mobile users. A search term bringing people to a page that doesn&#8217;t answer their question.<\/p>\n    <p>Block time in week two to review your GA4 data with fresh eyes. Schedule a quick usability session with three or four real supporters. Set up Search Console to alert you to any indexing issues. The fixes you make in the first 30 days will compound for months. The ones you ignore become permanent problems.<\/p>\n  <\/div>\n\n  <hr class=\"cd-divider\">\n\n  <h2 id=\"budget\">Website Launch Budget: What Nonprofits Actually Need to Plan For<\/h2>\n\n  <p>Budget conversations almost always focus on design and development. The rest \u2014 hosting, plugins, testing tools, post-launch care \u2014 gets treated as an afterthought and then causes problems when the money runs out. Here&#8217;s what a realistic <strong>website launch plan<\/strong> budget actually looks like for a small-to-medium nonprofit.<\/p>\n\n  <div class=\"cd-table-wrap\">\n    <table class=\"cd-table\">\n      <thead>\n        <tr>\n          <th>Budget Category<\/th>\n          <th>What It Covers<\/th>\n          <th>Typical Range (Annual)<\/th>\n          <th>Priority<\/th>\n        <\/tr>\n      <\/thead>\n      <tbody>\n        <tr>\n          <td><strong>Design &#038; Build<\/strong><\/td>\n          <td>Custom WordPress design, development, mobile optimisation<\/td>\n          <td>\u00a33,000 \u2013 \u00a315,000+<\/td>\n          <td><span class=\"badge badge--red\">Core<\/span><\/td>\n        <\/tr>\n        <tr>\n          <td><strong>Green Hosting<\/strong><\/td>\n          <td>Managed WordPress hosting on renewable energy servers<\/td>\n          <td>\u00a3200 \u2013 \u00a3600\/yr<\/td>\n          <td><span class=\"badge badge--red\">Core<\/span><\/td>\n        <\/tr>\n        <tr>\n          <td><strong>SSL Certificate<\/strong><\/td>\n          <td>HTTPS security (often included with hosting)<\/td>\n          <td>Free \u2013 \u00a380\/yr<\/td>\n          <td><span class=\"badge badge--red\">Core<\/span><\/td>\n        <\/tr>\n        <tr>\n          <td><strong>SEO Plugin<\/strong><\/td>\n          <td>Yoast SEO Premium or Rank Math Pro for schema, sitemaps, meta<\/td>\n          <td>\u00a380 \u2013 \u00a3120\/yr<\/td>\n          <td><span class=\"badge badge--amber\">High<\/span><\/td>\n        <\/tr>\n        <tr>\n          <td><strong>Image Optimisation<\/strong><\/td>\n          <td>ShortPixel, Imagify, or similar for WebP conversion + compression<\/td>\n          <td>Free \u2013 \u00a380\/yr<\/td>\n          <td><span class=\"badge badge--amber\">High<\/span><\/td>\n        <\/tr>\n        <tr>\n          <td><strong>Accessibility Audit<\/strong><\/td>\n          <td>WCAG 2.2 AA compliance review and fix recommendations<\/td>\n          <td>\u00a3300 \u2013 \u00a31,200 one-off<\/td>\n          <td><span class=\"badge badge--amber\">High<\/span><\/td>\n        <\/tr>\n        <tr>\n          <td><strong>Analytics (GA4)<\/strong><\/td>\n          <td>Google Analytics 4 + Search Console setup and event tracking<\/td>\n          <td>Free (setup cost only)<\/td>\n          <td><span class=\"badge badge--red\">Core<\/span><\/td>\n        <\/tr>\n        <tr>\n          <td><strong>Copywriting<\/strong><\/td>\n          <td>Professional copy for homepage, about, services pages<\/td>\n          <td>\u00a3500 \u2013 \u00a33,000 one-off<\/td>\n          <td><span class=\"badge badge--amber\">High<\/span><\/td>\n        <\/tr>\n        <tr>\n          <td><strong>Photography<\/strong><\/td>\n          <td>Professional photos of team, work, beneficiaries<\/td>\n          <td>\u00a3400 \u2013 \u00a31,500 one-off<\/td>\n          <td><span class=\"badge badge--amber\">High<\/span><\/td>\n        <\/tr>\n        <tr>\n          <td><strong>Care Plan \/ Maintenance<\/strong><\/td>\n          <td>Monthly updates, backups, security, uptime monitoring<\/td>\n          <td>\u00a3600 \u2013 \u00a32,400\/yr<\/td>\n          <td><span class=\"badge badge--red\">Core<\/span><\/td>\n        <\/tr>\n      <\/tbody>\n    <\/table>\n  <\/div>\n\n  <div class=\"cd-callout cd-callout--teal\">\n    <div class=\"cd-callout__icon\">\ud83d\udca1<\/div>\n    <div class=\"cd-callout__text\"><strong>For nonprofits:<\/strong> Circular Design offers up to 20% discount on all web design and care plan services for purpose-driven organisations. We also build accessibility and carbon-negative hosting into every project as standard, not as extras. <a href=\"https:\/\/circulardesign.io\/contact\/\">Talk to us about your budget \u2192<\/a><\/div>\n  <\/div>\n\n  <div id=\"checklist\" class=\"cd-checklist\">\n    <h3>\u2705 Your Complete Website Launch Checklist<\/h3>\n    <p>Click each item as you complete it \u2014 progress saves within this session.<\/p>\n    <div class=\"cd-checklist__items\" id=\"checklistItems\">\n\n      <div class=\"cd-checklist__section-label\">Phase 1: Planning<\/div>\n      <div class=\"cd-checklist__item\" data-checked=\"false\">\n        <div class=\"cd-checklist__box\"><\/div>\n        <div class=\"cd-checklist__label\">Define SMART launch goals and measurable KPIs<\/div>\n      <\/div>\n      <div class=\"cd-checklist__item\" data-checked=\"false\">\n        <div class=\"cd-checklist__box\"><\/div>\n        <div class=\"cd-checklist__label\">Research target audience and create 2\u20133 audience profiles<\/div>\n      <\/div>\n      <div class=\"cd-checklist__item\" data-checked=\"false\">\n        <div class=\"cd-checklist__box\"><\/div>\n        <div class=\"cd-checklist__label\">Conduct competitor analysis (3\u20135 competitors, full content audit)<\/div>\n      <\/div>\n      <div class=\"cd-checklist__item\" data-checked=\"false\">\n        <div class=\"cd-checklist__box\"><\/div>\n        <div class=\"cd-checklist__label\">Complete content strategy: audit existing pages, plan new content<\/div>\n      <\/div>\n      <div class=\"cd-checklist__item\" data-checked=\"false\">\n        <div class=\"cd-checklist__box\"><\/div>\n        <div class=\"cd-checklist__label\">Plan and confirm hosting, domain, CMS, and budget allocation<\/div>\n      <\/div>\n\n      <div class=\"cd-checklist__section-label\">Phase 2: Technical &#038; SEO<\/div>\n      <div class=\"cd-checklist__item\" data-checked=\"false\">\n        <div class=\"cd-checklist__box\"><\/div>\n        <div class=\"cd-checklist__label\">Domain registered\/transferred and DNS configured<\/div>\n      <\/div>\n      <div class=\"cd-checklist__item\" data-checked=\"false\">\n        <div class=\"cd-checklist__box\"><\/div>\n        <div class=\"cd-checklist__label\">Green hosting configured and SSL certificate installed<\/div>\n      <\/div>\n      <div class=\"cd-checklist__item\" data-checked=\"false\">\n        <div class=\"cd-checklist__box\"><\/div>\n        <div class=\"cd-checklist__label\">Google Analytics 4 and Search Console connected and tested<\/div>\n      <\/div>\n      <div class=\"cd-checklist__item\" data-checked=\"false\">\n        <div class=\"cd-checklist__box\"><\/div>\n        <div class=\"cd-checklist__label\">XML sitemap created and ready for submission<\/div>\n      <\/div>\n      <div class=\"cd-checklist__item\" data-checked=\"false\">\n        <div class=\"cd-checklist__box\"><\/div>\n        <div class=\"cd-checklist__label\">robots.txt configured (staging blocked, production open)<\/div>\n      <\/div>\n      <div class=\"cd-checklist__item\" data-checked=\"false\">\n        <div class=\"cd-checklist__box\"><\/div>\n        <div class=\"cd-checklist__label\">301 redirects mapped and tested (if migrating from old site)<\/div>\n      <\/div>\n      <div class=\"cd-checklist__item\" data-checked=\"false\">\n        <div class=\"cd-checklist__box\"><\/div>\n        <div class=\"cd-checklist__label\">Schema markup implemented (Organisation, Article, FAQ, Breadcrumb)<\/div>\n      <\/div>\n      <div class=\"cd-checklist__item\" data-checked=\"false\">\n        <div class=\"cd-checklist__box\"><\/div>\n        <div class=\"cd-checklist__label\">Core Web Vitals passing (LCP &lt;2.5s, CLS &lt;0.1, INP &lt;200ms)<\/div>\n      <\/div>\n      <div class=\"cd-checklist__item\" data-checked=\"false\">\n        <div class=\"cd-checklist__box\"><\/div>\n        <div class=\"cd-checklist__label\">Meta titles and descriptions set for all key pages<\/div>\n      <\/div>\n\n      <div class=\"cd-checklist__section-label\">Phase 3: Content &#038; QA<\/div>\n      <div class=\"cd-checklist__item\" data-checked=\"false\">\n        <div class=\"cd-checklist__box\"><\/div>\n        <div class=\"cd-checklist__label\">All images converted to WebP, resized, and alt text added<\/div>\n      <\/div>\n      <div class=\"cd-checklist__item\" data-checked=\"false\">\n        <div class=\"cd-checklist__box\"><\/div>\n        <div class=\"cd-checklist__label\">Internal linking structure reviewed \u2014 no orphan pages<\/div>\n      <\/div>\n      <div class=\"cd-checklist__item\" data-checked=\"false\">\n        <div class=\"cd-checklist__box\"><\/div>\n        <div class=\"cd-checklist__label\">Mobile responsiveness tested on real devices<\/div>\n      <\/div>\n      <div class=\"cd-checklist__item\" data-checked=\"false\">\n        <div class=\"cd-checklist__box\"><\/div>\n        <div class=\"cd-checklist__label\">Cross-browser testing completed (Chrome, Safari, Firefox, Edge)<\/div>\n      <\/div>\n      <div class=\"cd-checklist__item\" data-checked=\"false\">\n        <div class=\"cd-checklist__box\"><\/div>\n        <div class=\"cd-checklist__label\">Accessibility audit passed (WCAG 2.2 Level AA)<\/div>\n      <\/div>\n      <div class=\"cd-checklist__item\" data-checked=\"false\">\n        <div class=\"cd-checklist__box\"><\/div>\n        <div class=\"cd-checklist__label\">All forms tested \u2014 valid and invalid submissions checked<\/div>\n      <\/div>\n      <div class=\"cd-checklist__item\" data-checked=\"false\">\n        <div class=\"cd-checklist__box\"><\/div>\n        <div class=\"cd-checklist__label\">Broken link check completed with zero errors<\/div>\n      <\/div>\n\n      <div class=\"cd-checklist__section-label\">Phase 4: Marketing<\/div>\n      <div class=\"cd-checklist__item\" data-checked=\"false\">\n        <div class=\"cd-checklist__box\"><\/div>\n        <div class=\"cd-checklist__label\">Launch email sequence drafted and scheduled<\/div>\n      <\/div>\n      <div class=\"cd-checklist__item\" data-checked=\"false\">\n        <div class=\"cd-checklist__box\"><\/div>\n        <div class=\"cd-checklist__label\">Social media teasers scheduled for the week before launch<\/div>\n      <\/div>\n      <div class=\"cd-checklist__item\" data-checked=\"false\">\n        <div class=\"cd-checklist__box\"><\/div>\n        <div class=\"cd-checklist__label\">Key stakeholders personally notified before public announcement<\/div>\n      <\/div>\n      <div class=\"cd-checklist__item\" data-checked=\"false\">\n        <div class=\"cd-checklist__box\"><\/div>\n        <div class=\"cd-checklist__label\">Internal team briefed on launch messaging and key dates<\/div>\n      <\/div>\n\n      <div class=\"cd-checklist__section-label\">Phase 5: Launch Day<\/div>\n      <div class=\"cd-checklist__item\" data-checked=\"false\">\n        <div class=\"cd-checklist__box\"><\/div>\n        <div class=\"cd-checklist__label\">Domain resolving to new site, SSL active<\/div>\n      <\/div>\n      <div class=\"cd-checklist__item\" data-checked=\"false\">\n        <div class=\"cd-checklist__box\"><\/div>\n        <div class=\"cd-checklist__label\">Sitemap submitted to Google Search Console<\/div>\n      <\/div>\n      <div class=\"cd-checklist__item\" data-checked=\"false\">\n        <div class=\"cd-checklist__box\"><\/div>\n        <div class=\"cd-checklist__label\">All critical user journeys tested on live site<\/div>\n      <\/div>\n      <div class=\"cd-checklist__item\" data-checked=\"false\">\n        <div class=\"cd-checklist__box\"><\/div>\n        <div class=\"cd-checklist__label\">Launch email sent, social media posts published<\/div>\n      <\/div>\n      <div class=\"cd-checklist__item\" data-checked=\"false\">\n        <div class=\"cd-checklist__box\"><\/div>\n        <div class=\"cd-checklist__label\">Real-time GA4 monitoring active for first 4 hours post-launch<\/div>\n      <\/div>\n\n      <div class=\"cd-checklist__section-label\">Phase 6: Post-Launch<\/div>\n      <div class=\"cd-checklist__item\" data-checked=\"false\">\n        <div class=\"cd-checklist__box\"><\/div>\n        <div class=\"cd-checklist__label\">GA4 performance review completed in first week<\/div>\n      <\/div>\n      <div class=\"cd-checklist__item\" data-checked=\"false\">\n        <div class=\"cd-checklist__box\"><\/div>\n        <div class=\"cd-checklist__label\">Usability testing with 5\u201310 real users (within first month)<\/div>\n      <\/div>\n      <div class=\"cd-checklist__item\" data-checked=\"false\">\n        <div class=\"cd-checklist__box\"><\/div>\n        <div class=\"cd-checklist__label\">Search Console crawl errors reviewed and resolved<\/div>\n      <\/div>\n      <div class=\"cd-checklist__item\" data-checked=\"false\">\n        <div class=\"cd-checklist__box\"><\/div>\n        <div class=\"cd-checklist__label\">Website care plan and security monitoring in place<\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"cd-checklist__progress\">\n      <span id=\"checklistText\">0 of 33 completed<\/span>\n      <div class=\"cd-checklist__bar\"><div class=\"cd-checklist__fill\" id=\"checklistFill\"><\/div><\/div>\n    <\/div>\n  <\/div>\n\n  <hr class=\"cd-divider\">\n\n  <h2>Why a Proper Launch Plan Matters Especially for Nonprofits<\/h2>\n\n  <p>There&#8217;s a particular kind of pressure that comes with a nonprofit website launch. You&#8217;re not selling a product someone can return. You&#8217;re representing a mission \u2014 one that real people have chosen to spend their evenings volunteering for, or their monthly giving budget on. When the site doesn&#8217;t work properly, it&#8217;s not just a UX issue. It chips away at the trust that everything else in your organisation has worked to build.<\/p>\n\n  <p>Donors and funders form a first impression from your website in roughly 50 milliseconds. That&#8217;s not a metaphor \u2014 it&#8217;s what the research shows. In that time they&#8217;ve already decided whether you look credible and whether this organisation seems like the real thing. A slow homepage, a broken link, a form that doesn&#8217;t respond. These aren&#8217;t technical details. They&#8217;re trust signals. And once trust is gone from a first visit, most people don&#8217;t give it a second.<\/p>\n\n  <p>A solid <strong>website launch plan<\/strong> isn&#8217;t about perfection. It&#8217;s about making sure the site actually does its job from the moment it goes live: the donation form works, the page loads before the visitor loses patience, the impact report can be found without calling someone. Those are basic expectations your audience brings with them. Meeting them shouldn&#8217;t require luck.<\/p>\n\n  <div class=\"cd-callout cd-callout--teal\">\n    <div class=\"cd-callout__icon\">\ud83c\udf0d<\/div>\n    <div class=\"cd-callout__text\"><strong>How we do this at Circular Design:<\/strong> Every site we launch includes a pre-launch technical audit, 30 days of post-launch monitoring, and hosting on 100% renewable energy. Accessibility and Core Web Vitals compliance are part of the standard build \u2014 not bolt-ons you pay extra for. <a href=\"https:\/\/circulardesign.io\/services\/web-design\/\">See how we work with nonprofits \u2192<\/a><\/div>\n  <\/div>\n\n  <div class=\"cd-cta\">\n    <h2>Want Help Getting Your Launch Right?<\/h2>\n    <p>We build accessible, carbon-negative WordPress websites for nonprofits and charities \u2014 with up to 20% discount for purpose-driven organisations.<\/p>\n    <a href=\"https:\/\/circulardesign.io\/contact\/\" class=\"cd-btn\">Work with Circular Design<\/a>\n    <a href=\"https:\/\/circulardesign.io\/services\/web-design\/\" class=\"cd-btn cd-btn--ghost\">See our web design services<\/a>\n  <\/div>\n\n  <div class=\"cd-faq\" id=\"faq\">\n    <h2>Frequently Asked Questions<\/h2>\n\n    <div class=\"cd-faq__item\">\n      <button class=\"cd-faq__q\" onclick=\"toggleFaq(this)\" aria-expanded=\"false\">\n        How long does it take to plan and launch a new website?\n        <span class=\"cd-faq__icon\">+<\/span>\n      <\/button>\n      <div class=\"cd-faq__a\">\n        For most small-to-medium nonprofits, a properly planned launch takes between 8 and 16 weeks from initial scoping to go-live. The planning phase alone should take at least two weeks \u2014 less than that and you&#8217;re likely skipping the groundwork that prevents post-launch problems. Sites with large content migrations, custom features, or significant accessibility work tend to sit at the longer end of that range. The pressure to launch quickly is real, but a rushed 8-week build almost always creates 12 weeks of fixes.\n      <\/div>\n    <\/div>\n\n    <div class=\"cd-faq__item\">\n      <button class=\"cd-faq__q\" onclick=\"toggleFaq(this)\" aria-expanded=\"false\">\n        What should a pre-launch website checklist cover?\n        <span class=\"cd-faq__icon\">+<\/span>\n      <\/button>\n      <div class=\"cd-faq__a\">\n        At minimum: SSL certificate installed, GA4 and Search Console connected and tested, XML sitemap created and ready to submit, robots.txt configured to block staging and open on live, 301 redirects set and verified (if migrating), schema markup live, all images in WebP with alt text, mobile responsiveness confirmed on a real device, cross-browser testing done, accessibility checked against WCAG 2.2 Level AA, every form tested with valid and invalid data, broken link crawl completed, and Core Web Vitals passing. The interactive checklist in this article covers all of these in phase order.\n      <\/div>\n    <\/div>\n\n    <div class=\"cd-faq__item\">\n      <button class=\"cd-faq__q\" onclick=\"toggleFaq(this)\" aria-expanded=\"false\">\n        Which phase of the launch strategy matters most?\n        <span class=\"cd-faq__icon\">+<\/span>\n      <\/button>\n      <div class=\"cd-faq__a\">\n        Planning, without question. Not because the other phases don&#8217;t matter \u2014 they do \u2014 but because every decision you get wrong in planning generates multiple problems downstream. Fixing an incorrect redirect before launch takes minutes. Fixing it after launch, when it&#8217;s already affecting your rankings and visitors are seeing 404 errors, takes considerably longer and costs considerably more. The projects I&#8217;ve seen struggle most are almost always the ones where someone pressed go before the goals were clearly defined.\n      <\/div>\n    <\/div>\n\n    <div class=\"cd-faq__item\">\n      <button class=\"cd-faq__q\" onclick=\"toggleFaq(this)\" aria-expanded=\"false\">\n        How do I launch a new site without losing existing SEO rankings?\n        <span class=\"cd-faq__icon\">+<\/span>\n      <\/button>\n      <div class=\"cd-faq__a\">\n        Build your redirect map before a single line of code is written on the new site. Every old URL mapped to its new equivalent, in a spreadsheet, with 301 redirects tested in staging before go-live. Export your current performance data from Google Search Console so you have a baseline to compare against. Crawl the live site with Screaming Frog on launch day to verify every redirect is working. Resubmit your sitemap immediately. Then check Search Console daily for two weeks \u2014 redirect issues that didn&#8217;t show in staging sometimes surface on production.\n      <\/div>\n    <\/div>\n\n    <div class=\"cd-faq__item\">\n      <button class=\"cd-faq__q\" onclick=\"toggleFaq(this)\" aria-expanded=\"false\">\n        What is AEO and why does it matter for launching in 2026?\n        <span class=\"cd-faq__icon\">+<\/span>\n      <\/button>\n      <div class=\"cd-faq__a\">\n        AEO stands for Answer Engine Optimisation \u2014 it&#8217;s about writing and structuring your content so that AI tools like Google AI Overviews, ChatGPT, and Perplexity can understand, summarise, and cite it. In 2026, these tools are answering a significant and growing share of search queries directly, often without the user ever clicking through to a site. If your content isn&#8217;t written in a way that AI can parse and trust \u2014 clear headings, direct answers early, FAQ schema, properly attributed data \u2014 you&#8217;re effectively invisible to that growing segment. Launching with AEO thinking built in from the start is much easier than retrofitting it later.\n      <\/div>\n    <\/div>\n\n    <div class=\"cd-faq__item\">\n      <button class=\"cd-faq__q\" onclick=\"toggleFaq(this)\" aria-expanded=\"false\">\n        Do nonprofits really need a formal website launch strategy?\n        <span class=\"cd-faq__icon\">+<\/span>\n      <\/button>\n      <div class=\"cd-faq__a\">\n        More than most. Your website is often the first \u2014 and sometimes only \u2014 impression a potential donor, volunteer, or funder gets of your organisation. Unlike a commercial business, you don&#8217;t usually have a sales team to recover from a bad first impression. If the site is slow, broken, or confusing, that person may quietly decide your organisation isn&#8217;t quite as professional or trustworthy as they hoped. A launch plan isn&#8217;t bureaucracy \u2014 it&#8217;s the difference between a site that represents your mission accurately from day one, and one you spend six months apologising for.\n      <\/div>\n    <\/div>\n\n  <\/div>\n\n  <div class=\"cd-sources\">\n    <h4>Sources &#038; Methodology<\/h4>\n    <ol>\n      <li>Wholegrain Digital \u2014 Website Carbon Calculator (2025 data). <a href=\"https:\/\/www.websitecarbon.com\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">websitecarbon.com<\/a><\/li>\n      <li>Google \u2014 Core Web Vitals technical documentation. <a href=\"https:\/\/web.dev\/vitals\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">web.dev\/vitals<\/a><\/li>\n      <li>Nonprofit Tech for Good \u2014 2026 Nonprofit Website Statistics Report. <a href=\"https:\/\/www.nptechforgood.com\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">nptechforgood.com<\/a><\/li>\n      <li>IBM Systems Sciences Institute \u2014 Cost of fixing defects across SDLC phases.<\/li>\n      <li>Web FX \u2014 &#8220;94% of consumers&#8217; first impressions are design related&#8221; (2026 survey data).<\/li>\n      <li>Green Web Foundation \u2014 Green Hosting Directory. <a href=\"https:\/\/www.thegreenwebfoundation.org\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">thegreenwebfoundation.org<\/a><\/li>\n      <li>W3C \u2014 Web Content Accessibility Guidelines (WCAG) 2.2. <a href=\"https:\/\/www.w3.org\/WAI\/WCAG22\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">w3.org\/WAI\/WCAG22<\/a><\/li>\n      <li>Circular Design internal project data, 2024\u20132026 nonprofit website launches.<\/li>\n    <\/ol>\n  <\/div>\n\n  <div class=\"cd-nav-links\" style=\"margin-top:36px;\">\n    <h4>Further Reading from Circular Design<\/h4>\n    <ul>\n      <li><a href=\"https:\/\/circulardesign.io\/7-website-launch-campaign-ideas\/\">7 Creative Launch Campaigns for Your New Website<\/a><\/li>\n      <li><a href=\"https:\/\/circulardesign.io\/nonprofit-website-redesign-guide\/\">Nonprofit Website Redesign Guide<\/a><\/li>\n      <li><a href=\"https:\/\/circulardesign.io\/how-to-boost-your-website-traffic-with-seo\/\">How to Boost Your Nonprofit&#8217;s Website Traffic With SEO<\/a><\/li>\n      <li><a href=\"https:\/\/circulardesign.io\/why-accessible-web-design-is-essential-in-2025\/\">Why Accessible Web Design Is Essential in 2025<\/a><\/li>\n      <li><a href=\"https:\/\/circulardesign.io\/web-design-trends-2026-charities-nonprofits\/\">5 Web Design Trends for Charities in 2026<\/a><\/li>\n      <li><a href=\"https:\/\/circulardesign.io\/nonprofit-web-design-best-practices\/\">Nonprofit Web Design Best Practices<\/a><\/li>\n    <\/ul>\n  <\/div>\n\n  <div class=\"cd-author-bio\">\n    <div class=\"cd-author-bio__avatar\">JW<\/div>\n    <div>\n      <div class=\"cd-author-bio__name\">Jacob Warn<\/div>\n      <div class=\"cd-author-bio__role\">Co-Director \u00b7 Circular Design \u00b7 Bristol, UK<\/div>\n      <div class=\"cd-author-bio__desc\">Jacob co-founded Circular Design \u2014 a not-for-profit web agency that builds beautiful, accessible, carbon-negative WordPress websites for charities, nonprofits and purpose-driven organisations. With over a decade of experience in digital strategy and web design for the third sector, Jacob has guided dozens of organisations through website launches, redesigns, and digital transformations. 100% of Circular Design&#8217;s profits are reinvested into social and environmental impact. Circular Design was a finalist at the Social Enterprise Awards 2025.<\/div>\n      <a class=\"cd-author-bio__link\" href=\"https:\/\/www.linkedin.com\/in\/jacobwarn\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Connect on LinkedIn \u2197<\/a>\n    <\/div>\n  <\/div>\n\n<\/div><script>\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   CHECKLIST INTERACTION\n   \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n(function(){\n  var container = document.getElementById('checklistItems');\n  if(!container) return;\n  container.addEventListener('click', function(e){\n    var item = e.target.closest('.cd-checklist__item');\n    if(!item) return;\n    var isChecked = item.getAttribute('data-checked') === 'true';\n    item.setAttribute('data-checked', isChecked ? 'false' : 'true');\n    item.classList.toggle('checked', !isChecked);\n    updateProgress();\n  });\n  function updateProgress(){\n    var items   = container.querySelectorAll('.cd-checklist__item');\n    var checked = container.querySelectorAll('.cd-checklist__item[data-checked=\"true\"]').length;\n    var total   = items.length;\n    var pct     = Math.round((checked \/ total) * 100);\n    document.getElementById('checklistText').textContent = checked + ' of ' + total + ' completed';\n    document.getElementById('checklistFill').style.width = pct + '%';\n  }\n})();\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   FAQ ACCORDION\n   \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\nfunction toggleFaq(btn){\n  var item   = btn.closest('.cd-faq__item');\n  var isOpen = item.classList.contains('open');\n  document.querySelectorAll('.cd-faq__item.open').forEach(function(i){\n    i.classList.remove('open');\n    i.querySelector('.cd-faq__q').setAttribute('aria-expanded','false');\n  });\n  if(!isOpen){\n    item.classList.add('open');\n    btn.setAttribute('aria-expanded','true');\n  }\n}\n<\/script>\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Website Launch Plan: The Complete 2026 Guide for Nonprofits Here&#8217;s a scene I&#8217;ve watched play out more times than I&#8217;d like to admit. An organisation spends four months building a new website. Good team, real effort, genuine excitement. Then launch day arrives. The domain doesn&#8217;t resolve. A form sends submissions to an email address nobody [&hellip;]<\/p>\n","protected":false},"author":14,"featured_media":9003241321087639,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"off","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[40],"tags":[],"class_list":["post-9003241321087637","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-website-strategy"],"_links":{"self":[{"href":"https:\/\/circulardesign.io\/de\/wp-json\/wp\/v2\/posts\/9003241321087637","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/circulardesign.io\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/circulardesign.io\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/circulardesign.io\/de\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/circulardesign.io\/de\/wp-json\/wp\/v2\/comments?post=9003241321087637"}],"version-history":[{"count":0,"href":"https:\/\/circulardesign.io\/de\/wp-json\/wp\/v2\/posts\/9003241321087637\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/circulardesign.io\/de\/wp-json\/wp\/v2\/media\/9003241321087639"}],"wp:attachment":[{"href":"https:\/\/circulardesign.io\/de\/wp-json\/wp\/v2\/media?parent=9003241321087637"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/circulardesign.io\/de\/wp-json\/wp\/v2\/categories?post=9003241321087637"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/circulardesign.io\/de\/wp-json\/wp\/v2\/tags?post=9003241321087637"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}