The Checklist I Wish Every Developer Used Before Shipping a Website

Photo by Jonny Gios
I have launched dozens of websites over 16 years. For clients. For my own businesses. For startups I helped build. And the same problems show up every single time.
Broken redirects. Missing meta tags. Robots.txt blocking Google from indexing the site. No sitemap. No analytics. Pages loading in 8 seconds on mobile because nobody tested.
These are not edge cases. These are the basics. And most developers miss them.
I am not a developer. I am a product owner and operations consultant. But I know exactly what a finished website looks like. I have spent years catching what developers missed before clients saw it.
Now I build with AI tools. Cursor. Claude. Antigravity. The code gets generated in hours. But the checklist does not change. The AI does not know your business context. It does not think about 301 redirects or GDPR compliance unless you tell it to.
Here is the checklist I use for every project. Pin it to your wall. Add it to your AI prompts.
Before You Write a Single Line of Code
Most people skip this. They open Cursor and start prompting. That is like starting construction without a foundation.
| Task | Why it matters |
|---|---|
| Define your URL structure | Write down every page, every route, every slug. Before coding. |
| Export old URLs (if migrating) | Use Screaming Frog or download your old sitemap. Every missing URL = broken Google link. |
| Decide www vs non-www | Pick one. Redirect the other. Both resolving = your SEO splits in half. |
| Set up analytics day one | GTM + GA4 installed before launch, not after. You lose every data point from week one otherwise. |
| Verify Google Search Console | DNS TXT record or GTM verification. Do it now so Google crawls on launch day. |
The SEO Checklist
Every page needs all of these. No exceptions.
Meta and Tags
| Element | Requirement |
|---|---|
| Title tag | Unique, under 60 characters. Not "Home." Something like "Operations Services - Drifting Desk" |
| Meta description | Under 160 characters. Your sales pitch in search results. Blank = Google pulls random page text. |
| H1 tag | One per page. Only one. Matches the page intent. |
| H2/H3 hierarchy | Logical structure. Do not skip from H1 to H4 because it looks better visually. |
| Canonical URL | On every page. Tells Google which version is the original. Prevents duplicate indexing. |
Social Sharing (Open Graph)
| Tag | What it controls |
|---|---|
| og:title | Title shown on LinkedIn, Twitter, Slack, WhatsApp |
| og:description | Description shown in the preview card |
| og:image | The thumbnail. 1200x630px. Branded. |
| og:url | The canonical URL for sharing |
Skip these and every shared link shows a blank card with no image. Wasted opportunity.
Technical SEO
- robots.txt - allows crawling on public pages, blocks /api/ and /admin/
- Dynamic sitemap - includes every page, submitted to Search Console
- Structured data (JSON-LD) - FAQ schema, Product schema, Breadcrumb schema where relevant
- Internal linking - every page links to 2-3 other pages
- Image alt text - descriptive, not keyword-stuffed
- Page speed under 3s on mobile - compress images, lazy load below fold, self-host fonts
The Migration Checklist
Moving from an old site to a new one? This section saves you months of pain.
Before Launch
| Step | Detail |
|---|---|
| Export all old URLs | Screaming Frog, Sitebulb, or download old sitemap |
| Create 301 redirect map | Old URL → New URL for every page. If no equivalent, redirect to homepage. |
| Implement redirects before launch | Not after. Test every single one with a bulk redirect checker. |
| Keep URL structure if possible | /blog/post-title on old site? Keep it. Changing to /journal/post-title means you need redirects. |
| Transfer Search Console data | If changing domains, use the Change of Address tool. |
| Check backlinks | Ahrefs or Semrush free tools. Make sure external links still resolve. |
After Launch
- Do not launch on a Friday. If something breaks, you want business hours to fix it.
- Monitor traffic for 30 days. Compare to previous 30 days.
- If organic traffic drops 20%+, you have a redirect or indexing problem. Fix immediately.
- Resubmit sitemap in Search Console after every major change.
The Project Setup Checklist
What I tell the AI before starting any project:
| What to specify | Why |
|---|---|
| Deployment target | "Self-hosted VPS with Coolify" vs "Vercel" changes how env vars and builds work |
| Domain and SSL setup | "SSL handled by Cloudflare" vs "Let's Encrypt via Coolify" prevents config conflicts |
| Environment variables | Name them upfront: NEXT_PUBLIC_GTM_ID, DIRECTUS_URL. Do not let AI invent names. |
| .env.example file | Documents every variable without exposing keys. Future you will be grateful. |
| Font loading strategy | "Self-host from /public/fonts/" not "Google Fonts CDN." Performance decision. |
| Responsive breakpoints | "1024px desktop, 768px tablet, 480px mobile." Otherwise every tool picks different ones. |
The Marketing and Launch Checklist
What turns a website into a business:
Day One Requirements
- Email capture - not "we will add it later." Day one. EmailOctopus (2,500 free), Mailchimp (500 free), or Beehiiv (free for newsletters).
- Clear CTA on every page - one primary action per page. Not five. One.
- Social proof - testimonials, client logos, case study numbers. "Built a 17-person team across 3 countries" beats "We help companies scale."
- Working contact form - test it yourself. Check spam folders. DKIM misconfiguration sends everything to spam.
Compliance
- Cookie consent banner - required if you serve EU users. Termly and iubenda have free tiers.
- Privacy policy - generate with Termly for free. Required in most jurisdictions.
- Terms of service - same. Generate it. Link it in the footer.
Bonus: Free Tools That Solve Real Problems
Most people do not know these exist or forget to set them up.
| Tool | What it does | Free tier |
|---|---|---|
| Formspree | Form backend. No API code needed. | 50 submissions/month |
| EmailOctopus | Email marketing and newsletters | 2,500 subscribers |
| Beehiiv | Newsletter platform with monetization | Free for basic |
| Tally | Form builder (better than Google Forms) | Unlimited forms |
| Cal.com | Scheduling (open source Calendly) | Free, self-hostable |
| Umami | Privacy-friendly analytics | Free, self-hostable |
| Coolify | Deployment platform (self-hosted Vercel) | Free |
| Directus | Headless CMS | Free, self-hostable |
| Plausible | Lightweight analytics, no cookie banner needed | Paid, but simple |
For Validation and Waitlists
| Need | Tool | Notes |
|---|---|---|
| Waitlist signups | EmailOctopus + simple form | Free up to 2,500 contacts |
| LOI collection | Tally or Formspree | Collect intent letters before building |
| Beta signup | Beehiiv or EmailOctopus | Build audience while you build product |
| Feedback forms | Tally | More flexible than Typeform's free tier |
| Newsletter | Beehiiv | Built-in referral programs and analytics |
The Prompt Addition
Copy this and paste it at the start of every AI coding session:
"This website must ship with: unique title tags and meta descriptions on every page, Open Graph tags (og:title, og:description, og:image, og:url) on every page, a dynamic sitemap.xml that includes all pages, a robots.txt that allows public pages and blocks /api/ and /data/ routes, Google Tag Manager in the head with noscript fallback in body, responsive design at 1024px, 768px, and 480px breakpoints, all images compressed and lazy loaded below the fold, self-hosted fonts with no external CDN calls, canonical URLs on every page, 301 redirects for any changed URLs, a cookie consent banner, and a working contact form with email notification."
That one paragraph prevents 80% of launch-day problems.
The Real Point
None of this is complicated. Every item here is basic. But basic things get missed when you move fast. They get missed when the AI generates a beautiful site and you are so excited about how it looks that you forget to check if Google can even find it.
The AI makes you faster. It does not make you more thorough. That is still your job.
I am not a developer. But I know what a finished product looks like. The difference between a website and a business is the checklist you run before you hit publish.
driftingdesk.com