Blog

Website launch checklist: what to check before, on and after launch day

A website launch checklist has three stages. Before launch: remove any noindex or robots.txt block left from staging, force HTTPS, set canonical URLs, publish a sitemap, verify Search Console, install analytics, and check speed and accessibility. On launch day: recheck the live site and announce it. In the first week: watch indexing, analytics and feedback. This post is written for indie makers and small teams launching a product site. Every number in it comes from the official documentation of Google, web.dev, the W3C, Hacker News or Product Hunt, read on October 12, 2026.

The website launch checklist at a glance

Use this as the pass you run on the production domain, not on staging. Each row says why the item matters, how to check it in a few minutes, and whose documentation it comes from. The details follow in the sections below.

# Item Why it matters How to check Source
1 No leftover noindex Google drops a page with noindex "entirely from Google Search results" View source on the live homepage and a few inner pages; look for a robots meta tag with noindex and for an X-Robots-Tag response header Google Search Central
2 robots.txt does not block the site Blocked pages cannot be crawled, and a block also hides any noindex rule from the crawler Open /robots.txt on the live domain and look for a Disallow: / under User-agent: * Google Search Central
3 Staging is not public Google lists a demo version "accidentally left accessible to crawlers" as a source of duplicate content Open the staging URL in a private window; it should ask for a password Google Search Central
4 HTTPS everywhere HTTPS protects integrity and is required for many newer browser features Load the http:// address and confirm it redirects to https://; run Qualys SSL Server Test and aim for A or A+ web.dev
5 Old URLs redirect (relaunches only) A permanent redirect sends people and Google to the new page Request a few old URLs and confirm a 301 or 308 to the matching new page Google Search Central
6 One canonical URL per page Canonical tags tell Google which duplicate to show Each page has one rel="canonical" with an absolute https URL pointing to itself Google Search Central
7 Real 404s Googlebot reads status codes to know a page does not exist Visit a made-up path and confirm the response code is 404, not 200 Google Search Central
8 Unique titles and descriptions Titles are often what people use to decide which result to click No page is titled just "Home"; no two pages share a meta description Google Search Central
9 Favicon Google can show it next to your site in search results Square, at least 8x8px, Google recommends larger than 48x48px, linked from the homepage Google Search Central
10 Share preview tags Links pasted into social apps and chats use Open Graph tags og:title, og:type, og:image and og:url present on every page Open Graph protocol
11 XML sitemap Helps a new site with few links get found /sitemap.xml lists only live, canonical URLs; one file holds at most 50,000 URLs or 50MB uncompressed Google Search Central
12 Search Console verified You need it to submit the sitemap and inspect URLs A Domain property verified by DNS covers http, https and all subdomains Google Search Console Help
13 Analytics installed You need a baseline before you announce Open your own site and see yourself in the GA4 Realtime report or DebugView Google Analytics Help
14 Privacy policy (if you use analytics) The Google Analytics terms require one A visible privacy policy that discloses cookies and Google Analytics Google Analytics Terms
15 Core Web Vitals Google's thresholds for a good page experience LCP within 2.5 seconds, INP 200 milliseconds or less, CLS 0.1 or less, at the 75th percentile web.dev
16 Accessibility basics Many visitors depend on them, and they are quick to check Alt text, page titles, headings, color contrast of at least 4.5:1 for normal text, visible keyboard focus, page language, zoom, form labels W3C WAI
17 Links and forms work A broken signup form wastes the launch Click every navigation link and submit every form on the live domain, including on a phone Our own step

Before launch: indexing, canonicals and Search Console

Most launch problems that cost search traffic come from settings that were right on staging and wrong in production.

Remove the staging noindex. Google's documentation describes noindex as a rule set "with either a tag or HTTP response header," and when Googlebot finds it, "Google will drop that page entirely from Google Search results, regardless of whether other sites link to it." If your builder or host adds it to preview builds, it can follow you to production. Check both places: the page source for a robots meta tag, and the response headers for X-Robots-Tag, because the header version is invisible in the HTML.

Do not rely on robots.txt to hide anything. Google says a robots.txt file "is not a mechanism for keeping a web page out of Google" and that to keep a page out you should "block indexing with noindex or password-protect the page." The two also conflict: if a page is blocked by robots.txt, "the crawler will never see the noindex rule, and the page can still appear in search results, for example if other pages link to it." On launch day the production robots.txt should not contain a blanket Disallow: / for all user agents. You can add a line that points to your sitemap; Google says it will find it "the next time we crawl your robots.txt file."

Lock staging with a password. For private content Google's advice is that "you need to password protect it to ensure only authorized users can access it." That also keeps the staging copy from competing with production: Google's canonicalization page lists "the demo version of the site is accidentally left accessible to crawlers" as one cause of duplicate URLs.

Set canonicals and redirects. Google ranks the ways to state a preferred URL by strength: redirects and rel="canonical" annotations are strong signals, sitemap inclusion is a weak one, and in all cases "indicating a canonical preference is a hint, not a rule." Use absolute URLs in the canonical tag; Google says relative paths can cause problems "if you unintentionally allow your testing site to be crawled." If you are replacing an older site, map every old URL to its new home with a permanent redirect. Google says "the 301 and 308 status codes mean that a page has permanently moved to a new location."

Return real status codes. Request a made-up URL and check the status code. Google's JavaScript guide asks for "a meaningful status code, like a 404 for a page that could not be found or a 401 code for pages behind a login."

Publish a sitemap. Google says a site with "about 500 pages or fewer" that is well linked internally might not need one, but it lists a new site with few external links as a case where a sitemap helps. Limits: a single sitemap is capped at 50MB uncompressed or 50,000 URLs. Google ignores the priority and changefreq fields and uses lastmod only if it is "consistently and verifiably" accurate, so leave lastmod out rather than stamping every URL with today's date.

Verify Search Console. Search Console offers several ownership methods, including an HTML file upload, an HTML tag on the homepage, Google Analytics, Google Tag Manager and a DNS record. The DNS method "is the only way to verify a Domain property," and Domain properties "include data for all protocol (http/https) and subdomain variations." Verification lasts only while the token stays in place, so do not delete the verification file or tag in a later redesign.

Before launch: HTTPS, speed and accessibility

HTTPS. web.dev's advice is to "always protect all your websites with HTTPS, even if they don't handle sensitive communications," because it protects your site's integrity and "HTTPS is required for many new browser features." Check the redirect as well as the certificate: the http:// address should send visitors to https://, and web.dev recommends you eventually "redirect HTTP requests to HTTPS and use HTTP Strict Transport Security (HSTS)." It also suggests checking the setup with Qualys' SSL Server Test, where "your site should score an A or A+."

Speed: the Core Web Vitals thresholds. web.dev defines three metrics and what counts as good:

  • Largest Contentful Paint (LCP), loading: within 2.5 seconds of when the page first starts loading.
  • Interaction to Next Paint (INP), interactivity: 200 milliseconds or less.
  • Cumulative Layout Shift (CLS), visual stability: 0.1 or less.

Google's guidance is to measure at "the 75th percentile of page loads, segmented across mobile and desktop devices." A brand new site usually has no field data yet. PageSpeed Insights builds its real-user section from the Chrome User Experience Report over the previous 28 days, and Google notes a page "might not have sufficient data if it has been recently published." Before launch you are working with lab numbers from the Lighthouse part of the report; treat them as a guide and recheck once real traffic arrives.

