Relaunch & migration

SEO check before go-live with more than 120 checks

The technical SEO sign-off for relaunches, migrations, new templates and larger releases. For each check you see how to spot the error and what to check it with.

Staging sign-offrobots.txtnoindexcanonicalredirects+ 120Live1 hour1 day1 week
Michael WeberLast updated: November 3, 202622 min read
In short
  • The go-live check is the technical SEO sign-off just before and right after launch. It applies to relaunches, migrations, new templates and larger releases.
  • The checklist has more than 120 points in 14 areas, from robots.txt to log files. For each point you see how to spot the error, what to check it with and when.
  • Check staging against a reference crawl of the live website, then check the same points again on the live site right after the deployment.
  • After that, keep watching at fixed intervals: in the first hour, on the first day and over the first weeks.

When do you need an SEO check before go-live?

Whenever templates, URLs or the way the website is delivered change. That covers a relaunch or a CMS switch just as much as a new product template, a frontend framework update, a new host or changed CDN rules. Many SEO errors come from perfectly normal releases. A template sets noindex, a canonical points to the staging domain, or the test environment's robots.txt ends up on the live server. Functional tests by the developers rarely catch these errors, because the page looks fine to visitors.

On staging, the fix costs a comment on a ticket. After go-live, it costs crawling, indexing and, in the worst case, clicks. And an error in a template hits every page of that type at once.

Which guide fits your question?
  • This guide covers the technical sign-off just before and right after launch, check by check.
  • The website migration checklist covers the whole relaunch project, from the pre-analysis through redirect mapping to a domain change.
  • The guide Staging environment and SEO shows how to protect the test environment itself and keep it testable.
  • How to test a redirect mapping in detail is covered in Testing redirects.

How do you prepare the sign-off?

A sign-off needs a baseline. If you check staging without one, you see what looks broken and miss what is missing. So decide up front what you compare against, what blocks the go-live and who signs off.

StepWhat you decide
Reference crawlA crawl of the live website shortly before go-live, with title, meta description, H1, canonical, robots directives, hreflang, structured data and internal links per URL. It is the baseline for every comparison.
URL sampleThree to five URLs per template plus the URLs with the most clicks in Search Console. You check this list by hand and the rest in the crawl.
Sign-off criteriaWhich findings block the go-live, for example noindex on indexable templates, a robots.txt block or missing redirects for top URLs. And which can follow as a ticket after go-live.
OwnershipWho signs off from an SEO point of view, and who can deploy and roll back on go-live day.
TimingPlan the go-live so that SEO and IT are available in the days after it and can roll out fixes straight away.
Rollback planWhat happens if a critical error shows up live. Roll back, hotfix or both, and who decides.
AccessCrawler access to staging via HTTP authentication, IP allowlisting or a cookie, and access to the log files of the new environment.

How do you crawl staging for the sign-off?

A sample is not enough for the sign-off. A crawl of the test environment shows whether every page type is reachable and what has changed compared with the live website.

  1. Set up access. The crawler logs in via HTTP authentication, uses an access cookie or comes in through an allowlisted IP address.
  2. Crawl with a smartphone user agent. Google crawls most pages with its smartphone crawler and mostly indexes the mobile version.
  3. Render JavaScript. Otherwise content and links that only appear in the browser are missing.
  4. Set the rules. If the staging robots.txt is not the real one yet, configure the crawler to ignore it. It still crawls noindex pages and reports them instead of skipping them.
  5. Compare with the reference crawl. Missing page types, new noindex tags, changed titles and lost links show up this way.

HTTP authentication protects the test environment reliably. A robots.txt with Disallow: / or noindex on every page does not prevent access and can go live with the deployment. The details are in the guide Staging environment and SEO.

The checklist by area

The following 14 areas contain more than 120 checks in total. Each table lists the check, how you spot the error, the tool and the timing. “Staging” means before go-live, “Live” right after it and “both” twice. The basis for each area is named in the text above it, and the links are under Sources.

Crawlability and robots.txt

The basis is Google's robots.txt specification. A robots.txt only applies to the host, protocol and port it is served from. Google generally caches the file for up to 24 hours. An accidental block therefore keeps working for a while even after a quick fix. The most common error is the test environment's file on the live server. Rules for AI bots are explained in the guide AI crawlers.

