Website Launch Checklist: What to Check Before Going Live
A launch checklist covering content, links, forms, 404 page, social images, SEO tags, sitemap, Search Console, analytics, speed, accessibility and backups.
· 9 min read
Before you launch a website, check six things above all: every placeholder is replaced, every form actually delivers, every page has its own title and description, the social sharing image works, search engines are allowed in and have a sitemap, and you have a backup. The checklist below covers those and everything else worth a few minutes, grouped so you can work through it in one sitting. Each item says why it matters and how to check it.
Most of it applies to any site, whether it's hand-written HTML, Astro, Next.js or WordPress. Where the steps differ, they're noted.
Content#
- Replace every placeholder. Templates ship with realistic demo content, which is exactly why it slips through. Search the whole project (or every page in WordPress) for the demo brand name, "Lorem", "example.com",
555phone numbers and demo prices. - Check contact details everywhere. Phone, email and address often appear in the header, footer, contact page and structured data. Click each
tel:andmailto:link on a phone to confirm it works. - Proofread. Read each page out loud, or paste it into a spell checker set to the right variety of English. Names, prices and opening hours deserve a second pair of eyes.
- Remove pages you don't need. Delete demo pages you aren't using, and their menu links, rather than leaving them unlinked but live.
- Update dates. Copyright year, "last updated" notes, event dates and any countdowns.
Links and navigation#
- Click every link. Header, footer, buttons and in-text links, on desktop and on a phone. Broken links frustrate visitors and waste search engines' time.
- Run a link checker. A crawler such as Screaming Frog (free up to 500 URLs) or a browser extension finds broken links you'd miss by hand.
- Check the current-page state. The menu should highlight the page you're on. In Freeframe templates that's
aria-current="page"on the menu link. - Test the mobile menu. Open it, tab through it with the keyboard, close it with Esc.
Forms#
- Connect every form. Template forms often validate and show a success message without sending anything. Connect them to a form service, a serverless function or a WordPress form plugin. See forms and backends or How to add a contact form to a static website.
- Send a real test from the live site. Then check it arrives, including in the spam folder. Test every form: contact, newsletter, booking, quote.
- Check the error path. Submit with empty fields and a bad email address. Errors should appear next to the fields and be announced to screen readers.
- Add spam protection. A hidden honeypot field catches most bots; turn on your form service's spam filter or a CAPTCHA if you still get junk.
The 404 page#
- Visit a page that doesn't exist, for example
/this-does-not-exist. You should see your own "page not found" page with a way back, not the host's default. - How: Netlify, Vercel, Cloudflare Pages and GitHub Pages serve a root
404.htmlautomatically. On other hosts, set the error page in the control panel. In WordPress, the theme's404template handles it.
Favicon and icons#
- Replace the favicon with your own. An SVG favicon stays sharp at every size.
- Add an Apple touch icon (a 180 × 180 PNG linked with
rel="apple-touch-icon") if people might save the site to their phone's home screen. WordPress handles icons for you when you set a Site Icon in Settings > General. - Check the browser tab in light and dark browser themes; a dark logo can vanish on a dark tab bar.
Titles and descriptions#
- Give every page a unique
<title>, with the most important words first. Aim for under about 60 characters so it isn't cut off in search results. - Write a meta description for every page, under about 160 characters, that tells a searcher what they'll find. Google doesn't always use it, but when it does, it's your pitch.
- One
h1per page that matches what the page is about. - How: in HTML, edit each page's
<head>; in Next.js, each page'smetadata; in WordPress, an SEO plugin adds the fields. See SEO and social images.
Social sharing (Open Graph) images#
- Set
og:title,og:descriptionandog:imageon every page. These control the card shown when your link is shared in messages and on social networks. - Use a 1200 × 630 PNG or JPG for the image. Most networks don't display SVG.
- Use absolute URLs:
https://yourdomain.com/assets/img/og-image.png, notassets/img/og-image.png. Relative image URLs are the most common reason a preview shows no image. - Test after deploying with LinkedIn's Post Inspector or Facebook's Sharing Debugger. Both also refresh their cached copy of your page.
Domain, HTTPS and redirects#
- Connect your domain and wait for DNS to settle. How to connect a custom domain covers the records.
- Force HTTPS. Most hosts issue a free certificate automatically; check that
http://redirects tohttps://. - Pick www or no www, and redirect the other one to it, so search engines see one version of each page.
- Turn on domain auto-renew. An expired domain takes the site and your email down with it.
Sitemap and robots.txt#
A sitemap lists your pages so search engines find them sooner. robots.txt tells crawlers what they may visit and where the sitemap is.
-
Plain HTML: create
sitemap.xmlin the site root:<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url><loc>https://example.com/</loc></url> <url><loc>https://example.com/about.html</loc></url> <url><loc>https://example.com/contact.html</loc></url> </urlset>and
robots.txtnext to it:User-agent: * Allow: / Sitemap: https://example.com/sitemap.xml -
Next.js: add
src/app/sitemap.tsandsrc/app/robots.ts; Next.js generates both files at build time, including with static export. -
Astro: run
npx astro add sitemap, make suresiteinastro.config.mjsis your real domain, and pointrobots.txtatsitemap-index.xml. -
WordPress: a sitemap is built in at
/wp-sitemap.xml(SEO plugins replace it with their own). Most importantly, go to Settings > Reading and make sure Discourage search engines from indexing this site is unchecked. It's often left on from development. -
Remove any
noindex. Search your pages fornoindexin case a staging setting came along to production.
Google Search Console#
Search Console shows whether Google can index your pages and which searches bring people in. Set it up on launch day so data starts collecting.
- Go to search.google.com/search-console and add a property.
- Choose Domain (covers every subdomain and both
httpandhttps; verified with a DNS TXT record at your domain provider) or URL prefix (one exact address; can be verified with an HTML file, an HTML meta tag, Google Analytics or Google Tag Manager). - Verify. DNS changes can take a while to be seen; if verification fails, wait and try again rather than changing the record. Leave the record or tag in place afterwards, as Google checks it again later.
- Open Sitemaps, enter your sitemap URL and submit it.
- Paste your home page URL into URL Inspection at the top and click Request indexing.
Bing Webmaster Tools can import your verified Search Console sites, which saves repeating the process.
Analytics#
- Decide what you need to know. For most small sites that's visits, top pages, where people came from and form submissions.
- Pick a tool. Google Analytics is free and detailed. Cookie-free tools such as Plausible, Fathom or Cloudflare Web Analytics are simpler and may not need a consent banner, depending on how they're configured and where you operate.
- Check consent rules. In the UK and EU, analytics cookies generally need consent before they're set. If your tool sets them, add a consent banner that actually blocks the script until people agree.
- Confirm it's recording. Visit the live site and look for your visit in the tool's real-time view.
Performance#
- Test key pages with PageSpeed Insights, on the mobile tab. Look at the Core Web Vitals: Google's "good" thresholds are Largest Contentful Paint within 2.5 seconds, Interaction to Next Paint within 200 milliseconds and Cumulative Layout Shift under 0.1.
- Resize images to the size they're displayed and export them as WebP or AVIF. A phone photo uploaded at full size is the most common cause of a slow small site.
- Lazy-load images below the fold with
loading="lazy", but not the main image at the top of the page. - Question every third-party script. Chat widgets, embedded maps and social feeds often cost more than the rest of the page together.
Accessibility#
- Navigate with the keyboard only: Tab, Shift+Tab, Enter, Space and Esc. You should always see where focus is and reach everything.
- Check alt text. Informative images describe what they show; decorative ones have
alt="". - Check colour contrast if you changed colours: 4.5:1 for body text, 3:1 for large text and icons.
- Run an automated scan with axe DevTools or Lighthouse, then fix what it finds. Automated tools catch only part of the problems, so the keyboard test still matters.
- Zoom to 200% and check nothing overlaps or disappears. The accessibility guide has the full list.
Devices and browsers#
- Test on a real phone, not only a narrow desktop window. Tap targets, sticky headers and on-screen keyboards behave differently.
- Check Safari, Chrome and Firefox, and dark mode if your site has it.
Legal pages#
This isn't legal advice; check what applies where you trade.
- Privacy policy: needed if you collect personal data, which includes contact forms and most analytics. Say what you collect, why, who processes it (your form service, your analytics tool) and how people can contact you. WordPress has a starting draft under Settings > Privacy.
- Cookie notice and consent: if you set non-essential cookies.
- Terms: if you sell anything, take bookings or offer an account.
- Business details: in the UK, for example, a limited company must show its registered name, company number and registered office address on its website.
- Link them in the footer of every page.
Backups#
- Static sites: keep the project in a Git repository (GitHub, GitLab) so every version is saved and the host can redeploy from it. Keep a copy of the original template download too.
- WordPress: back up both files and the database. Use your host's daily backups or a backup plugin, and store a copy somewhere other than the server. Test a restore once, before you need it.
- Write down your logins: domain registrar, DNS, host, form service, analytics, Search Console. Store them in a password manager, not in the site.
After launch#
- Week one: check Search Console for indexing errors, and send yourself a test form submission.
- Monthly: look at analytics and Search Console, test the forms, and apply WordPress, theme and plugin updates.
- Yearly: confirm the domain renews, update the copyright year and reread the key pages.
Next steps#
- Read Deploying for host-by-host settings, then How to host a static website for free.
- Starting from scratch? How to make a small business website walks through the whole process.
- Browse business templates such as Handy or Bistro; each comes with a 404 page, SEO tags and social images ready to update.