Skip to content

Web Design

Website Redesign Without Losing Google Rankings

The checklist I use to redesign a website without losing Google rankings: URL inventory, redirects, title parity, speed, and what to watch after launch.

By Zahid Aramai

Website Redesign Without Losing Google Rankings

A redesign is the most dangerous thing most businesses ever do to their Google traffic, and almost nobody treats it that way. The new site looks better, the agency is proud, and six weeks later the enquiries have halved because forty pages quietly disappeared and the ones that remained lost the headings Google was ranking.

I am writing this while rebuilding my own fourteen-year-old website, which brings me most of my clients, so the stakes are personal. This is the checklist. It applies whether you are moving from WordPress to WordPress, from Wix to WordPress, or from WordPress to anything else.

Why redesigns lose rankings

Google ranks URLs, not designs. It has a record of each address on your site, what it says, what links to it and how people respond to it. A redesign puts all of that at risk at once. Rankings fall when an address stops answering, when it answers with different content, or when Google needs weeks to learn a new set of addresses.

So the aim is simple: make the new site look and work differently for people while looking identical to Google on day one. Everything below serves that aim. The order matters, because the expensive mistakes are made before anyone opens a design tool.

Three ways a redesign loses a ranking page: a changed URL without a redirect, a rewritten title and H1, or a noindex left onA page Google ranksURL changed,no redirectAnswers 404Title and H1rewrittenRe-evaluatednoindex lefton at launchDropped
Three failure points: each one turns a page Google already trusts into a 404, a page it must judge again, or a page it drops.

Google’s own guide to moving a site with URL changes says the same thing in more words: map every old URL, redirect it, and keep the new site consistent.

Google Search Central documentation page titled How to move a site, listing URL changes such as HTTP to HTTPS and path changes
Google's site move guide on Search Central, the official reference for changing URLs without losing search traffic.

Before you touch the design

1. Crawl the current site and keep the crawl

Run a crawler over the live site and export every URL with its status code, title, meta description, H1, canonical and robots directive. This file is the contract the new site must honour. Without it you are redesigning from memory, and memory forgets the 2019 blog post that ranks for your most valuable query.

Do not trust one source for the list of URLs. The sitemap shows what the site says it has. Search Console shows what Google is showing to searchers. A crawler shows what a visitor can reach by clicking. Merge all three and remove duplicates; the pages that appear in one list but not the others are often the ones people forget, such as old landing pages, PDF files and tag pages. Save the merged list as a spreadsheet with a column for the decision on each URL.

Source What it shows What it often misses
XML sitemap What the site says it has Old landing pages and PDFs
Search Console What searchers see Pages with no clicks yet
Crawler What a visitor can reach Orphan pages

On my own migration the sitemap was the starting list: every one of the 147 URLs in the live WordPress sitemap had to exist on the new site.

The XML sitemap of zahidaramai.com in a browser, listing page URLs such as about-me and blog
The live sitemap of zahidaramai.com after the move: the same addresses WordPress listed, now served by the new build.

2. Pull the pages that actually earn

In Google Search Console, export clicks and impressions by page for the last twelve months, and the same by query. Sort by clicks. The top twenty pages are the ones that must come through untouched. Any plan that removes one of them needs a very good reason.

Export Range What it tells you
Pages, sorted by clicks Last 12 months The pages that must come through untouched
Queries, sorted by clicks Last 12 months The words each page is ranking for
Links report, top linked pages Current Which URLs other sites point at

Directories, partner sites, your Google Business Profile, social profiles, email signatures, printed material. Each points at a specific URL. Those URLs either stay or get a redirect; there is no third option.

Where the link lives Who can change it If its URL changes
Google Business Profile You Update it and add a 301
Directories and partner sites Someone else 301 is the only fix
Social profiles, email signatures You Update them and add a 301
Printed material, QR codes Nobody, once printed 301 kept for years

For WordPress sites, also note any URLs created by plugins, such as shop categories, event pages or custom post types, because these are easy to lose when the theme changes.

4. Decide what stays, what merges and what goes

For each URL: keep as is, merge into another page, or remove. Merging means a redirect to the page that absorbs the content. Removing means a redirect to the closest relevant page, never to the home page in bulk. Write the redirect map now, before the new site exists.

Decision for every old URL: keep it, merge it with a 301 to the absorbing page, or remove it with a 301 to the closest pageEach old URLKeepSame address,no redirectMerge301 to the pagethat absorbs itRemove301 to theclosest pageNever: everything to the home page
Every URL in the inventory gets exactly one of three decisions, written down before the new site exists.

A good redirect map is one-to-one: each old URL points to the single new page that answers the same question. Use permanent 301 redirects. Avoid chains, where A goes to B and B goes to C, because each hop adds delay and risk. Check the map for loops. A short example of how it looks in an Apache .htaccess file:

Redirect 301 /old-services/ /services/
Redirect 301 /blog/2019/old-post/ /blog/new-post/

Whatever the host uses (Apache, Nginx or a Cloudflare redirects file), the logic is the same. Keep the map in a spreadsheet as well, so you can test it line by line after launch.

This is what part of my own map looks like. The old WordPress blog lived under /blog/, the new site serves posts at the root, so one rule covers every post in one hop.

Five real rows from the zahidaramai.com redirect file: blog posts, about, contact, tags and the old sitemap, each a 301
Five real rows from my redirect file; all 133 old addresses passed the redirect test on launch day.

On WordPress you do not need to touch server files. A plugin such as Redirection keeps the map inside the dashboard and logs 404s, which is useful after launch too.

The Redirection plugin welcome screen in WordPress admin explaining source URL and target URL
The Redirection plugin's setup screen in a fresh WordPress install: each rule is a source URL and a target URL.

While building the new site

5. Keep the URLs

Same paths, same trailing slashes, same case. If the platform forces a change, map every old URL to its new one in the redirect file and test each one.

On WordPress the URL pattern comes from one setting. If the old site used “Post name”, the new one must too, or every post address changes at once.

WordPress Permalink Settings screen with options Plain, Day and name, Month and name, Numeric, Post name and Custom Structure
WordPress Permalink Settings: switching this one option changes the address of every post on the site.

6. Keep titles, meta descriptions and H1s identical on launch day

Improving them is tempting. Do it later, one page at a time, when you can measure the effect. The same goes for canonical tags: each page should point at itself, with the same address form (with or without www, with the trailing slash) as before, or Google may treat the new pages as duplicates of the old. On launch day the head of every page should match the crawl from step one character for character. Build this as an automated check if you can; I generate the new site’s head values straight from the crawl file so they cannot drift.

Before and after comparison of the title and H1 of the freelance web designer page on zahidaramai.com, identical on WordPress and the new site
One of my own pages before and after the move: the title and H1 are identical, and all 147 pages passed the parity check against the old crawl.

7. Keep the indexed text

The paragraph your service page ranks for is probably halfway down, in a section the designer wants to cut because it is “too wordy”. Keep the content and restyle it. Shorten later, with data.

Check that the text is in the page’s HTML, not drawn by a script after the page loads or locked inside an image. View the page source or use the “inspect URL” tool in Search Console to see what Google receives.

The freelance web designer page on the new zahidaramai.com, with the same H1 and the original WordPress intro paragraphs in a new design
The same page on the new site: new layout, but the H1 and the paragraphs Google was ranking came across word for word.
Search Console Help page for the URL Inspection tool, which shows Google’s indexed version of a page
Google's help page for the URL Inspection tool, which shows the HTML Google actually received for a page.

8. Rebuild the structured data

If the old site emitted Organization, LocalBusiness, Article or FAQ markup, the new one must emit the same types on the same pages, validated. Losing rich results is a traffic drop that never shows up as a ranking change.

Page type on my site Structured data types carried over
Home page LocalBusiness, FAQPage, Person, WebSite
Service pages ProfessionalService, Service
Blog posts and portfolio pages Article, ImageObject, Organization, Person, WebPage
About page Person, ProfilePage

9. Preserve images and their URLs where you can

Old image URLs rank in image search and are embedded elsewhere. Keeping the upload folder path alive, or redirecting it, costs little and avoids a thousand broken links.

Old image address What I did Answer after launch
Uploads folder on the main domain Copied every upload the crawl found to the same path 200, same file
The old image CDN subdomain Keeps serving for the 30-day rollback window Then one 301 to the main-domain copy
Rebuilt images under new names Used only by new pages No old URL to protect

10. Make it faster, not just prettier

Measure Core Web Vitals on the old site, then target better numbers on the new one on real mobile connections. A redesign that is slower than the site it replaced will lose ground regardless of how careful the rest was.

Measure Google’s “good” My site on launch day
LCP (loading) 2.5 s or less 1.9 s home, 1.7 s pricing
CLS (layout shift) 0.1 or less 0 on the home page
INP (response) 200 ms or less Field data, read after launch
Lighthouse score None official 93 home, 97 pricing

11. Keep the staging site out of Google

Password-protect it or send a noindex header for the staging host. A staging copy that gets indexed creates duplicates of every page and confuses the launch.

The opposite mistake is as common: the noindex tag or the password stays on after launch, and the real site slowly drops out of Google. Add “remove staging noindex” to the launch-day list as its own line, and check the live pages’ source and response headers for it. A robots.txt that blocks everything is the same problem in a different file.

The review copy sends a noindex header and stays out of Google; the live domain sends no noindex and submits its sitemapReview copyLive domainnoindex headerno noindex anywhereno analyticsanalytics onnot in sitemapsitemap submittedkept out of Googleindexed
On my own migration the review copy answers with a noindex header for its own host only, so the live domain never inherits it.