# Common on staging, dangerous at go-live User-agent: * Disallow: /
CheckHow you spot the errorToolWhen
Right file liveThe live robots.txt contains Disallow: / or rules from the test environmentBrowser, curl, robots.txt TesterLive
No new blocksImportant directories, page types or parameters are newly blocked compared with the old fileOld file compared with new fileboth
Resources allowedCSS, JavaScript, images or API paths needed for rendering are under Disallowrobots.txt report in Search Console, crawler with renderingboth
Status code 200The file returns 5xx. Google then stops crawling the website for the first 12 hours. With 4xx other than 429, Google treats the website as if there were no robots.txtcurl -ILive
Redirected fileThe robots.txt redirects over several hops. Google follows at least five and then treats it like a 404curl -sILLive
File sizeThe file is larger than 500 KiB. Google ignores everything after thatcurl, file sizeboth
All hostsNew subdomains, language hosts or a CDN host have no robots.txt of their own, or the wrong onecurl per hostLive
Sitemap lineThe sitemap line is missing, relative or points to the staging domainBrowserboth
Rules for AI botsRules for GPTBot, OAI-SearchBot, ClaudeBot or the Google-Extended token are missing or have changed by mistakeOld file compared with new fileboth
Bot protection and firewallNew WAF, CDN or bot protection rules send Googlebot a 403, a 429 or a captcha pageLog files, crawl stats in Search ConsoleLive

Indexing signals: noindex, canonical and X-Robots-Tag

The basis is Google's documentation on noindex and on canonicalization. A noindex only works if Google is allowed to crawl the page. Combine it with a robots.txt block and Google never sees the noindex. Google only accepts the canonical in the <head> and recommends absolute URLs for it. More in the guide Canonical tag.

CheckHow you spot the errorToolWhen
No new noindexIndexable templates carry noindex in the meta robots tagCrawler, comparison with reference crawlboth
X-Robots-Tag in the headerThe HTTP header contains X-Robots-Tag: noindex, often from a development server rule, PDFs includedcurl -Iboth
Intended noindex staysInternal search, filter pages or login areas are suddenly indexableCrawler, comparison with reference crawlboth
noindex not blockedPages with noindex are also under DisallowCrawler with robots.txt checkboth
Rendered matches sourceJavaScript changes the robots directives after loading, for example from index to noindexCrawler with rendering, URL Inspection in Search Consoleboth
Password protection removedLive URLs return 401 or 403curl -I, HTTP Status Code CheckerLive
Canonical presentIndexable pages have no canonical or an empty oneCrawlerboth
Canonical absolute and liveThe canonical is relative, contains the staging domain, http instead of https or another hostCrawlerboth
Clean canonical targetThe target redirects, returns 404, carries noindex or is simply the homepageCrawlerboth
One canonical per pageThe HTML contains several rel="canonical", or HTML and link header name different URLsCrawler, curl -Iboth
Canonical in the headThe canonical sits in the <body>, for example because a script inserts it thereSource code, rendered HTMLboth
Parameters and paginationFilter, sort and page URLs point somewhere other than before, or all paginated pages point to page 1Crawler, comparison with reference crawlboth

Status codes and redirects

The basis is Google's documentation on HTTP status codes and on site moves. Google does not index URLs that return a 4xx status and removes those already indexed. With persistent 5xx errors, URLs eventually drop out too. By default, Google's crawlers follow up to ten redirect hops in a row. For a site move, Google still recommends avoiding chains and sending old URLs straight to their target.

How to test a full redirect mapping is covered in the guide Testing redirects, and the difference between redirect types is explained in 301 vs. 302 redirect.