Accessibility: the W3C's quick first pass. The W3C's Web Accessibility Initiative publishes Easy Checks, a first review anyone can do on a live page. It covers image alt text, page titles, headings, color contrast, skip links, visible keyboard focus, the language of the page, zoom, captions, transcripts and audio description for media, form labels and required fields. Two concrete rules from the W3C pages:

  • WCAG's contrast minimum (Level AA) asks for a contrast ratio of at least 4.5:1 for normal text and 3:1 for large text.
  • Decorative images get an empty alt attribute (alt=""); images that carry information get a short description of that information.

The W3C is clear that these checks are "designed to be quick and easy, rather than exhaustive," and that a page can pass them and still have serious barriers. They are a launch-day floor, not an audit.

Before launch: analytics, legal pages and how your links look

Analytics. Google Analytics 4 setup comes down to creating a property and a web data stream, then adding the Google tag. Many site builders only need the measurement ID, which starts with "G-" and sits under Admin, Data collection and modification, Data streams. To confirm it works before launch, open your site and look for yourself in the Realtime report, which shows "Active users in last 5 minutes" and in the last 30 minutes, or in DebugView, which shows events "in real time" while you install tags. Do not judge the setup from the standard reports on day one: Google says "data processing can take 24-48 hours."

Privacy policy and other legal pages. This is a pointer, not legal advice. What you need depends on where you and your visitors are and what you collect, so check the rules that apply to you or ask a lawyer. One requirement is written into a tool most sites use: the Google Analytics terms say "You must post a Privacy Policy" that gives notice of cookies or similar technology, and "You must disclose the use of Google Analytics, and how it collects and processes data."

