Launch offerYour complete website for 995.– CHF instead of CHF 2,500.–For the first clients.View the offer

Website redesign: keeping your URLs and search visibility

To redesign a website without losing its search visibility, keep the URLs that receive visits or links. When a URL changes, redirect it with a 301 straight to the equivalent page. A page removed without a replacement returns 404 or 410. Take an inventory in Search Console before the redesign, then check every old URL after launch. These steps tell Google where each page now lives; they guarantee neither a ranking nor a timeframe.

Which URLs should you keep before a redesign?

Before changing the site structure, list the old site's URLs that receive impressions, visits or links. Google advises starting with the most important ones and explains where to find them in its guide How to move a site:

  • The current sitemap: it normally lists the URLs already submitted to Google.
  • Links to your site, in Search Console: the pages that receive internal or external links.
  • Server logs or your analytics tool: the most visited URLs and those visited at least once recently, over a period that allows for seasonal variation.

I add the Search Console Performance report, Pages tab, to export the URLs that received impressions. The default view only covers the past three months; choose the longest period available.

Combine these lists in a spreadsheet, one row per URL, then note the decision for each: the URL stays the same, changes or disappears. That spreadsheet becomes your redirect map.

Keep the variants of each page as well. In my own site's data, Search Console lists the same page with and without a trailing slash on two separate rows; both forms need to lead somewhere.

If the redesign itself is still undecided, the article on when and how to decide on a redesign covers that earlier step.

How do you build a one-hop 301 redirect plan?

The redirect map links each old URL to its final destination, with no intermediate step. The HTTP status codes involved are defined in RFC 9110:

  • 301 (Moved Permanently): the resource has been given a new permanent URL.
  • 308 (Permanent Redirect): same meaning as a 301, without allowing the request method to change.
  • 410 (Gone): the resource is no longer available, and this is likely to be permanent.

Google recommends server-side permanent redirects, 301 or 308, where technically possible. For its crawlers, a 301 is a strong signal that the redirect target should be processed, and a 308 is equivalent. A permanent redirect shows the new URL in search results.

Here is an extract from the eljadiworks.com redirect map:

Old URLNew URLCode
/en/articles/website-pricing-switzerland/en/website-pricing-switzerland/301
/articles/prix-site-internet-suisse/prix-site-internet-suisse/301
/en/articles/geneva-website-cost-2026//en/website-pricing-switzerland/301
/articles/combien-coute-site-internet-geneve-2026//prix-site-internet-suisse/301
/en/articles/klara-banana-bexio-swiss-sme-comparison/none410
/en/articles/bexio-website-integration-guide-2026/none410

The last two rows have no destination: these articles were removed without an equivalent page. For content deleted during a site move, Google asks for a 404 or 410 response.

What about trailing slashes and URL variants?

The same page can be reached at several URLs: with or without a trailing slash, with or without www, over http or https. Choose one form and redirect the others to it. For Google, redirects are a strong signal that the target should become canonical, the URL it keeps among duplicates.

On eljadiworks.com, the canonical form ends with a trailing slash. A URL without one returns a 308 redirect to the form with the slash. An old URL that is redirected goes straight to its final destination, already in canonical form: /en/articles/website-pricing-switzerland leads in one hop to /en/website-pricing-switzerland/, without passing through /en/website-pricing-switzerland.

The sitemap and the rel="canonical" tag give the same form. Google recommends listing in the sitemap the URLs you want to see in its search results, which means the canonical URLs. Its site move guide also asks you to replace old URLs in internal links.

How do you check every redirect after launch?

Check every old URL with an automated test, run again before each release: a manual check on launch day does not catch a rule added later that breaks an old redirect. On my site, the npm run qa:seo command reads the redirect map and the list of retired URLs from the code, then queries the site, locally or in production. Among other things, it checks:

  • each old URL: a single redirect, to the expected destination, which answers 200;
  • each retired URL: a 410 response;
  • deleted drafts: a 404 response;
  • the sitemap: no redirected, retired or draft URL;
  • internal links: none broken and none pointing to a retired URL;
  • in production, the http and www variants: a redirect to the https address without www.

It fails as soon as a row no longer matches and runs again with a single command.

After launch, Search Console adds a second check. The Sitemaps report shows how many submitted URLs are indexed, and the URL Inspection tool shows the status code a URL actually returns.

If you do not handle the technical side yourself, ask your provider for the complete redirect map and for a check of every row after launch.

What the moved and retired URLs of eljadiworks.com show

On eljadiworks.com, two moved articles redirect with a 301 to the pricing page, and four articles retired without an equivalent page return 410; those four articles had 723 impressions and 2 clicks in Search Console from 20 June to 3 October 2026. For a website redesign in Geneva, I treat the useful URLs of the old site the same way: I keep them or redirect them to their new page.