CheckHow you spot the errorToolWhen
Important URLs return 200The URLs with the most clicks return 3xx, 4xx or 5xxCrawler with URL list, HTTP Status Code Checkerboth
Unknown URLs return 404A made-up URL such as /does-not-exist-123/ returns 200 or redirects to the homepagecurl -Iboth
No soft 404Empty categories, sold-out products or error messages come with status 200Crawler (word count, title), Page indexing reportboth
Deleted contentPages without a successor redirect to the homepage instead of returning 404 or 410Crawler with old URL listboth
Redirect mappingOld URLs from the mapping end on a 404, on the wrong target or on the homepageCrawler with old URL listboth
Permanent redirectsRedirects come as 302, 307, via JavaScript or meta refresh instead of 301 or 308curl -sIL, Redirect Checkerboth
No chainsAn old URL needs more than one hop to reach its targetCrawler, Redirect Checkerboth
No loopsTwo rules redirect in a circle, often between the version with and without a trailing slashCrawlerboth
Target is indexableThe redirect target returns 200 but carries noindex or a canonical to another URLCrawlerboth
Host variantshttp, https, with and without www, trailing slash and upper case need several hops or serve duplicate contentcurl -sIL per variantLive
Parameters surviveUTM or campaign parameters get lost in the redirect even though they are neededcurl -sILboth
Files and mediaOld image, PDF and sitemap URLs return 404Crawler with old URL listLive
Maintenance with 503A maintenance page returns 200, or 503 stays in place for dayscurl -ILive
Load and server errorsUnder load or after clearing the cache, 5xx errors and response times go upCrawl stats, log filesLive
No redirect by locationVisitors are redirected automatically by IP address or browser language. By default Googlebot crawls from US IP addresses and sends no Accept-Language header, so it only sees one versioncurl with and without Accept-Language, log filesboth

You can check single URLs in the terminal without any tool. On staging, add -u user:password to the command.

# Check status code, robots header and canonical of a URL curl -sI https://www.example.com/category/ | grep -iE "^HTTP|x-robots-tag|^link" curl -s https://www.example.com/category/ | grep -ioE '<meta name="robots"[^>]*>|<link rel="canonical"[^>]*>' # Show the redirect chain of an old URL curl -sIL http://example.com/old-page/ | grep -iE "^HTTP|^location" HTTP/1.1 301 Moved Permanently location: https://www.example.com/new-page/ HTTP/2 200 # Check the status code of an unknown URL, 404 is expected curl -s -o /dev/null -w "%{http_code}\n" https://www.example.com/does-not-exist-123/ 404

The basis is Google's documentation on crawlable links. Google only follows links in <a> elements with an href attribute. Internal links help Google find new pages and understand how they relate. You check many of these points against the reference crawl, because a missing link does not show up in a single crawl.

CheckHow you spot the errorToolWhen
No staging linksLinks, images or scripts point to the staging domain or to absolute DEV URLsCrawler, search in source codeboth
No links to 404Navigation, footer or body text link to pages returning 404Crawler, Link Checkerboth
No links to redirectsInternal links point to old URLs and run through redirectsCrawlerLive
Crawlable linksNavigation or filters use onclick, <span> or buttons without hrefCrawler with and without rendering, source codeboth
Navigation in the HTMLThe menu only appears after a click or is missing in the mobile viewCrawler with smartphone user agent and renderingboth
BreadcrumbsThe breadcrumb navigation is missing, and parent pages lose the links from all their child pagesCrawler, comparison with reference crawlboth
Number of internal linksImportant categories get noticeably fewer internal links than beforeCrawler, comparison with reference crawlStaging
Click depthImportant pages are more clicks away from the homepage than beforeCrawler, comparison with reference crawlStaging
Anchor textsNew labels in navigation or teasers change the anchor texts on many pagesCrawler, comparison with reference crawlStaging
No internal nofollowInternal links newly carry rel="nofollow"Crawlerboth
Facets and paginationFilters create countless crawlable combinations, or page 2 onwards is no longer linkedCrawlerStaging
No orphan pagesURLs from the sitemap no longer get any internal linkCrawler with sitemap comparisonboth

XML sitemaps

The basis is Google's guide to building sitemaps. A single file may contain at most 50,000 URLs or 50 MB uncompressed. Larger websites split the sitemap and combine the files in a sitemap index. Google only uses lastmod if the date is consistently accurate, and it ignores priority and changefreq. More in the guide XML sitemap.