Titles and descriptions. Google asks you to "make sure every page on your site has a title specified in the element" and to avoid vague titles like "Home." For meta descriptions it says "identical or similar descriptions on every page of a site aren't helpful," so write one per page, or leave a page without one rather than copying the homepage text.</p> <p><strong>Favicon.</strong> For Google Search, the favicon "must be a square (1:1 aspect ratio) that's at least 8x8px," and Google recommends one "larger than 48x48px." Keep its URL stable.</p> <p><strong>Share previews.</strong> The Open Graph protocol lists four required properties for every page: og:title, og:type, og:image and og:url, where og:url is "the canonical URL of your object." Set them before you paste your link anywhere.</p> </div></section><section class="flex flex-col gap-3 border-t border-border pt-10"><h2 class="font-display text-[20px] font-semibold tracking-[-0.01em] text-ink">Launch day, step by step</h2><div class="seo-prose"><p>Do these in order, on the production domain.</p> <ol> <li><strong>Recheck the live site, not staging.</strong> Repeat rows 1, 2, 4 and 6 of the table: no noindex, no blanket robots.txt block, HTTPS redirect working, canonicals pointing at the production domain. This catches settings copied over from staging.</li> <li><strong>Submit the sitemap in Search Console.</strong> In the Sitemaps report, paste the sitemap URL and click Submit; Google says "the sitemap should be fetched immediately," though crawling the URLs in it takes longer. Then use the URL Inspection tool on the homepage. It can "test whether a page on your site might be indexable" and "request that a URL be crawled by Google." There is "a daily limit of inspection requests for each property," so spend them on the homepage and your most important pages.</li> <li><strong>Watch Realtime while you announce.</strong> If your launch post brings visitors and Realtime stays at zero, the tag is broken.</li> <li><strong>Announce where your users are, and follow each site's rules.</strong><ul> <li><strong>Hacker News (Show HN).</strong> Show HN "is for something you've made that other people can play with." Sign-up pages, newsletters and blog posts are off topic, "If your work isn't ready for users to try out, please don't do a Show HN," and "Don't post landing pages or fundraisers." The guidelines also say the project should be non-trivial: "Don't post quickly-generated one-offs." Do not ask friends to vote: "Please don't ask friends to upvote or comment. That's not ok on HN." Our post on <a href="/blog/show-hn">how to post a Show HN</a> covers titles, the first comment and reposts.</li> <li><strong>Product Hunt.</strong> Its help center says the site "operates on 24-hour periods in PST so your post will go live on the site at 12:01 AM PST," and you can schedule a launch for a future date or save a draft. You need a personal account ("Company accounts cannot hunt or post products"), new accounts must finish onboarding before they can post, and the gallery needs at least 2 images before it is viewable. Its launch page says "you cannot ask people directly to upvote your product" and suggests asking people "to visit and comment" instead.</li> <li><strong>Directories.</strong> A listing stays up after launch day fades, but not every directory link is worth having. Our post on <a href="/blog/directory-backlinks">directory backlinks</a> covers what Google says about them and how to check the link you actually got.</li> </ul> </li> <li><strong>Answer every comment and fix what breaks.</strong> Keep a list of what people report, and ship the small fixes quickly.</li> </ol> </div></section><section class="flex flex-col gap-3 border-t border-border pt-10"><h2 class="font-display text-[20px] font-semibold tracking-[-0.01em] text-ink">The first week after launch</h2><div class="seo-prose"><p><strong>Indexing takes time.</strong> Google says "it can take a few weeks for Google to notice a new site," and after a crawl request "crawling can take anywhere from a few days to a few weeks." A request "does not guarantee that inclusion in search results will happen instantly or even at all." A site: search is a rough check only, since Google says the site: operator "doesn't necessarily return all the URLs that are indexed." Use the URL Inspection tool and the Page indexing report in Search Console instead.</p> <p><strong>Links help discovery.</strong> One of the reasons Google gives for missing a site is that it "isn't linked to by other sites on the web." Google's advice is to get links from other sites, "but please don't pay them to link to you." Launch posts, community threads and relevant directory listings are how a new site gets its first links.</p> <p><strong>Analytics settles after two days.</strong> Because processing takes 24 to 48 hours, read launch-day numbers on day three, not on launch night. Compare where visitors came from (your Show HN thread, Product Hunt, social posts, directories) and which pages they landed on.</p> <p><strong>Field data arrives later.</strong> Once enough real visits accumulate, PageSpeed Insights starts showing real-user Core Web Vitals instead of lab data. Recheck the thresholds then.</p> <p><strong>Keep a short log.</strong> Write down the date you launched, where you posted and what you changed after. If something moves in Search Console or analytics a month later, you will want to know why.</p> <p>If you are not ready to open the site to everyone, a limited first release is an option. Our post on the <a href="/blog/soft-launch">soft launch</a> explains how invites, waitlists and test tracks work. Once you are public, our <a href="/blog/saas-seo">SaaS SEO</a> post covers which pages to build next.</p> </div></section><section class="flex flex-col gap-3 border-t border-border pt-10"><h2 class="font-display text-[20px] font-semibold tracking-[-0.01em] text-ink">Where VibeLaunch fits</h2><div class="seo-prose"><p><a href="/">VibeLaunch</a>, the site publishing this post, covers the directory part of a launch. Its homepage says it matches your product to the startup directories that fit it, drafts each submission package to each site's requirements, and then checks that the listing and its backlink actually went live. You can do the same by hand with the checklist above; the important decision is which directories are relevant to your audience.</p> </div></section><section class="flex flex-col gap-3 border-t border-border pt-10"><h2 class="font-display text-[20px] font-semibold tracking-[-0.01em] text-ink">What we don't know, and how this post was put together</h2><div class="seo-prose"><p><strong>What we don't know.</strong> Google does not publish how long indexing takes for a given site, only ranges ("a few days to a few weeks" for a crawl, "a few weeks" to notice a new site). Google does not publish the daily URL Inspection request limit on the page we read, so this post gives no number. Product Hunt's help article does not state a minimum account age, and neither Product Hunt nor Hacker News publishes how ranking works in detail. We found no primary source that compares launch outcomes for sites that followed a checklist and sites that did not, so this post makes no claims about results. Legal requirements for privacy policies and cookie banners vary by country and state, and this post does not try to summarize them.</p> <p><strong>How this post was put together.</strong> We did not launch a site for this article. On October 12, 2026 we read Google Search Central and Search Console documentation, web.dev, Google Analytics Help and the Google Analytics terms, the W3C's Web Accessibility Initiative pages, the Open Graph protocol, the Hacker News Show HN guidelines and Product Hunt's own launch and help pages, and checked the top search results for this topic to see what they cover. The checklist order and the "Our own step" row are our synthesis; every number and quote comes from a page in the source list below. Rules and limits change, so check the linked pages before you rely on a number.</p> </div></section><section class="overflow-x-auto border-t border-border pt-10"><table class="w-full border-collapse text-left text-sm"><thead><tr><th class="border-b border-border py-2 pr-4 font-semibold text-ink">When</th><th class="border-b border-border py-2 pr-4 font-semibold text-ink">Task</th><th class="border-b border-border py-2 pr-4 font-semibold text-ink">How to confirm it worked</th><th class="border-b border-border py-2 pr-4 font-semibold text-ink">Source</th></tr></thead><tbody><tr><td class="border-b border-border py-2 pr-4 text-slate">Before launch</td><td class="border-b border-border py-2 pr-4 text-slate">Remove noindex and robots.txt blocks from production</td><td class="border-b border-border py-2 pr-4 text-slate">Page source and response headers show no noindex; /robots.txt has no Disallow: / for all agents</td><td class="border-b border-border py-2 pr-4 text-slate">Google Search Central</td></tr><tr><td class="border-b border-border py-2 pr-4 text-slate">Before launch</td><td class="border-b border-border py-2 pr-4 text-slate">Password-protect staging</td><td class="border-b border-border py-2 pr-4 text-slate">Staging URL asks for a password in a private window</td><td class="border-b border-border py-2 pr-4 text-slate">Google Search Central</td></tr><tr><td class="border-b border-border py-2 pr-4 text-slate">Before launch</td><td class="border-b border-border py-2 pr-4 text-slate">Install the Google Analytics tag</td><td class="border-b border-border py-2 pr-4 text-slate">Your own visit appears in Realtime or DebugView</td><td class="border-b border-border py-2 pr-4 text-slate">Google Analytics Help</td></tr><tr><td class="border-b border-border py-2 pr-4 text-slate">Launch day</td><td class="border-b border-border py-2 pr-4 text-slate">Submit the sitemap</td><td class="border-b border-border py-2 pr-4 text-slate">The sitemap is listed in the Search Console Sitemaps report</td><td class="border-b border-border py-2 pr-4 text-slate">Google Search Central</td></tr><tr><td class="border-b border-border py-2 pr-4 text-slate">Launch day</td><td class="border-b border-border py-2 pr-4 text-slate">Inspect and request indexing for key pages</td><td class="border-b border-border py-2 pr-4 text-slate">URL Inspection live test says the page can be indexed</td><td class="border-b border-border py-2 pr-4 text-slate">Google Search Console Help</td></tr><tr><td class="border-b border-border py-2 pr-4 text-slate">Launch day</td><td class="border-b border-border py-2 pr-4 text-slate">Post a Show HN (if people can try it now)</td><td class="border-b border-border py-2 pr-4 text-slate">Post appears on the Show HN new page</td><td class="border-b border-border py-2 pr-4 text-slate">Hacker News Show HN guidelines</td></tr><tr><td class="border-b border-border py-2 pr-4 text-slate">Launch day</td><td class="border-b border-border py-2 pr-4 text-slate">Launch on Product Hunt</td><td class="border-b border-border py-2 pr-4 text-slate">Post goes live at 12:01 AM PST on the chosen day</td><td class="border-b border-border py-2 pr-4 text-slate">Product Hunt Help Center</td></tr><tr><td class="border-b border-border py-2 pr-4 text-slate">Days 1 to 3</td><td class="border-b border-border py-2 pr-4 text-slate">Read analytics after processing</td><td class="border-b border-border py-2 pr-4 text-slate">Standard reports filled in after 24 to 48 hours</td><td class="border-b border-border py-2 pr-4 text-slate">Google Analytics Help</td></tr><tr><td class="border-b border-border py-2 pr-4 text-slate">Weeks 1 to 4</td><td class="border-b border-border py-2 pr-4 text-slate">Check indexing</td><td class="border-b border-border py-2 pr-4 text-slate">URL Inspection and Page indexing report show pages indexed</td><td class="border-b border-border py-2 pr-4 text-slate">Google Search Central</td></tr><tr><td class="border-b border-border py-2 pr-4 text-slate">After real traffic</td><td class="border-b border-border py-2 pr-4 text-slate">Recheck Core Web Vitals with field data</td><td class="border-b border-border py-2 pr-4 text-slate">PageSpeed Insights shows real-user LCP, INP and CLS</td><td class="border-b border-border py-2 pr-4 text-slate">PageSpeed Insights docs</td></tr></tbody></table></section><section class="flex flex-col gap-4 border-t border-border pt-10"><h2 class="font-display text-[20px] font-semibold tracking-[-0.01em] text-ink">Frequently asked questions</h2><details class="group border-b border-border pb-3"><summary class="cursor-pointer text-sm font-semibold text-ink">What should be on a website launch checklist?</summary><p class="mt-2 text-sm leading-relaxed text-slate">At minimum: no leftover noindex or robots.txt block from staging, HTTPS with an HTTP redirect, one canonical URL per page, real 404 status codes, unique titles, an XML sitemap, a verified Search Console property, a working analytics tag, a privacy policy if you use analytics, Core Web Vitals within Google's thresholds, and basic accessibility checks such as alt text and color contrast.</p></details><details class="group border-b border-border pb-3"><summary class="cursor-pointer text-sm font-semibold text-ink">How long does it take for a new website to show up on Google?</summary><p class="mt-2 text-sm leading-relaxed text-slate">Google gives ranges, not a guarantee. Its documentation says it can take a few weeks for Google to notice a new site, and that crawling after a request can take anywhere from a few days to a few weeks. Submitting a sitemap and requesting indexing for key pages in Search Console helps Google find them, but does not promise inclusion.</p></details><details class="group border-b border-border pb-3"><summary class="cursor-pointer text-sm font-semibold text-ink">Should I block my site with robots.txt until launch?</summary><p class="mt-2 text-sm leading-relaxed text-slate">Not if your goal is to keep it out of Google. Google says robots.txt is not a mechanism for keeping a page out of search, and a blocked page can still appear if other sites link to it. Password-protect the staging site instead, and make sure the production robots.txt does not block everything on launch day.</p></details><details class="group border-b border-border pb-3"><summary class="cursor-pointer text-sm font-semibold text-ink">Does a small website need a sitemap?</summary><p class="mt-2 text-sm leading-relaxed text-slate">Not always. Google says a site of about 500 pages or fewer that is well linked internally might not need one, but it also lists a new site with few external links as a case where a sitemap helps. Most new sites fit that second case, and a sitemap is easy to generate.</p></details><details class="group border-b border-border pb-3"><summary class="cursor-pointer text-sm font-semibold text-ink">What are good Core Web Vitals scores for a new website?</summary><p class="mt-2 text-sm leading-relaxed text-slate">web.dev defines good as Largest Contentful Paint within 2.5 seconds, Interaction to Next Paint of 200 milliseconds or less, and Cumulative Layout Shift of 0.1 or less, measured at the 75th percentile of page loads. A new site often has no real-user data yet, so PageSpeed Insights will show lab results until enough visits accumulate.</p></details><details class="group border-b border-border pb-3"><summary class="cursor-pointer text-sm font-semibold text-ink">What time does a Product Hunt launch go live?</summary><p class="mt-2 text-sm leading-relaxed text-slate">Product Hunt's help center says the site runs on 24-hour periods in PST and a post goes live at 12:01 AM PST on its launch day. You can schedule a future date or save a draft. Posting needs a personal account, and Product Hunt says you cannot ask people directly to upvote.</p></details><details class="group border-b border-border pb-3"><summary class="cursor-pointer text-sm font-semibold text-ink">Can I post a landing page or waitlist as a Show HN?</summary><p class="mt-2 text-sm leading-relaxed text-slate">No. The Show HN guidelines list sign-up pages as off topic and say not to post landing pages or fundraisers. A Show HN needs something people can try now, ideally without a signup. Post it once the product is usable, and keep the waitlist for a soft launch.</p></details><details class="group border-b border-border pb-3"><summary class="cursor-pointer text-sm font-semibold text-ink">Do I need a privacy policy to launch a website?</summary><p class="mt-2 text-sm leading-relaxed text-slate">It depends on where you operate and what you collect, so check the rules that apply to you; this is not legal advice. If you use Google Analytics, its terms require you to post a privacy policy that gives notice of cookies and discloses your use of Google Analytics.</p></details></section><section class="flex flex-col gap-3 border-t border-border pt-10"><h2 class="font-display text-[20px] font-semibold tracking-[-0.01em] text-ink">Related</h2><ul class="list-disc pl-5 text-sm"><li><a href="/blog/soft-launch" class="text-slate underline underline-offset-4 hover:text-ink">Soft launch vs hard launch</a></li><li><a href="/blog/show-hn" class="text-slate underline underline-offset-4 hover:text-ink">How to post a Show HN</a></li><li><a href="/blog/directory-backlinks" class="text-slate underline underline-offset-4 hover:text-ink">Do directory backlinks work</a></li><li><a href="/blog/saas-seo" class="text-slate underline underline-offset-4 hover:text-ink">SaaS SEO: pages, technical basics and the first 90 days</a></li><li><a href="/" class="text-slate underline underline-offset-4 hover:text-ink">VibeLaunch</a></li></ul></section><section class="flex flex-col gap-3 border-t border-border pt-10"><h2 class="font-display text-[20px] font-semibold tracking-[-0.01em] text-ink">Sources</h2><ul class="list-disc pl-5 text-sm text-slate"><li><a href="https://developers.google.com/search/docs/crawling-indexing/block-indexing" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">Google Search Central: Block Search indexing with noindex</a></li><li><a href="https://developers.google.com/search/docs/crawling-indexing/robots/intro" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">Google Search Central: Introduction to robots.txt</a></li><li><a href="https://developers.google.com/search/docs/crawling-indexing/control-what-you-share" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">Google Search Central: Control what you share with Google (password protection)</a></li><li><a href="https://developers.google.com/search/docs/crawling-indexing/canonicalization" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">Google Search Central: What is URL canonicalization</a></li><li><a href="https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">Google Search Central: How to specify a canonical URL with rel="canonical" and other methods</a></li><li><a href="https://developers.google.com/search/docs/crawling-indexing/301-redirects" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">Google Search Central: Redirects and Google Search</a></li><li><a href="https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">Google Search Central: JavaScript SEO basics (meaningful status codes)</a></li><li><a href="https://developers.google.com/search/docs/crawling-indexing/sitemaps/overview" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">Google Search Central: Learn about sitemaps</a></li><li><a href="https://developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">Google Search Central: Build and submit a sitemap</a></li><li><a href="https://developers.google.com/search/docs/crawling-indexing/ask-google-to-recrawl" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">Google Search Central: Ask Google to recrawl your URLs</a></li><li><a href="https://developers.google.com/search/docs/fundamentals/get-on-google" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">Google Search Central: Get your website on Google</a></li><li><a href="https://developers.google.com/search/docs/appearance/title-link" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">Google Search Central: Influencing your title links</a></li><li><a href="https://developers.google.com/search/docs/appearance/snippet" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">Google Search Central: Meta descriptions and snippets</a></li><li><a href="https://developers.google.com/search/docs/appearance/favicon-in-search" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">Google Search Central: Favicons in Google Search</a></li><li><a href="https://support.google.com/webmasters/answer/9008080?hl=en" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">Search Console Help: Verify your site ownership</a></li><li><a href="https://support.google.com/webmasters/answer/7451001?hl=en" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">Search Console Help: Manage your sitemaps using the Sitemaps report</a></li><li><a href="https://support.google.com/webmasters/answer/7440203?hl=en" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">Search Console Help: Page indexing report</a></li><li><a href="https://support.google.com/webmasters/answer/9012289?hl=en" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">Search Console Help: URL Inspection tool</a></li><li><a href="https://web.dev/articles/vitals" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">web.dev: Web Vitals (Core Web Vitals thresholds)</a></li><li><a href="https://web.dev/articles/why-https-matters" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">web.dev: Why HTTPS matters</a></li><li><a href="https://web.dev/articles/enable-https" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">web.dev: Enable HTTPS on your servers</a></li><li><a href="https://developers.google.com/speed/docs/insights/v5/about" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">PageSpeed Insights: About PageSpeed Insights (field data, 28-day period)</a></li><li><a href="https://support.google.com/analytics/answer/9304153?hl=en" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">Google Analytics Help: Set up Analytics for a website and/or app</a></li><li><a href="https://support.google.com/analytics/answer/9271392?hl=en" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">Google Analytics Help: Realtime report</a></li><li><a href="https://support.google.com/analytics/answer/7201382?hl=en" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">Google Analytics Help: Monitor events in DebugView</a></li><li><a href="https://support.google.com/analytics/answer/11198161?hl=en" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">Google Analytics Help: Data freshness</a></li><li><a href="https://marketingplatform.google.com/about/analytics/terms/us/" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">Google Analytics Terms of Service (privacy policy requirement)</a></li><li><a href="https://www.w3.org/WAI/test-evaluate/easy-checks/" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">W3C WAI: Easy Checks, a first review of web accessibility</a></li><li><a href="https://www.w3.org/WAI/WCAG22/Understanding/contrast-minimum.html" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">W3C WAI: Understanding WCAG 2.2 Contrast (Minimum)</a></li><li><a href="https://www.w3.org/WAI/tutorials/images/" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">W3C WAI: Images tutorial (alt text)</a></li><li><a href="https://ogp.me/" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">The Open Graph protocol</a></li><li><a href="https://news.ycombinator.com/showhn.html" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">Hacker News: Show HN guidelines</a></li><li><a href="https://help.producthunt.com/en/articles/479557-how-to-post-a-product" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">Product Hunt Help Center: How to post a product</a></li><li><a href="https://www.producthunt.com/launch" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">Product Hunt: Launch guide and FAQ</a></li><li><a href="https://vibelaunch.io/" rel="nofollow noopener" target="_blank" class="underline underline-offset-4 hover:text-ink">VibeLaunch homepage (what VibeLaunch does)</a></li></ul><p class="font-mono text-[11px] uppercase tracking-[0.12em] text-muted-ink">Last verified <!-- -->2026-10-12</p></section><section class="flex flex-col gap-3 rounded-md border border-border bg-surface p-6"><h2 class="font-display text-[20px] font-semibold tracking-[-0.01em] text-ink">Submit with VibeLaunch</h2><p class="text-sm leading-relaxed text-slate">VibeLaunch drafts your submission to each directory's exact requirements and verifies the listing and backlink actually went live.</p><div><a href="/auth/signup" class="inline-flex h-10 items-center rounded-md bg-primary px-5 text-sm font-medium text-primary-foreground hover:opacity-90">Get your launch score</a></div></section></main></div><!--/$--><script>(function(a,f){let l;try{l=JSON.parse(sessionStorage.getItem(a)||"{}")}catch{return}const n=l?.[f||history.state?.__TSR_key];let c=!1;for(const t in n){const e=n[t],o=e?.scrollX,s=e?.scrollY;if(Number.isFinite(o)&&Number.isFinite(s)){if(t==="window")scrollTo(o,s),c=!0;else if(t)try{const r=document.querySelector(t);r&&(r.scrollLeft=o,r.scrollTop=s)}catch{}}}if(c)return;const i=location.hash.slice(1);if(i){const t=history.state?.__hashScrollIntoViewOptions??!0;if(t){const e=document.getElementById(i);e&&e.scrollIntoView(t)}return}scrollTo(0,0)})("tsr-scroll-restoration-v1_3");document.currentScript.remove()</script><!--/$--><script class="$tsr" id="$tsr-stream-barrier">(self.$R=self.$R||{})["tsr"]=[];self.$_TSR={h(){this.hydrated=!0,this.c()},e(){this.streamEnded=!0,this.c()},c(){this.hydrated&&this.streamEnded&&(delete self.$_TSR,delete self.$R.tsr)},p(e){this.initialized?e():this.buffer.push(e)},buffer:[]};$_TSR.router=($R=>$R[0]={manifest:$R[1]={routes:$R[2]={__root__:$R[3]={preloads:$R[4]=["/assets/index-CcPrrbbv.js","/assets/jsx-runtime-DUAcabCT.js","/assets/preload-helper-zJ_50EbN.js","/assets/client-Ci90E8Rj.js","/assets/useQuery-B5iV28aU.js","/assets/QueryClientProvider-DuFAeLs2.js","/assets/useStore-YYXpt-H7.js","/assets/link-7p1P6-iy.js","/assets/matchContext-B7KtSyHA.js","/assets/useRouter-DV8Pf_Au.js","/assets/useMatch-C5ISYVyb.js","/assets/redirect-DCb_aIiF.js","/assets/qss-CuvTgpZA.js","/assets/root-DLTE-HSj.js","/assets/createServerFn-DZEBw1SU.js"],scripts:$R[5]=[$R[6]={attrs:$R[7]={type:"module",async:!0,src:"/assets/index-CcPrrbbv.js"}}]},"/blog":$R[8]={preloads:$R[9]=["/assets/blog-C-88zAlN.js"]},"/blog/$slug":$R[10]={preloads:$R[11]=["/assets/blog._slug-BLY7_e0N.js","/assets/blog._slug-C9FYgAP_.js","/assets/blog._slug-CJ_v6NJd.js"]}}},matches:$R[12]=[$R[13]={i:"__root__�",u:1791805040973,s:"success",ssr:!0},$R[14]={i:"�blog�blog",u:1791805040973,s:"success",ssr:!0},$R[15]={i:"�blog�$slug�blog�website-launch-checklist",u:1791805041630,s:"success",l:$R[16]={path:"/blog/website-launch-checklist",page_type:"blog",status:"published",title:"Website Launch Checklist: Before, On and After Launch Day (2026)",meta_description:"A website launch checklist for indie makers: staging noindex, robots.txt, HTTPS, sitemap, Search Console, analytics, Core Web Vitals, launch day and week one.",h1:"Website launch checklist: what to check before, on and after launch day",intro:"A website launch checklist has three stages. Before launch: remove any noindex or robots.txt block left from staging, force HTTPS, set canonical URLs, publish a sitemap, verify Search Console, install analytics, and check speed and accessibility. On launch day: recheck the live site and announce it. In the first week: watch indexing, analytics and feedback. This post is written for indie makers and small teams launching a product site. Every number in it comes from the official documentation of Google, web.dev, the W3C, Hacker News or Product Hunt, read on October 12, 2026.",sections:$R[17]=[$R[18]={body:"Use this as the pass you run on the production domain, not on staging. Each row says why the item matters, how to check it in a few minutes, and whose documentation it comes from. The details follow in the sections below.\n\n| # | Item | Why it matters | How to check | Source |\n|---|---|---|---|---|\n| 1 | No leftover noindex | Google drops a page with noindex \"entirely from Google Search results\" | View source on the live homepage and a few inner pages; look for a robots meta tag with noindex and for an X-Robots-Tag response header | Google Search Central |\n| 2 | robots.txt does not block the site | Blocked pages cannot be crawled, and a block also hides any noindex rule from the crawler | Open /robots.txt on the live domain and look for a Disallow: / under User-agent: * | Google Search Central |\n| 3 | Staging is not public | Google lists a demo version \"accidentally left accessible to crawlers\" as a source of duplicate content | Open the staging URL in a private window; it should ask for a password | Google Search Central |\n| 4 | HTTPS everywhere | HTTPS protects integrity and is required for many newer browser features | Load the http:// address and confirm it redirects to https://; run Qualys SSL Server Test and aim for A or A+ | web.dev |\n| 5 | Old URLs redirect (relaunches only) | A permanent redirect sends people and Google to the new page | Request a few old URLs and confirm a 301 or 308 to the matching new page | Google Search Central |\n| 6 | One canonical URL per page | Canonical tags tell Google which duplicate to show | Each page has one rel=\"canonical\" with an absolute https URL pointing to itself | Google Search Central |\n| 7 | Real 404s | Googlebot reads status codes to know a page does not exist | Visit a made-up path and confirm the response code is 404, not 200 | Google Search Central |\n| 8 | Unique titles and descriptions | Titles are often what people use to decide which result to click | No page is titled just \"Home\"; no two pages share a meta description | Google Search Central |\n| 9 | Favicon | Google can show it next to your site in search results | Square, at least 8x8px, Google recommends larger than 48x48px, linked from the homepage | Google Search Central |\n| 10 | Share preview tags | Links pasted into social apps and chats use Open Graph tags | og:title, og:type, og:image and og:url present on every page | Open Graph protocol |\n| 11 | XML sitemap | Helps a new site with few links get found | /sitemap.xml lists only live, canonical URLs; one file holds at most 50,000 URLs or 50MB uncompressed | Google Search Central |\n| 12 | Search Console verified | You need it to submit the sitemap and inspect URLs | A Domain property verified by DNS covers http, https and all subdomains | Google Search Console Help |\n| 13 | Analytics installed | You need a baseline before you announce | Open your own site and see yourself in the GA4 Realtime report or DebugView | Google Analytics Help |\n| 14 | Privacy policy (if you use analytics) | The Google Analytics terms require one | A visible privacy policy that discloses cookies and Google Analytics | Google Analytics Terms |\n| 15 | Core Web Vitals | Google's thresholds for a good page experience | LCP within 2.5 seconds, INP 200 milliseconds or less, CLS 0.1 or less, at the 75th percentile | web.dev |\n| 16 | Accessibility basics | Many visitors depend on them, and they are quick to check | Alt text, page titles, headings, color contrast of at least 4.5:1 for normal text, visible keyboard focus, page language, zoom, form labels | W3C WAI |\n| 17 | Links and forms work | A broken signup form wastes the launch | Click every navigation link and submit every form on the live domain, including on a phone | Our own step |",heading:"The website launch checklist at a glance"},$R[19]={body:"Most launch problems that cost search traffic come from settings that were right on staging and wrong in production.\n\n**Remove the staging noindex.** Google's documentation describes noindex as a rule set \"with either a \x3Cmeta> tag or HTTP response header,\" and when Googlebot finds it, \"Google will drop that page entirely from Google Search results, regardless of whether other sites link to it.\" If your builder or host adds it to preview builds, it can follow you to production. Check both places: the page source for a robots meta tag, and the response headers for X-Robots-Tag, because the header version is invisible in the HTML.\n\n**Do not rely on robots.txt to hide anything.** Google says a robots.txt file \"is not a mechanism for keeping a web page out of Google\" and that to keep a page out you should \"block indexing with noindex or password-protect the page.\" The two also conflict: if a page is blocked by robots.txt, \"the crawler will never see the noindex rule, and the page can still appear in search results, for example if other pages link to it.\" On launch day the production robots.txt should not contain a blanket Disallow: / for all user agents. You can add a line that points to your sitemap; Google says it will find it \"the next time we crawl your robots.txt file.\"\n\n**Lock staging with a password.** For private content Google's advice is that \"you need to password protect it to ensure only authorized users can access it.\" That also keeps the staging copy from competing with production: Google's canonicalization page lists \"the demo version of the site is accidentally left accessible to crawlers\" as one cause of duplicate URLs.\n\n**Set canonicals and redirects.** Google ranks the ways to state a preferred URL by strength: redirects and rel=\"canonical\" annotations are strong signals, sitemap inclusion is a weak one, and in all cases \"indicating a canonical preference is a hint, not a rule.\" Use absolute URLs in the canonical tag; Google says relative paths can cause problems \"if you unintentionally allow your testing site to be crawled.\" If you are replacing an older site, map every old URL to its new home with a permanent redirect. Google says \"the 301 and 308 status codes mean that a page has permanently moved to a new location.\"\n\n**Return real status codes.** Request a made-up URL and check the status code. Google's JavaScript guide asks for \"a meaningful status code, like a 404 for a page that could not be found or a 401 code for pages behind a login.\"\n\n**Publish a sitemap.** Google says a site with \"about 500 pages or fewer\" that is well linked internally might not need one, but it lists a new site with few external links as a case where a sitemap helps. Limits: a single sitemap is capped at 50MB uncompressed or 50,000 URLs. Google ignores the priority and changefreq fields and uses lastmod only if it is \"consistently and verifiably\" accurate, so leave lastmod out rather than stamping every URL with today's date.\n\n**Verify Search Console.** Search Console offers several ownership methods, including an HTML file upload, an HTML tag on the homepage, Google Analytics, Google Tag Manager and a DNS record. The DNS method \"is the only way to verify a Domain property,\" and Domain properties \"include data for all protocol (http/https) and subdomain variations.\" Verification lasts only while the token stays in place, so do not delete the verification file or tag in a later redesign.",heading:"Before launch: indexing, canonicals and Search Console"},$R[20]={body:"**HTTPS.** web.dev's advice is to \"always protect all your websites with HTTPS, even if they don't handle sensitive communications,\" because it protects your site's integrity and \"HTTPS is required for many new browser features.\" Check the redirect as well as the certificate: the http:// address should send visitors to https://, and web.dev recommends you eventually \"redirect HTTP requests to HTTPS and use HTTP Strict Transport Security (HSTS).\" It also suggests checking the setup with Qualys' SSL Server Test, where \"your site should score an A or A+.\"\n\n**Speed: the Core Web Vitals thresholds.** web.dev defines three metrics and what counts as good:\n\n- **Largest Contentful Paint (LCP)**, loading: within 2.5 seconds of when the page first starts loading.\n- **Interaction to Next Paint (INP)**, interactivity: 200 milliseconds or less.\n- **Cumulative Layout Shift (CLS)**, visual stability: 0.1 or less.\n\nGoogle's guidance is to measure at \"the 75th percentile of page loads, segmented across mobile and desktop devices.\" A brand new site usually has no field data yet. PageSpeed Insights builds its real-user section from the Chrome User Experience Report over the previous 28 days, and Google notes a page \"might not have sufficient data if it has been recently published.\" Before launch you are working with lab numbers from the Lighthouse part of the report; treat them as a guide and recheck once real traffic arrives.\n\n**Accessibility: the W3C's quick first pass.** The W3C's Web Accessibility Initiative publishes Easy Checks, a first review anyone can do on a live page. It covers image alt text, page titles, headings, color contrast, skip links, visible keyboard focus, the language of the page, zoom, captions, transcripts and audio description for media, form labels and required fields. Two concrete rules from the W3C pages:\n\n- WCAG's contrast minimum (Level AA) asks for a contrast ratio of at least 4.5:1 for normal text and 3:1 for large text.\n- Decorative images get an empty alt attribute (alt=\"\"); images that carry information get a short description of that information.\n\nThe W3C is clear that these checks are \"designed to be quick and easy, rather than exhaustive,\" and that a page can pass them and still have serious barriers. They are a launch-day floor, not an audit.",heading:"Before launch: HTTPS, speed and accessibility"},$R[21]={body:"**Analytics.** Google Analytics 4 setup comes down to creating a property and a web data stream, then adding the Google tag. Many site builders only need the measurement ID, which starts with \"G-\" and sits under Admin, Data collection and modification, Data streams. To confirm it works before launch, open your site and look for yourself in the Realtime report, which shows \"Active users in last 5 minutes\" and in the last 30 minutes, or in DebugView, which shows events \"in real time\" while you install tags. Do not judge the setup from the standard reports on day one: Google says \"data processing can take 24-48 hours.\"\n\n**Privacy policy and other legal pages.** This is a pointer, not legal advice. What you need depends on where you and your visitors are and what you collect, so check the rules that apply to you or ask a lawyer. One requirement is written into a tool most sites use: the Google Analytics terms say \"You must post a Privacy Policy\" that gives notice of cookies or similar technology, and \"You must disclose the use of Google Analytics, and how it collects and processes data.\"\n\n**Titles and descriptions.** Google asks you to \"make sure every page on your site has a title specified in the \x3Ctitle> element\" and to avoid vague titles like \"Home.\" For meta descriptions it says \"identical or similar descriptions on every page of a site aren't helpful,\" so write one per page, or leave a page without one rather than copying the homepage text.\n\n**Favicon.** For Google Search, the favicon \"must be a square (1:1 aspect ratio) that's at least 8x8px,\" and Google recommends one \"larger than 48x48px.\" Keep its URL stable.\n\n**Share previews.** The Open Graph protocol lists four required properties for every page: og:title, og:type, og:image and og:url, where og:url is \"the canonical URL of your object.\" Set them before you paste your link anywhere.",heading:"Before launch: analytics, legal pages and how your links look"},$R[22]={body:"Do these in order, on the production domain.\n\n1. **Recheck the live site, not staging.** Repeat rows 1, 2, 4 and 6 of the table: no noindex, no blanket robots.txt block, HTTPS redirect working, canonicals pointing at the production domain. This catches settings copied over from staging.\n2. **Submit the sitemap in Search Console.** In the Sitemaps report, paste the sitemap URL and click Submit; Google says \"the sitemap should be fetched immediately,\" though crawling the URLs in it takes longer. Then use the URL Inspection tool on the homepage. It can \"test whether a page on your site might be indexable\" and \"request that a URL be crawled by Google.\" There is \"a daily limit of inspection requests for each property,\" so spend them on the homepage and your most important pages.\n3. **Watch Realtime while you announce.** If your launch post brings visitors and Realtime stays at zero, the tag is broken.\n4. **Announce where your users are, and follow each site's rules.**\n - **Hacker News (Show HN).** Show HN \"is for something you've made that other people can play with.\" Sign-up pages, newsletters and blog posts are off topic, \"If your work isn't ready for users to try out, please don't do a Show HN,\" and \"Don't post landing pages or fundraisers.\" The guidelines also say the project should be non-trivial: \"Don't post quickly-generated one-offs.\" Do not ask friends to vote: \"Please don't ask friends to upvote or comment. That's not ok on HN.\" Our post on [how to post a Show HN](/blog/show-hn) covers titles, the first comment and reposts.\n - **Product Hunt.** Its help center says the site \"operates on 24-hour periods in PST so your post will go live on the site at 12:01 AM PST,\" and you can schedule a launch for a future date or save a draft. You need a personal account (\"Company accounts cannot hunt or post products\"), new accounts must finish onboarding before they can post, and the gallery needs at least 2 images before it is viewable. Its launch page says \"you cannot ask people directly to upvote your product\" and suggests asking people \"to visit and comment\" instead.\n - **Directories.** A listing stays up after launch day fades, but not every directory link is worth having. Our post on [directory backlinks](/blog/directory-backlinks) covers what Google says about them and how to check the link you actually got.\n5. **Answer every comment and fix what breaks.** Keep a list of what people report, and ship the small fixes quickly.",heading:"Launch day, step by step"},$R[23]={body:"**Indexing takes time.** Google says \"it can take a few weeks for Google to notice a new site,\" and after a crawl request \"crawling can take anywhere from a few days to a few weeks.\" A request \"does not guarantee that inclusion in search results will happen instantly or even at all.\" A site: search is a rough check only, since Google says the site: operator \"doesn't necessarily return all the URLs that are indexed.\" Use the URL Inspection tool and the Page indexing report in Search Console instead.\n\n**Links help discovery.** One of the reasons Google gives for missing a site is that it \"isn't linked to by other sites on the web.\" Google's advice is to get links from other sites, \"but please don't pay them to link to you.\" Launch posts, community threads and relevant directory listings are how a new site gets its first links.\n\n**Analytics settles after two days.** Because processing takes 24 to 48 hours, read launch-day numbers on day three, not on launch night. Compare where visitors came from (your Show HN thread, Product Hunt, social posts, directories) and which pages they landed on.\n\n**Field data arrives later.** Once enough real visits accumulate, PageSpeed Insights starts showing real-user Core Web Vitals instead of lab data. Recheck the thresholds then.\n\n**Keep a short log.** Write down the date you launched, where you posted and what you changed after. If something moves in Search Console or analytics a month later, you will want to know why.\n\nIf you are not ready to open the site to everyone, a limited first release is an option. Our post on the [soft launch](/blog/soft-launch) explains how invites, waitlists and test tracks work. Once you are public, our [SaaS SEO](/blog/saas-seo) post covers which pages to build next.",heading:"The first week after launch"},$R[24]={body:"[VibeLaunch](/), the site publishing this post, covers the directory part of a launch. Its homepage says it matches your product to the startup directories that fit it, drafts each submission package to each site's requirements, and then checks that the listing and its backlink actually went live. You can do the same by hand with the checklist above; the important decision is which directories are relevant to your audience.",heading:"Where VibeLaunch fits"},$R[25]={body:"**What we don't know.** Google does not publish how long indexing takes for a given site, only ranges (\"a few days to a few weeks\" for a crawl, \"a few weeks\" to notice a new site). Google does not publish the daily URL Inspection request limit on the page we read, so this post gives no number. Product Hunt's help article does not state a minimum account age, and neither Product Hunt nor Hacker News publishes how ranking works in detail. We found no primary source that compares launch outcomes for sites that followed a checklist and sites that did not, so this post makes no claims about results. Legal requirements for privacy policies and cookie banners vary by country and state, and this post does not try to summarize them.\n\n**How this post was put together.** We did not launch a site for this article. On October 12, 2026 we read Google Search Central and Search Console documentation, web.dev, Google Analytics Help and the Google Analytics terms, the W3C's Web Accessibility Initiative pages, the Open Graph protocol, the Hacker News Show HN guidelines and Product Hunt's own launch and help pages, and checked the top search results for this topic to see what they cover. The checklist order and the \"Our own step\" row are our synthesis; every number and quote comes from a page in the source list below. Rules and limits change, so check the linked pages before you rely on a number.",heading:"What we don't know, and how this post was put together"}],faqs:$R[26]=[$R[27]={a:"At minimum: no leftover noindex or robots.txt block from staging, HTTPS with an HTTP redirect, one canonical URL per page, real 404 status codes, unique titles, an XML sitemap, a verified Search Console property, a working analytics tag, a privacy policy if you use analytics, Core Web Vitals within Google's thresholds, and basic accessibility checks such as alt text and color contrast.",q:"What should be on a website launch checklist?"},$R[28]={a:"Google gives ranges, not a guarantee. Its documentation says it can take a few weeks for Google to notice a new site, and that crawling after a request can take anywhere from a few days to a few weeks. Submitting a sitemap and requesting indexing for key pages in Search Console helps Google find them, but does not promise inclusion.",q:"How long does it take for a new website to show up on Google?"},$R[29]={a:"Not if your goal is to keep it out of Google. Google says robots.txt is not a mechanism for keeping a page out of search, and a blocked page can still appear if other sites link to it. Password-protect the staging site instead, and make sure the production robots.txt does not block everything on launch day.",q:"Should I block my site with robots.txt until launch?"},$R[30]={a:"Not always. Google says a site of about 500 pages or fewer that is well linked internally might not need one, but it also lists a new site with few external links as a case where a sitemap helps. Most new sites fit that second case, and a sitemap is easy to generate.",q:"Does a small website need a sitemap?"},$R[31]={a:"web.dev defines good as Largest Contentful Paint within 2.5 seconds, Interaction to Next Paint of 200 milliseconds or less, and Cumulative Layout Shift of 0.1 or less, measured at the 75th percentile of page loads. A new site often has no real-user data yet, so PageSpeed Insights will show lab results until enough visits accumulate.",q:"What are good Core Web Vitals scores for a new website?"},$R[32]={a:"Product Hunt's help center says the site runs on 24-hour periods in PST and a post goes live at 12:01 AM PST on its launch day. You can schedule a future date or save a draft. Posting needs a personal account, and Product Hunt says you cannot ask people directly to upvote.",q:"What time does a Product Hunt launch go live?"},$R[33]={a:"No. The Show HN guidelines list sign-up pages as off topic and say not to post landing pages or fundraisers. A Show HN needs something people can try now, ideally without a signup. Post it once the product is usable, and keep the waitlist for a soft launch.",q:"Can I post a landing page or waitlist as a Show HN?"},$R[34]={a:"It depends on where you operate and what you collect, so check the rules that apply to you; this is not legal advice. If you use Google Analytics, its terms require you to post a privacy policy that gives notice of cookies and discloses your use of Google Analytics.",q:"Do I need a privacy policy to launch a website?"}],comparison_table:$R[35]={rows:$R[36]=[$R[37]=["Before launch","Remove noindex and robots.txt blocks from production","Page source and response headers show no noindex; /robots.txt has no Disallow: / for all agents","Google Search Central"],$R[38]=["Before launch","Password-protect staging","Staging URL asks for a password in a private window","Google Search Central"],$R[39]=["Before launch","Install the Google Analytics tag","Your own visit appears in Realtime or DebugView","Google Analytics Help"],$R[40]=["Launch day","Submit the sitemap","The sitemap is listed in the Search Console Sitemaps report","Google Search Central"],$R[41]=["Launch day","Inspect and request indexing for key pages","URL Inspection live test says the page can be indexed","Google Search Console Help"],$R[42]=["Launch day","Post a Show HN (if people can try it now)","Post appears on the Show HN new page","Hacker News Show HN guidelines"],$R[43]=["Launch day","Launch on Product Hunt","Post goes live at 12:01 AM PST on the chosen day","Product Hunt Help Center"],$R[44]=["Days 1 to 3","Read analytics after processing","Standard reports filled in after 24 to 48 hours","Google Analytics Help"],$R[45]=["Weeks 1 to 4","Check indexing","URL Inspection and Page indexing report show pages indexed","Google Search Central"],$R[46]=["After real traffic","Recheck Core Web Vitals with field data","PageSpeed Insights shows real-user LCP, INP and CLS","PageSpeed Insights docs"]],headers:$R[47]=["When","Task","How to confirm it worked","Source"]},internal_links:$R[48]=[$R[49]={href:"/blog/soft-launch",label:"Soft launch vs hard launch"},$R[50]={href:"/blog/show-hn",label:"How to post a Show HN"},$R[51]={href:"/blog/directory-backlinks",label:"Do directory backlinks work"},$R[52]={href:"/blog/saas-seo",label:"SaaS SEO: pages, technical basics and the first 90 days"},$R[53]={href:"/",label:"VibeLaunch"}],sources:$R[54]=[$R[55]={url:"https://developers.google.com/search/docs/crawling-indexing/block-indexing",label:"Google Search Central: Block Search indexing with noindex"},$R[56]={url:"https://developers.google.com/search/docs/crawling-indexing/robots/intro",label:"Google Search Central: Introduction to robots.txt"},$R[57]={url:"https://developers.google.com/search/docs/crawling-indexing/control-what-you-share",label:"Google Search Central: Control what you share with Google (password protection)"},$R[58]={url:"https://developers.google.com/search/docs/crawling-indexing/canonicalization",label:"Google Search Central: What is URL canonicalization"},$R[59]={url:"https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls",label:"Google Search Central: How to specify a canonical URL with rel=\"canonical\" and other methods"},$R[60]={url:"https://developers.google.com/search/docs/crawling-indexing/301-redirects",label:"Google Search Central: Redirects and Google Search"},$R[61]={url:"https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics",label:"Google Search Central: JavaScript SEO basics (meaningful status codes)"},$R[62]={url:"https://developers.google.com/search/docs/crawling-indexing/sitemaps/overview",label:"Google Search Central: Learn about sitemaps"},$R[63]={url:"https://developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap",label:"Google Search Central: Build and submit a sitemap"},$R[64]={url:"https://developers.google.com/search/docs/crawling-indexing/ask-google-to-recrawl",label:"Google Search Central: Ask Google to recrawl your URLs"},$R[65]={url:"https://developers.google.com/search/docs/fundamentals/get-on-google",label:"Google Search Central: Get your website on Google"},$R[66]={url:"https://developers.google.com/search/docs/appearance/title-link",label:"Google Search Central: Influencing your title links"},$R[67]={url:"https://developers.google.com/search/docs/appearance/snippet",label:"Google Search Central: Meta descriptions and snippets"},$R[68]={url:"https://developers.google.com/search/docs/appearance/favicon-in-search",label:"Google Search Central: Favicons in Google Search"},$R[69]={url:"https://support.google.com/webmasters/answer/9008080?hl=en",label:"Search Console Help: Verify your site ownership"},$R[70]={url:"https://support.google.com/webmasters/answer/7451001?hl=en",label:"Search Console Help: Manage your sitemaps using the Sitemaps report"},$R[71]={url:"https://support.google.com/webmasters/answer/7440203?hl=en",label:"Search Console Help: Page indexing report"},$R[72]={url:"https://support.google.com/webmasters/answer/9012289?hl=en",label:"Search Console Help: URL Inspection tool"},$R[73]={url:"https://web.dev/articles/vitals",label:"web.dev: Web Vitals (Core Web Vitals thresholds)"},$R[74]={url:"https://web.dev/articles/why-https-matters",label:"web.dev: Why HTTPS matters"},$R[75]={url:"https://web.dev/articles/enable-https",label:"web.dev: Enable HTTPS on your servers"},$R[76]={url:"https://developers.google.com/speed/docs/insights/v5/about",label:"PageSpeed Insights: About PageSpeed Insights (field data, 28-day period)"},$R[77]={url:"https://support.google.com/analytics/answer/9304153?hl=en",label:"Google Analytics Help: Set up Analytics for a website and/or app"},$R[78]={url:"https://support.google.com/analytics/answer/9271392?hl=en",label:"Google Analytics Help: Realtime report"},$R[79]={url:"https://support.google.com/analytics/answer/7201382?hl=en",label:"Google Analytics Help: Monitor events in DebugView"},$R[80]={url:"https://support.google.com/analytics/answer/11198161?hl=en",label:"Google Analytics Help: Data freshness"},$R[81]={url:"https://marketingplatform.google.com/about/analytics/terms/us/",label:"Google Analytics Terms of Service (privacy policy requirement)"},$R[82]={url:"https://www.w3.org/WAI/test-evaluate/easy-checks/",label:"W3C WAI: Easy Checks, a first review of web accessibility"},$R[83]={url:"https://www.w3.org/WAI/WCAG22/Understanding/contrast-minimum.html",label:"W3C WAI: Understanding WCAG 2.2 Contrast (Minimum)"},$R[84]={url:"https://www.w3.org/WAI/tutorials/images/",label:"W3C WAI: Images tutorial (alt text)"},$R[85]={url:"https://ogp.me/",label:"The Open Graph protocol"},$R[86]={url:"https://news.ycombinator.com/showhn.html",label:"Hacker News: Show HN guidelines"},$R[87]={url:"https://help.producthunt.com/en/articles/479557-how-to-post-a-product",label:"Product Hunt Help Center: How to post a product"},$R[88]={url:"https://www.producthunt.com/launch",label:"Product Hunt: Launch guide and FAQ"},$R[89]={url:"https://vibelaunch.io/",label:"VibeLaunch homepage (what VibeLaunch does)"}],verified_at:"2026-10-12",extra_jsonld:null,created_at:"2026-10-12T10:13:54.030921+00:00",updated_at:"2026-10-12T10:13:54.030921+00:00"},ssr:!0}],lastMatchId:"�blog�$slug�blog�website-launch-checklist"})($R["tsr"]);$_TSR.e();document.currentScript.remove()</script><script type="module" async="" src="/assets/index-CcPrrbbv.js"></script></body></html>