Playbooks
The launch checklist
Everything that has to be true before a site goes public and in the first week after, in the order it has to happen: the index block, the per-page rules, the redirects, the search consoles, and what to watch.
When do you reach for The launch checklist?
Written for one person launching a site with an AI assistant and no SEO team. It assumes a framework that builds HTML, a host with preview deployments, and a repo the checklist can live in. It is the list this site went live on, and nothing is in it that was not done here.
What does the checklist cover?
Four phases, and the order between them is the point. Before the domain: the site is readable by anyone with the URL and invisible to every crawler. Every page: the set of things each route has to carry, enforced by a script rather than remembered. Launch day: flip, attach, redirect, submit, in that sequence. Week one: the three numbers that say whether any of it worked. The document is a single markdown file that a human reads once and an assistant reads every time it touches a launch.
Why block the index with a header and not a robots line?
A Disallow line asks a crawler not to fetch the page, so it never reads it and never learns it should be left out. A URL somebody links to can end up indexed with nothing but its address. A noindex header on every response is the instruction that keeps a page out, and it covers the sitemap, the card images and the llms.txt as well, which a meta tag in the HTML cannot. So the pre-launch state invites crawlers in and tells each response plainly not to index it. One flag turns that off, and flipping it is a deliberate act on launch day.
Why is the order on launch day fixed?
Because the domain is public the instant it is attached. On this site the preview hosts sat behind the host's authentication, so the custom domain was the first URL a crawler could reach. Attaching it before the flag was flipped would have published a site whose every response said noindex. Attaching it before the pages were finished would have let the first crawl see the gaps. So the flag flips first, the domain lands second, the redirects get verified third, and only then does the sitemap go to Search Console.
Where does the checklist live in a repo?
In docs/launch.md, as one file of its own. Not in CLAUDE.md, for the same reason as every playbook here: that file is read at the start of every session, and a launch list loaded into work on a button component costs context for nothing. Save the block below as the playbook, then add one line to CLAUDE.md: "Launch or domain work: read docs/launch.md first." The launch-check skill does the verifying, the schema audit does the rewriting when the structured data is wrong, and the checklist says when each of them runs.
Which skills does The launch checklist run on?
2 skills, in the order the playbook runs them. Each one has its own page with the block to copy.
- Launch checkRun this against a site before it goes public and it tells you what would stop it being found: a missing description, a redirect that loops, a sitemap that lists a 404.
- Schema markup auditFind out what structured data your site already publishes, one page type at a time, then get the JSON-LD that fixes what is wrong or missing.
What you copy
One block, ready to paste. Nothing else to install unless the block says so.
1# Launch checklist23What has to be true before this site goes public, in the order it has to4happen. Read this file before any launch, domain or indexing work. The order5is part of the rule: the domain is public the instant it is attached.67## Phase 1 - before the domain8The site is readable by a human with the URL and invisible to every crawler.910- [ ] One constant holds the site name and canonical URL. Nothing else in the11 code hardcodes the domain. Canonicals, sitemap, card images, JSON-LD12 ids and utm_source all derive from it13- [ ] A launch flag, off by default. While it is off, middleware puts14 `X-Robots-Tag: noindex, nofollow` on every response, and robots.txt15 allows crawling and advertises no sitemap. Do not use Disallow: a16 crawler that cannot fetch the page never reads the header17- [ ] Every preview and platform host (`*.vercel.app` or equivalent) is18 behind the host's authentication. Share previews with a share link or19 a password, never by opening the production URL20- [ ] The legal pages carry the registered entity, address and contact, and21 the analytics the privacy page describes is the analytics that runs.22 An imprint with placeholder values goes noindex and out of the sitemap23 until it is real2425## Phase 2 - every page earns its place26Each public route carries this set. A script reads the built HTML and fails27the build on any of it, and it runs in CI after the build.2829- [ ] Title: unique across the site, the subject in the first words30- [ ] Description: hand-written, 140-160 characters, repeated nowhere, held31 in its own field. The visible summary is not the description32- [ ] Canonical: absolute, on the canonical origin33- [ ] Exactly one H134- [ ] `og:image`: absolute, returns 200. A real card, on every route35- [ ] JSON-LD: one connected graph. Organization and WebSite declared once36 from the layout; every page below the home has a BreadcrumbList; one37 node's `@id` is the page's own canonical URL; no id defined twice;38 never Review or AggregateRating without real, visible ratings39- [ ] Articles: author is a reference to a Person on an author page, dates40 in the markup match the dates on the page41- [ ] At least one internal link in and one out42- [ ] When a page fails the gate, fix the page. Never widen the rule4344## Phase 3 - the site files come from one list45- [ ] One route registry, derived from the content data. sitemap.xml,46 robots.txt and llms.txt all read from it, so a new entry cannot be47 missing from any of them48- [ ] A check that walks the app directory against the registry, both ways:49 a route file that is neither published nor excluded fails, and a50 registry path with no file behind it fails51- [ ] Routes kept out of the index are listed with the reason, in code52- [ ] Sitemap dates are the day the content changed, never the build time53- [ ] Outbound links go through a redirector: 302, `cache-control:54 no-store`, `x-robots-tag: noindex`, disallowed in robots.txt55- [ ] AI crawlers are allowed or blocked as a decision, named in robots.txt56 with the reason in a comment5758## Phase 4 - launch day, in this order591. Content ready, both gates green on main, canonical host decided (www or60 apex) and set in the constant612. Flip the launch flag in the production environment and redeploy. This is62 a deliberate act, not a default633. Attach the domain644. Verify the host with plain requests: the canonical URL answers 200; the65 twin host, both http variants and every preview host answer 301 or 30866 to it in one hop; no response carries a noindex header; an unknown path67 is a 404; the sitemap is a 200685. Search Console: verify by DNS TXT record, not an HTML file, so it69 survives every redeploy. Submit the sitemap706. Bing Webmaster Tools: import from Search Console. Its index feeds ChatGPT71 search. Add the IndexNow key so new pages are submitted on publish727. Rich Results Test and the Schema.org validator on one URL per page type:73 home, listing, entry, article, author748. Analytics is receiving, and the referrer list is visible7576## Week one77- [ ] Search Console Pages: indexed count against the route count in the78 registry, and the reason given for every excluded URL79- [ ] Search Console Queries: what the site is pulled up for. This is the80 honest read on whether the pages answer real questions81- [ ] Analytics referrers from chatgpt.com, perplexity.ai, claude.ai and82 Gemini, recorded now as the baseline83- [ ] After week one, monthly. Not daily8485## Standing rules86- No slug ever changes without a redirect shipped in the same commit. Keep87 the redirect map next to the content data, and add it before the first88 rename, not after89- The gate script grows when a new kind of gap ships. It never shrinks90- A page that cannot earn a real description has a problem with the page,91 not with the rule92
Free to use in your own work, paid work included, no attribution required. Not for repackaging into a product you sell. Full terms.
More in playbooks
Back to every playbooks entry.