CheckHow you spot the errorToolWhen
ReachableThe sitemap listed in robots.txt returns 404 or 5xx or redirectscurl -I, Sitemap CheckerLive
Live domainURLs in the sitemap contain the staging domain, http or the wrong hostCrawler in list mode, search in the fileboth
Only clean URLsThe sitemap contains redirects, 404s, noindex pages or non-canonical URLsCrawler in list mode, Sitemap Checkerboth
LimitsA file exceeds 50,000 URLs or 50 MB, or the sitemap index points to missing filesFile size, URL countboth
CompletePage types are missing, or the number of URLs per page type differs a lot from the reference crawlSitemap compared with crawlboth
Accurate lastmodAll URLs carry the release date instead of the date of their last real changeCheck the fileboth
Valid XMLSpecial characters are not escaped, the namespace is missing or the file is not UTF-8 encodedSitemaps report in Search ConsoleLive
Additional sitemapsImage, video or news sitemaps from the old system are missingComparison with old robots.txt and Search ConsoleLive
hreflang in the sitemapLanguage annotations in the sitemap contradict those in the HTMLCrawlerboth
SubmittedThe new sitemap has not been submitted, or its status shows errorsSearch Console, Bing Webmaster ToolsLive

hreflang

The basis is Google's documentation on localized versions. Each language version lists itself and all the others, and the other side has to link back. Without the return link, Google ignores the annotation. More in the guides hreflang and hreflang and canonical.

CheckHow you spot the errorToolWhen
Self-referenceA language version lists all the others but not itselfCrawler, Hreflang Checkerboth
Return linksVersion A points to B, but B does not point back to ACrawler with hreflang reportboth
Valid codesLanguage or region codes are wrong, for example en-UK instead of en-GBHreflang Checkerboth
Absolute live URLshreflang URLs are relative or point to the staging domainCrawlerboth
Indexable targetshreflang targets redirect, return 404, carry noindex or a different canonicalCrawlerboth
x-defaultThe country selector or default version is not marked as x-defaultSource codeboth
One methodhreflang appears in HTML, header and sitemap with different valuesCrawler, curl -Iboth
In the head and renderedhreflang sits in the <body> or is missing from the rendered HTMLCrawler with renderingboth
Language switcherThe switcher links to the other language's homepage instead of the matching pageBrowser, crawlerStaging

Rendering and JavaScript

The basis is Google's documentation on JavaScript SEO, mobile-first indexing and lazy loading. Google mostly indexes the mobile version of a page and does not interact with it while rendering. Googlebot reads the first 2 MB of an HTML file, measured uncompressed. How far source code and rendered HTML can drift apart is shown in the JavaScript crawling study.

CheckHow you spot the errorToolWhen
Main content renderedText, product data or reviews are missing from the rendered HTMLCrawler with rendering, URL Inspection live testboth
Links renderedLinks in navigation or lists only appear after an interactionCrawler with renderingboth
Stable SEO tagsTitle, canonical, robots directives or hreflang differ between source code and rendered HTMLCrawler with both viewsboth
Resources reachableJavaScript, CSS or API files return 4xx or 5xx or are blocked in robots.txtURL Inspection (page resources), browser developer toolsboth
Loading without interactionContent only appears after scrolling or clickingCrawler with renderingboth
Error status in single-page appsUnknown URLs show an error message with status 200curl -I, URL Inspectionboth
No hash URLsContent sits behind # fragments, which Google does not crawl as separate URLsCrawlerStaging
HTML sizeThe HTML is larger than 2 MB, for example because of embedded data or inline SVGBrowser developer tools, crawlerStaging
Mobile matches desktopThe mobile version shows less content, fewer links, less structured data or different meta tagsCrawler with smartphone and desktop user agentboth
Banners and overlaysA consent banner or overlay covers the content or only loads it after consentCrawler with rendering and screenshotboth

Structured data

The basis is Google's general structured data guidelines. The markup has to describe the visible content of the page. If it violates the guidelines, the page can lose its rich results. How AI systems handle markup is covered in the guide Schema markup and AI.

CheckHow you spot the errorToolWhen
Markup presentA template has lost its markup, for example Product, BreadcrumbList or OrganizationCrawler with extraction, comparison with reference crawlboth
Markup validRequired fields are missing, or values have the wrong formatRich Results Test, Schema Markup Validatorboth
Matches the contentPrice, availability or ratings in the markup differ from the visible pageSpot check in the browserboth
Live URLs in the markupURLs in fields such as url, image or item contain the staging domainSearch in source codeboth
No duplicate markupPlugin and template output the same markup twice with different valuesRich Results Testboth
Reports after go-liveThe rich result reports show new errors or fewer valid itemsSearch ConsoleLive

Title, meta description and headings

The basis is Google's documentation on title links. Google builds the title in search results from the title element and other information on the page, and it recommends unique, descriptive titles. Compare each URL with the reference crawl so that optimizations from earlier SEO work survive the go-live.