In WordPress, the switch that does the damage sits in Settings, Reading. It must be unticked on the live site.

WordPress Reading Settings with the Discourage search engines from indexing this site checkbox unticked
WordPress Reading Settings: the box that discourages search engines must be unticked on launch day.

Then check the live robots.txt. Mine allows everything except the short-link folder and points at the sitemap.

The robots.txt file of zahidaramai.com allowing all crawlers, disallowing the go folder and listing the sitemap index
The live robots.txt of zahidaramai.com: everything allowed except /go/, with the sitemap address.

Launch day

This is how my own launch morning went, in order. Every step below had a pass rule written down the week before.

Timeline of the zahidaramai.com launch morning on 2 November 2026: DNS moved at 10:20, rollback path confirmed, 147 of 147 parity, 133 of 133 redirects, sitemap submitted
My launch morning on 2 Nov 2026: DNS first, then the checks, then Search Console.

12. Test every redirect before DNS changes

Point your computer at the new server and run the redirect map: every old URL should answer with a single 301 to the right destination, not a chain and not a 404. Then test the twenty highest-earning pages by hand, on a phone.

A single check from the command line shows the answer you want: one 301, then a 200. This is a real old blog address on my site after launch.

$ curl -sI https://zahidaramai.com/blog/5-effective-ways-to-make-your-website-more-secure/
HTTP/2 301
location: /5-effective-ways-to-make-your-website-more-secure/

$ curl -sI https://zahidaramai.com/5-effective-ways-to-make-your-website-more-secure/
HTTP/2 200
A one-hop 301 redirect from the old URL straight to the final page, compared with a chain of two redirectsOne hop/blog/post/301/post/ 200Chain/a/301/b/301/c/ 200Each extra hop adds delay and risk
One hop goes straight to the page that answers 200; a chain makes browsers and Google follow several redirects to get there.

Anything that does not redirect lands on the 404 page. Make that page useful anyway, with links to the pages people came for.

The 404 page of zahidaramai.com reading That page is not here, with buttons to the homepage, pricing, work and WhatsApp
My live 404 page: a dead end should still offer the homepage, pricing, work and WhatsApp.

13. Run the parity check

Crawl the new site on the new server and compare it against the crawl from step one: same URLs, same titles, same H1s, same canonicals, same indexability. Fix every difference that was not a deliberate, written-down decision.

Check Pass rule My result on 2 Nov 2026
Parity: title, description, H1, canonical, robots Every page matches the old crawl 147 of 147
Redirects Every old URL, one 301 hop 133 of 133
Noindex on the live host Absent everywhere Absent on all 14 templates probed
Crawl diff by path No field changes outside logged exceptions Pass, 0 differences

14. Switch DNS, then resubmit

Keep the old hosting alive for a month. Submit the sitemap in Search Console, request indexing for the top pages, and watch the Coverage and Core Web Vitals reports daily for the first week.

The sitemap index of zahidaramai.com in a browser, pointing to sitemap-0.xml
The sitemap index I submitted in Search Console on launch morning; it points to one child sitemap.

What to watch in Search Console

In the first weeks, open the Pages report and look for any rise in “Not found (404)”, “Redirect error” or “Blocked by robots.txt”. Use the URL inspection tool on the home page and a few money pages to confirm Google can fetch them and that the indexed canonical is the one you expect. Check the Sitemaps report for errors. In the Performance report, compare clicks and impressions for your top pages with the same period before launch, remembering that some daily noise is normal and that a short wobble in the first days is common. Do not panic over a single day; look at weeks.

Illustration of a page indexing report layout with indexed and not indexed bars and the reasons to watch after a migration
Illustration of the Page indexing layout, not real data: after a move, watch the 404, redirect error and robots.txt rows.
Report What to look for How often
Page indexing More 404s, redirect errors or robots.txt blocks Daily, first week
URL Inspection Money pages fetch; canonical is yours Day one, then weekly
Sitemaps “Success” and the expected URL count Daily, first week
Performance Top pages against the weeks before launch Weekly
Search Console Help page for the Page indexing report
Google's help page for the Page indexing report, where these reasons are explained.

Have a rollback plan

Before launch, write down what you will do if the numbers fall off a cliff or the site breaks. Mine is simple: keep the old hosting running untouched for at least a month, know exactly which DNS record to switch back, and keep the old site’s backup. Decide in advance what counts as a problem, such as key pages returning errors or the site being unreachable, so that you are not making the call in a panic. A rollback is rarely needed, but knowing you can undo the move makes the launch calmer.

