The 100 Step New Site Checklist
This is the real list. Every time I spin up a new site I walk through these in roughly this order. Some happen in seconds (thanks to one-command scripts like add-domain.py), some take an hour, and a few are ongoing rather than day-one tasks. But they all happen. If I skip one I usually regret it a month later.
This is a living document. I add items every time I find a new thing that should have been on here the first time.
The order is not alphabetical. It is a dependency chain. You cannot index a site that is not deployed. You cannot track conversions without analytics wired up. You cannot get traffic from a Google Business Profile that points at a broken homepage. Every phase unblocks the next one.
Here is the short version of the dependency chain: own the name, build the thing, deploy it, get Google to find it, get humans to find it, measure what happens, talk to the humans who arrive, launch your announcement, track conversions, and then maintain forever. The 10 phases below expand that into 100 concrete steps.
Phase 1: Domain and Hosting Foundation (Steps 1-10)
Why this phase is first: nothing else is possible until you own the name and have a home for the code. Buying on Cloudflare Registrar specifically (rather than GoDaddy or Namecheap) is the single biggest time saver on the whole list, because it eliminates the DNS migration step and gives you at-cost pricing forever.
- Buy the domain through Cloudflare Registrar. At-cost pricing, zero markup, zone is Active the moment you check out.
- Confirm the zone is Active in the Cloudflare dashboard. If it is not Active, nothing downstream works.
- Enable Full SSL (strict) under SSL/TLS settings. Anything less is a security foot-gun.
- Turn on Always Use HTTPS. Stops anyone from accidentally hitting the insecure version.
- Turn on Automatic HTTPS Rewrites. Catches mixed-content issues before they bite you.
- Set minimum TLS version to 1.2. Old browsers cannot hurt you on the new site.
- Pick a hosting platform. Cloudflare Pages, Vercel, or Netlify all work. I default to Cloudflare Pages because it is free, fast, and already in the same dashboard.
- Create the GitHub repo as private by default. Make it public later if you want.
- Add a CLAUDE.md to the root. Future AI sessions (yours or Claude Code's) need to know what the project is. This is non-obvious but pays off forever.
- Initialize build.txt with a plain integer build number. Gives you a version marker for every future deploy. Start at 1 and bump on every commit.
Phase 2: Site Build (Steps 11-20)
Why this phase is second: you cannot deploy a site that does not exist. Build the minimum viable version before you get fancy. One page that loads and a working contact form is better than a half-built masterpiece.
- Scaffold the framework (Astro, Next.js, whatever you are fastest in). Speed of iteration matters more than the framework.
- Build the homepage with one clear headline and one primary call to action. If a visitor does not know what you want them to do in three seconds, the page is broken.
- Build an About page. Who you are, why you do this, social proof. People buy from people.
- Build a Services or Products page with pricing. Hiding prices kills trust for local services. Show it unless you have a strategic reason not to.
- Build a Contact page with a real form. Not a mailto link. A form that lands in your CRM.
- Add a Privacy Policy page. Legal requirement in most places, and required for GA4 and ad platforms.
- Add a Terms of Service page. Same reason as Privacy. Do it once and forget about it.
- Create a custom 404 page. Points lost visitors back to useful stuff so they do not bounce.
- Add a favicon and apple-touch-icon. Makes the site look finished in browser tabs and iOS home screens.
- Add a default Open Graph image. The big preview image that shows up when the URL is shared anywhere. First impression matters.
Phase 3: First Deploy (Steps 21-30)
Why this phase is third: the gap between "my site builds locally" and "my site works in production" is where most launches die. Deploy early, deploy often, and test everything before anyone sees it.
- Connect the GitHub repo to your host. Cloudflare Pages auto-deploys on push, which means you never think about deployment again.
- Push the first commit and confirm the build succeeds. If it fails, fix it now, not after you have added 200 files.
- Point the custom domain at the Pages project via a CNAME to yourproject.pages.dev. This is the magic moment where your name points at your site.
- Wait for the TLS certificate to provision. Usually minutes, sometimes an hour. Without it, the browser shows a scary warning and nobody trusts you.
- Load the live URL and click every single link. You will find at least one broken reference. Fix them all before step 71.
- Test the contact form end to end. Submit a real test entry, confirm it lands somewhere you see (email, CRM, Slack, anywhere). A silently broken form is a launch-killer.
- Test mobile view in Chrome DevTools. Fifty to eighty percent of your traffic will be on phones. If it looks bad on mobile, nothing else matters.
- Fix any obvious mobile layout issues. Cut features before launching broken.
- View Source and confirm the title tag and meta description are present and correct. Google reads these before it reads your hero headline.
- Verify the canonical tag points to the correct URL. Prevents duplicate content issues that can tank your rankings later.
Phase 4: Search Engine Indexing (Steps 31-40)
Why this phase is fourth: now that a working site exists at a real URL, tell the search engines about it. The sooner Google can crawl you, the sooner you show up in results. Every day you delay this phase is a day of lost indexing.
- Add the domain to Google Search Console. Use the one-command add-domain.py script. Takes 30 seconds.
- Submit your sitemap.xml in Search Console. Hands Google a map of everything worth crawling.
- Request indexing for the homepage via the URL Inspection tool. Bumps the homepage to the front of Google's queue.
- Add the domain to Bing Webmaster Tools. Bing is small but free traffic is free traffic, especially for older demographics.
- Submit your sitemap to Bing. Same reason as Google.
- Enable IndexNow via Cloudflare. Instant index pings whenever content changes, for every engine that supports IndexNow.
- Add LocalBusiness schema to the homepage if you are a local business. Unlocks rich results in local search.
- Add Organization schema site-wide. Tells Google your brand name, logo, and social profiles in a structured format.
- Add BreadcrumbList schema to inner pages. Gives your search results the gray breadcrumb trail that looks more trustworthy.
- Test your structured data at search.google.com/test/rich-results. Fix any errors before Google caches the broken version.
Phase 5: Business Listings (Steps 41-50)
Why this phase is fifth: Google Business Profile drives an enormous amount of local search traffic. It is its own search surface, separate from organic results. This phase takes an hour total and pays off for years. Do it right after search console so Google sees the profile and the website at the same time.
- Create or claim your Google Business Profile. This is the single most impactful business listing for local companies.
- Add photos, hours, services, and a full description to GBP. Profiles with complete info outrank incomplete ones.
- Post your first GBP update with a real photo (not stock). Fresh posts signal that the business is alive.
- Create a Bing Places for Business listing. Free, takes five minutes, feeds Apple Maps and others.
- Create an Apple Business Connect listing. Shows up in Apple Maps, Siri results, and iPhone search. Nobody else does this and it is free.
- Claim the Yelp business page even if you do not love Yelp. Unclaimed profiles let strangers edit your info.
- Check Better Business Bureau if relevant. BBB rank helps trust for home services and contractors.
- Create the Facebook Business Page. Still the default "does this business exist" check for a lot of people.
- Create the Instagram Business account and link it to Facebook. Required if you ever want to run paid ads.
- Create the LinkedIn company page. Matters more if you sell B2B, still worth doing either way.
Phase 6: Analytics and Monitoring (Steps 51-60)
Why this phase is sixth: you cannot optimize what you do not measure. Set up the measurement layer before you start promoting, so the first day of real traffic is already in your baseline. Too many people launch, promote, and then wonder "how did we do?" without the instruments to answer.
- Turn on Cloudflare Web Analytics. Free, privacy-friendly, no cookie banner required, no performance hit.
- Decide on Google Analytics 4. Add it if you need conversion data beyond what Cloudflare gives you. Otherwise skip and keep the site simpler.
- Set up UptimeRobot or BetterStack for uptime monitoring. You need to know before your customers do.
- Run a PageSpeed Insights baseline on the homepage. Save the score. Every future optimization compares against this number.
- Run PageSpeed Insights on your most important inner page. The homepage usually is not the page that needs to rank the hardest.
- Wire up a daily email digest with yesterday's traffic and top pages. Keeps the site in your head without you having to log in.
- Set up error logging (Sentry or the platform's built-in tracker). Catches JavaScript errors you did not reproduce locally.
- Create alerts for downtime, SSL expiration, and error spikes. Alerts are cheaper than incidents.
- Add the site to your multi-site GSC health audit if you run one. Keeps it on the same dashboard as the rest of your properties.
- Bookmark the live analytics dashboard on your daily-check list.
Phase 7: Email and Communication (Steps 61-70)
Why this phase is seventh: the contact form that already works needs to actually route messages to humans who will respond. Missing this step means your launch announcement drives leads into a black hole. Do this before you tell anyone about the site.
- Set up professional email on the domain (Google Workspace or Fastmail). Nothing says "amateur" like a gmail.com address on your business card.
- Add MX records in Cloudflare DNS. Without these, email does not route at all.
- Add an SPF record. Tells other mail servers which machines are allowed to send mail for your domain. Stops spoofing.
- Add a DKIM record. Cryptographically signs outgoing mail so it does not land in spam.
- Add a DMARC record in monitor mode first. Start with reporting, tighten the policy after you see clean reports.
- Create role-based aliases (hello@, support@, billing@). Gives you professional-looking endpoints without paying for more mailboxes.
- Wire the contact form to your CRM. Every form submission should create a contact record, not just an email. Email gets lost, CRM records do not.
- Set up an auto-responder for form submissions. Leads should never wonder if their message sent.
- Add a welcome email sequence for new signups. Even a two-email sequence beats nothing.
- Test the full email flow by signing up as a fake user and watching what actually arrives.
Phase 8: Social Presence and Launch (Steps 71-80)
Why this phase is eighth: the site is built, deployed, tracked, and reachable. Now tell the world. If you launch to social before Phase 7 is done, your leads arrive into a broken inbox. If you launch before Phase 6, you never know if the announcement worked.
- Write a "we are live" announcement for Facebook. Casual tone, one photo, one link.
- Write a "we are live" post for LinkedIn. Longer, more context, more professional frame.
- Post a launch video or carousel to Instagram. Behind-the-scenes content beats polished corporate posts here.
- Update your personal bios everywhere with the new domain. Twitter, Instagram, LinkedIn, every Slack workspace.
- Add the new site to your email signature. You are about to send a lot of launch-week emails. Free distribution.
- Pin the launch announcement to the top of your Facebook page.
- Tell your existing audience directly (email list, group members, friends). Warm audiences convert best.
- Ask five friends to share it on day one. Earliest signal social algorithms use to decide if a post is interesting.
- Reach out to one local publication or partner for an initial mention. One backlink from a real local source is worth more than a hundred directory listings.
- Post a before/after if you redesigned an old property. Transformation content travels further than "we launched."
Phase 9: Conversion and Lead Tracking (Steps 81-90)
Why this phase is ninth: now that real traffic is arriving, you need to know which sources drive revenue. Setting up tracking after you have data is way harder than setting it up before, because you lose the history. Do it now even if you are not running paid ads yet.
- Install the Facebook Pixel and enable Conversions API for server-side tracking that bypasses ad blockers.
- Add Google Ads conversion tracking even if you are not running ads. Future you will thank current you.
- Set up phone call tracking if phone leads matter. CallRail or the built-in GHL call tracking works.
- Configure form submission events in your analytics platform. Every form submit should fire a named event.
- Define your main conversion event and name it clearly. "lead_submitted" beats "event_17."
- Build a lead scoring system in your CRM so hot leads surface automatically. Not all leads are equal.
- Set up instant SMS or email reply to new inbound leads. Responding in under five minutes doubles your conversion rate in most industries.
- Build a follow-up sequence for leads that do not reply in 24 hours. Most leads need multiple touches.
- Test every conversion path by becoming your own fake lead. If you cannot follow the path without friction, neither can a customer.
- Confirm each tracked event fires in the analytics real-time view before you call tracking "done."
Phase 10: Ongoing Maintenance Cadence (Steps 91-100)
Why this phase is tenth: the launch is not the finish line. Sites die from neglect, not from launch-day mistakes. Build the maintenance rituals into your calendar now, before the launch adrenaline fades.
- Weekly: glance at Search Console for new errors or coverage issues. Catches problems while they are small.
- Weekly: scan Cloudflare analytics for traffic changes worth investigating. Spikes and drops both matter.
- Weekly: check the daily digest for CRM contacts that need attention. Leads go cold fast.
- Monthly: re-run PageSpeed Insights and compare to the baseline you saved in step 54.
- Monthly: audit backlinks via Search Console and note new referrers. Reach out and thank the good ones.
- Monthly: publish one new blog post or update one existing page. Fresh content is the cheapest SEO signal.
- Quarterly: refresh your top-performing pages with updated content and dates. Google rewards recency.
- Quarterly: review your Google Business Profile for new reviews and respond to them. Response rate affects local rank.
- Quarterly: check dependencies. Framework, host, analytics libraries. Run an update pass.
- Forever: add to this checklist every time you find a step you wish was on it.
The Point of the Checklist
Atul Gawande's Checklist Manifesto makes the case that even experts make stupid mistakes when they try to hold a complex workflow in their head. A written checklist is not about distrust of the operator. It is about freeing the operator's brain for the hard parts by mechanizing the easy ones. Pilots do it. Surgeons do it. Launching a site deserves the same treatment.
Every item on this list started as a thing I forgot at some point. Every time I catch a new one, it goes on the list. The list is never done.
If you build a site without one of these steps, nothing will blow up on day one. But a month later, you will be wondering why Search Console has no data, or the contact form has been silently dropping leads, or the Google Business Profile is empty while competitors steal your local searches. The checklist is cheaper than the regret.
See Also
- Got a New Domain? The Day One Search Console Playbook for the one-command version of step 31
- Sixteen Domains Added in Two Minutes for cleaning up domains you already own but never added to GSC
- The Checklist Manifesto for why checklists are the highest-return tool in operations
- Claude Code for turning half the items on this list into one-command scripts
- Google Search Console for the foundation of everything in Phase 4
See Also
Some links in this article are affiliate links. If you purchase through them, we may earn a commission at no extra cost to you. This helps support our content.
This article blends original content, AI-assisted drafting, and human oversight. How I write.
Stay Updated
Get notified when new content is published.
No spam. Unsubscribe anytime.