CheckHow you spot the errorToolWhen
Title carried overTitles are missing, empty or have fallen back to the new system's defaultCrawler, comparison with reference crawlStaging
No placeholdersTitles or headings show template variables such as %product_name% or “Default Title”Crawler, pattern searchboth
Unique titlesMany pages share the same title, for example filter or pagination pagesCrawlerStaging
Meta descriptionDescriptions are missing or identical on every pageCrawlerStaging
One H1 with the topicThe H1 is missing, duplicated or no longer contains the page's keywordCrawler, comparison with reference crawlStaging
Complete contentCategory texts, product descriptions or FAQs are missing after the data migrationCrawler (word count), comparison with reference crawlStaging
Character encodingSpecial characters show up garbled in title, description or textBrowser, crawlerboth
Social previewOpen Graph tags are missing or point to images on the staging domainSource codeboth

Images and media

The basis is Google's image best practices. Google does not index CSS background images and finds images through the src attribute of the <img> element. Alt text helps Google understand an image. Google also recommends always referencing an image with the same URL.

CheckHow you spot the errorToolWhen
Images as imgImportant images only exist as CSS backgroundsCrawler, source codeStaging
Alt textsAlt texts from the old system are missing. For linked images, the alt text also serves as anchor textCrawler, comparison with reference crawlStaging
Stable image URLsImage URLs have changed and the old ones do not redirectCrawler with old image URL listboth
Images not blockedThe image directory or the CDN host is under Disallowrobots.txt of the image host, robots.txt TesterLive
Lazy loadingImages have no src, only a data-src that is set on scrollCrawler with renderingboth
DimensionsImages without width and height shift the layout while loadingLighthouseStaging
VideosVideo pages, thumbnails or the video sitemap are missingCrawler, video report in Search Consoleboth
PDFsPDFs with clicks or links are gone, or an X-Robots-Tag blocks them by mistakeCrawler with old URL list, curl -Iboth

Performance and Core Web Vitals

The basis is Google's documentation on Core Web Vitals. Good means an LCP of 2.5 seconds at most, an INP below 200 milliseconds and a CLS below 0.1. Before go-live you measure in the lab, afterwards the field data of real users counts. PageSpeed Insights and the Chrome UX Report summarize this field data over the previous 28 days. Changes therefore only show up there gradually. More in the guide Core Web Vitals.

CheckHow you spot the errorToolWhen
Lab values per templateImportant templates are noticeably slower on staging than on the old websiteLighthouse, PageSpeed InsightsStaging
LCP elementThe largest image above the fold has loading="lazy" or is requested lateLighthouse, browser developer toolsStaging
Server responseTime to first byte goes up, especially for uncached pagesBrowser developer tools, crawl statsboth
Caching and CDNCache headers are missing, or the CDN serves HTML uncachedcurl -ILive
Third-party scriptsNew tags, chat widgets or A/B testing scripts block renderingLighthouse, browser developer toolsboth
Field dataField data gets worse in the weeks after go-liveCore Web Vitals report in Search Console, PageSpeed InsightsLive

Tracking and consent

Without clean data you cannot evaluate the go-live. Check tracking as part of the same sign-off. The basis for consent is Google's documentation on Consent Mode. Which tags may load before consent is something you clarify with the people responsible for data protection.

CheckHow you spot the errorToolWhen
Tag on all templatesThe Google tag or the Tag Manager container is missing on individual templatesTag Assistant, crawler with extractionboth
Data arrivesPage views and conversions do not show up in the realtime view or in DebugViewGA4 DebugView, Tag Manager previewboth
ConsentTags load before consent, or no longer load at all after consent. Consent Mode signals are missingTag Assistant, browser developer toolsboth
No double trackingOld and new tags run in parallel and count page views twiceTag Assistant, browser developer toolsLive
Campaign parametersUTM or gclid parameters get lost in redirectscurl -sIL, GA4Live
Release documentedDate and time of the go-live are missing from analytics, dashboards and ticketsAnnotations, changelogLive

Search Console

The basis is the Search Console help pages. Ownership verification only lasts as long as Google finds the token. If it sits in the old template as an HTML file or meta tag and is missing from the new one, you lose access to the property after a grace period. A domain property is verified via a DNS record and does not depend on the template.