The figures come from the Search Console property for eljadiworks.com, retrieved on 5 October 2026. The property's data starts on 20 June 2026: unless stated otherwise, they cover 20 June to 3 October 2026. Position means Search Console's average position.

Four articles retired with a 410

I removed four articles, two in English and two in French: a guide to integrating bexio with a website and a KLARA, Banana and bexio comparison. No page on the site covers these subjects; their URLs return 410.

URLImpressionsClicksAverage positionFirst and last day with an impression
/en/articles/klara-banana-bexio-swiss-sme-comparison/42826.62026-07-05 and 2026-10-01
/articles/klara-banana-bexio-comparatif-pme-suisse/25506.22026-07-05 and 2026-10-03
/en/articles/bexio-website-integration-guide-2026/2906.12026-08-07 and 2026-09-26
/en/articles/bexio-website-integration-guide-2026 (no trailing slash)304.72026-07-07 and 2026-07-12
/articles/integrer-bexio-site-web-guide-2026/807.42026-07-07 and 2026-09-30
Total7232

The data stops on 3 October 2026, so it describes these articles while they were still online. They were seen, with an average position around 6, and almost never clicked. Over the 90 days from 6 July to 3 October 2026, they account for 717 of the 2,077 impressions counted page by page, and the English version of the comparison is the second most displayed page, after the English article on choosing between a freelancer and a web agency. Removing them therefore costs impressions.

Redirecting these URLs would have sent readers to an unrelated page, such as the pricing page or the home page. Google warns that redirecting many old URLs to one irrelevant page might be treated as a soft 404. For a page removed with no replacement of similar content, it asks for a 404 or 410 response.

Google makes no distinction between 404 and 410: all 4xx errors except 429 are treated the same, and an indexed URL that returns a 4xx code is removed from the index. I therefore expect no faster effect in Google from a 410. I use it for the meaning RFC 9110 gives it: the resource is intentionally unavailable, probably for good. Drafts that were never published return 404.

The row without a trailing slash illustrates the section on URL variants: Search Console counted the English bexio guide under two URLs, 3 impressions without the slash from 7 to 12 July 2026, then 29 with the slash from 7 August 2026. The data does not show why; it shows that an inventory has to cover both forms.

Two moves with a 301

Old URLDestinationImpressions of the old URLClicks
/en/articles/website-pricing-switzerland/en/website-pricing-switzerland/no datano data
/articles/prix-site-internet-suisse/prix-site-internet-suisse/no datano data
/en/articles/geneva-website-cost-2026//en/website-pricing-switzerland/180
/articles/combien-coute-site-internet-geneve-2026//prix-site-internet-suisse/10

The pricing article left the Articles section at the end of May 2026 to become the pricing page. That move predates the start of the data: Search Console recorded nothing for the old URL, and I have no before-and-after to show.

The article on the cost of a website in Geneva was merged into the pricing page in September 2026. Its two old URLs had received few impressions: 19 in total, no clicks. The French pricing page then recorded 27 impressions in the week of 28 September 2026, against 0 to 8 per week before, and the English page appeared for the first time on 1 October 2026. Three months of data on a small site are not enough to attribute this rise to the redirect.

Each old URL leads in one hop to its canonical destination, whether or not it has a trailing slash.

Which mistakes cost search visibility during a redesign?

  1. Redirect chains. URL A redirects to B, which redirects to C. Googlebot follows up to 10 hops, but Google advises redirecting to the final destination directly and, if that is not possible, ideally keeping to no more than 3 hops. A chain forms, for example, when a second redesign adds its rules without rewriting those of the first: update the old rows to point to the new destination.
  2. Redirecting everything to the home page. Sending many old URLs to one unrelated page, such as the home page, can confuse visitors and might be treated as a soft 404.
  3. The soft 404. This is a page that says the content does not exist, or a nearly empty page, served with a 200 status code. Search Console reports it in the Page Indexing report. A removed page returns 404 or 410; a page that has moved or has a clear replacement redirects with a 301, according to Google's guide to crawling errors.

For a URL returning a 4xx error, Google only states that it stops using it over time, with no stated duration. A 410 is the wrong choice when an equivalent page exists: a 301 to that page remains the recommended response.

Sources

Omar Eljadi, founder of Eljadi WORKS

Omar Eljadi

Founder of Eljadi WORKS

  • Site Reliability Engineer (SRE) intern · Infomaniak
  • IT support intern · Dassault Aviation Business Services

Let’s discuss your website.

Describe your business and the website you would like to create or redesign.

Discuss my project
Chat on WhatsApp (new tab)