Signal What I decided to do in advance
Parity or redirect check fails on the live site and cannot be fixed within 2 hours Point the domain back at the old server
Growing number of unexpected 404s Fix the redirect file; roll back if that is impossible
Money queries down more than 10 positions for more than 7 days Re-run the checks; fix any difference found
WhatsApp enquiries stop for 3 or more working days Test every WhatsApp link and the click tracking

After launch

15. Hold still for two weeks

No title rewrites, no content trims, no new URL schemes. Compare clicks and impressions for the top queries week on week against the same weeks before the switch. Most redesigns that were done this way show no measurable change, which is the goal.

Timeline: launch on 2 November, no changes for fourteen days until 16 November, then one change at a time with a week betweenHold stillLaunch2 NovDay 1416 NovOne change, then a weekof Search Console
My own window: nothing Google reads changes until 16 Nov, then one logged change at a time, each with a week to read Search Console.

16. Then improve, one change at a time

From week three, make the improvements you were itching to make: better titles, merged thin pages, new sections. One at a time, each dated in a log, so that when a query moves up or down you know which change did it.

The log can be this simple:

Date One change Page Read again on
17 Nov or later A sharper title One URL A week later
The week after A merged thin page, with its 301 Two URLs A week later

The mistakes that cause the drops

Deleting old blog posts because they are “outdated”. Changing all URLs to a new structure without redirects. Redirecting everything to the home page. Launching with the staging site’s noindex tag still in place. Dropping the headings into images or into JavaScript that renders after the crawl. Switching to a slower theme. Every one of these is common and every one is avoidable with the list above.

Mistake What Google sees The fix
Deleting “outdated” posts 404 where a ranking page was Keep, update or 301 to the closest page
New URL structure, no redirects Hundreds of new, unknown pages Keep the URLs, or map every one
Everything redirected to the home page Soft 404s One-to-one redirects
Staging noindex left on Pages asking to be removed Launch-day line item and a header check
Headings in images or late JavaScript Missing H1 and text Real HTML text
Slower theme Worse page experience Measure before and after

A short checklist to keep beside you

  1. Crawl the old site, export Search Console pages and queries, and merge the lists.
  2. Decide keep, merge or remove for every URL and write the one-to-one 301 map.
  3. Build with the same URLs, titles, descriptions, H1s, canonicals and structured data.
  4. Keep staging out of the index, and plan to remove that block on launch day.
  5. Test every redirect and the top twenty pages before DNS changes.
  6. Crawl the new site and compare it with the old crawl.
  7. Switch DNS, submit the sitemap, keep the old hosting for a month.
  8. Watch Search Console daily for a week, then weekly.
  9. Hold still for two weeks, then improve one thing at a time and log it.
When Checklist items Done when
Before design 1 and 2 The URL list has a decision on every row
While building 3 and 4 The head of every page matches the old crawl
Launch day 5, 6 and 7 Every redirect and parity check passes
After launch 8 and 9 Two quiet weeks, then a change log

If the site also needs ongoing care after the move, see website maintenance, and for examples of what I have built, the past projects page shows the range.

Next step

If your website is due a redesign and the rankings matter to your business, send the address on WhatsApp. I will crawl it, tell you how many URLs and redirects are involved, and quote the redesign in writing. The build itself is described on the WordPress website design page and the price bands are on the pricing page.

The web design price Malaysia page on zahidaramai.com with buttons to get a quote on WhatsApp and see the packages
The pricing page on the new site, one of the 147 addresses that kept its title and URL through the move.

Questions

Questions readers ask

Will a redesign always drop my rankings for a while?

No. A redesign that keeps every URL, title, heading and piece of indexed content, or redirects each changed URL to its exact replacement, usually shows no drop at all. Drops happen when pages disappear, URLs change without redirects, or the new design hides the text Google was ranking.

Should I change the URLs to cleaner ones during the redesign?

Only if the old ones are genuinely broken, and then one by one with a redirect for each. Clean-looking URLs have no ranking value worth the risk of a sitewide change. Keep the URLs and change them later, a few at a time, if you still want to.

How long should I wait before making SEO improvements after a redesign?

Two weeks of stability with the site identical to the old one in everything Google reads, then one change at a time, each logged, so that if a ranking moves you know what caused it.

Can you redesign my site and keep the rankings?

Yes. This checklist is the process I run, including the crawl before and after and the redirect test. The redesign is quoted after I have crawled the current site and know how many URLs and redirects are involved.

Let's get in touch

Need this done for your own website? 

I build and look after WordPress websites for businesses in Malaysia. Tell me about yours on WhatsApp and I will reply within one working day.

Reply within one working day

Message Zahid directly

WhatsApp
+60 11-5197 8879
Hours
Monday to Saturday 10 am to 6 pm · Sunday closed
Based in
Kuala Lumpur, Malaysia

Send three things for a quote in one reply

  1. 01Your current website, if you have one
  2. 02What the website must do for your business
  3. 03When you need it live
WhatsApp Zahid