CheckHow you spot the errorToolWhen
Verification staysThe token as HTML file or meta tag is missing from the new templateSearch Console settings, source codeboth
New properties in advanceNew domains, subdomains or language folders are not verified before go-liveSearch Console, Bing Webmaster ToolsStaging
Access sortedAgency, IT or editorial team have no access to the new propertyUsers and permissionsStaging
Sitemaps submittedNew sitemaps are missing, or old ones show errorsSitemaps reportLive
URL Inspection per templateThe live test shows noindex, a different canonical, blocked resources or missing contentURL Inspection live testLive
Change of addressAfter a domain or subdomain change, the move has not been reported. For a relaunch on the same domain you do not need the toolChange of Address tool, Site Move tool in BingLive
Watch the reportsPage indexing shows new exclusions, crawl stats show more errors or slower responsesPage indexing, crawl statsLive

Log files

Log files show what Googlebot actually requests, including URLs that never appear in a crawl. The Googlebot user agent is often faked. Google therefore recommends verifying requests with a reverse DNS lookup or against its published IP ranges. More in the guide Log file analysis.

CheckHow you spot the errorToolWhen
Log accessWith a new host or CDN, the logs or the bot lines are missingHosting, CDN logsStaging
Googlebot verifiedFake Googlebot requests distort the analysisReverse DNS lookup, Google IP rangesLive
Status codes for GooglebotThe share of 3xx, 4xx or 5xx in Googlebot requests rises after go-liveLog file analysisLive
Crawled URLsGooglebot mainly requests old URLs, parameters or resources and hardly any new pagesLog file analysisLive
Crawl activityGooglebot requests noticeably fewer pages than before go-liveLog file analysis, crawl statsLive
AI botsRequests from AI bots drop, often because of new bot protection rulesLog file analysisLive
# Verify Googlebot with a reverse DNS lookup host 66.249.66.1 1.66.249.66.in-addr.arpa domain name pointer crawl-66-249-66-1.googlebot.com. # Cross-check: the hostname must resolve to the same IP host crawl-66-249-66-1.googlebot.com crawl-66-249-66-1.googlebot.com has address 66.249.66.1

Monitoring after go-live

A clean staging build can still look different live, for example because of caches, CDN rules or environment variables. Right after the deployment, check every point marked “Live” or “both” in the checklist. After that, continue at fixed intervals. For medium-sized websites, Google says it takes a few weeks or more until the new URLs replace the old ones in search. For large websites it takes even longer.

PeriodWhat you checkTool
First hourrobots.txt, status codes, robots directives and canonicals of the URL sample, redirects of the top URLs, tracking in the realtime viewcurl, crawler with URL list, GA4
First dayCrawl of the whole website and of the complete old URL list, submit sitemaps, URL Inspection per template, 5xx errors and response times in the logsCrawler, Search Console, log files
First weekPage indexing per sitemap, crawl stats, new 404s from logs and Search Console, internal links to redirects, rich result reportsSearch Console, log files, crawler
Weeks 2 to 6Clicks and impressions per page type compared with the period before go-live, rankings of the most important keywords, number of organic landing pagesSearch Console, rank tracking
From month 2Core Web Vitals field data, redirects with hits in logs or external links, remove the old sitemap once the old URLs have left the indexSearch Console, PageSpeed Insights, log files

The sign-off is a snapshot. Every further release can bring the same errors back. Keep checking the critical points, above all robots.txt, robots directives, canonicals and the status codes of your most important pages.

Common mistakes

  • The staging robots.txt with Disallow: / goes live.
  • An X-Robots-Tag: noindex from the development server configuration stays in place.
  • Canonicals, hreflang or sitemap URLs point to the staging domain.
  • Unknown URLs return 200, so missing redirects go unnoticed.
  • The Search Console verification lived in the old template and is gone.
  • New bot protection rules lock Googlebot out.
  • JavaScript changes the title or canonical after loading.
  • Only staging gets checked, not the live site again.

Frequently asked questions

When do you run the SEO check before go-live?

Twice. The sign-off on staging starts as soon as the build that is meant to go live is fixed, with enough time for fixes. Right after the deployment, you check the same points on the live website.

How many URLs do you need to check?

By hand, a sample of three to five URLs per template plus the URLs with the most clicks. A crawl of the whole staging environment, compared with a crawl of the live website, covers everything else.

What blocks the go-live?

Anything that can take many pages out of the index at once or cost clicks. That includes a robots.txt block, noindex on indexable templates, missing redirects for top URLs and canonicals pointing to the staging domain. Smaller findings such as a few missing alt texts can follow as a ticket after go-live.

Do you need the Change of Address tool after a relaunch?

Only if the domain or subdomain changes. For a relaunch on the same domain and for a switch from HTTP to HTTPS, you do not report anything. Details are in the website migration checklist.

What do you do if a noindex shows up after go-live?

Remove it, roll out the fix and recheck the affected URLs. Request indexing for important URLs via URL Inspection in Search Console, and use an up-to-date sitemap for large numbers of URLs. The Page indexing report then shows whether the pages come back.

How do I remove staging URLs that are already indexed?

Keep the pages crawlable for now and set noindex, or let them return 404 or 410. Add the password protection after that. For quick, temporary hiding, Search Console has the Removals tool. More in the guide Staging environment and SEO.

searchVIU crawls your staging environment regularly, even behind a login, password protection or IP allowlisting, and reports SEO errors before the release goes live. Staging Monitoring is running as a pilot. For a relaunch, searchVIU compares every old URL with its successor, covering keywords, content, internal links and pages per page type, weighted by clicks. After go-live, Page Watch checks your most important pages continuously, spread across the day. searchVIU checks the robots.txt every 15 minutes and crawls the whole website every week. Find out more on the SEO relaunch & migration page.

Request a demo

Sources

Retrieved on November 3, 2026. If something is out of date or missing, let us know.

  1. Google, robots.txt specification: https://developers.google.com/crawling/docs/robots-txt/robots-txt-spec · As of Aug 31, 2026
  2. Google, Introduction to robots.txt: https://developers.google.com/search/docs/crawling-indexing/robots/intro · As of Dec 10, 2025
  3. Google, Block search indexing with noindex: https://developers.google.com/search/docs/crawling-indexing/block-indexing · As of Dec 10, 2025
  4. Google, Consolidate duplicate URLs (canonical): https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls
  5. Google, HTTP status codes, network and DNS errors: https://developers.google.com/crawling/docs/troubleshooting/http-status-codes
  6. Google, Redirects and Google Search: https://developers.google.com/search/docs/crawling-indexing/301-redirects · As of Apr 14, 2026
  7. Google, Site moves with URL changes: https://developers.google.com/search/docs/crawling-indexing/site-move-with-url-changes · As of Aug 20, 2026
  8. Google, Locale-adaptive pages: https://developers.google.com/search/docs/specialty/international/locale-adaptive-pages
  9. Google, Make your links crawlable: https://developers.google.com/search/docs/crawling-indexing/links-crawlable
  10. Google, Build and submit a sitemap: https://developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap
  11. Google, Localized versions (hreflang): https://developers.google.com/search/docs/specialty/international/localized-versions · As of Sep 21, 2026
  12. Google, Understand JavaScript SEO basics: https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics
  13. Google, Fix lazy-loaded content: https://developers.google.com/search/docs/crawling-indexing/javascript/lazy-loading
  14. Google, Mobile-first indexing best practices: https://developers.google.com/search/docs/crawling-indexing/mobile/mobile-sites-mobile-first-indexing
  15. Google, Googlebot: https://developers.google.com/search/docs/crawling-indexing/googlebot
  16. Google, General structured data guidelines: https://developers.google.com/search/docs/appearance/structured-data/sd-policies
  17. Google, Influencing title links in search results: https://developers.google.com/search/docs/appearance/title-link
  18. Google, Image SEO best practices: https://developers.google.com/search/docs/appearance/google-images
  19. Google, Core Web Vitals and Google Search: https://developers.google.com/search/docs/appearance/core-web-vitals
  20. Google, About PageSpeed Insights: https://developers.google.com/speed/docs/insights/v5/about
  21. Google, Consent mode overview: https://developers.google.com/tag-platform/security/concepts/consent-mode
  22. Search Console Help, Verify your site ownership: https://support.google.com/webmasters/answer/9008080?hl=en
  23. Search Console Help, Change of Address tool: https://support.google.com/webmasters/answer/9370220?hl=en
  24. Google, Verifying requests from Google's crawlers: https://developers.google.com/crawling/docs/crawlers-fetchers/verify-google-requests