This document provides guidance on site migrations and how to minimize ranking and traffic losses during the migration process. It recommends thoroughly planning, testing redirects and optimizations before migrating to avoid issues like broken links. The document also outlines post-migration checks like verifying tracking codes and crawling the site to ensure proper redirects. Maintaining rankings requires ongoing monitoring and optimization after launching the new site.
2. Reasons For Site Migrations
● Moving to HTTPS (URL changes)
August 2014, Google announced that site using HTTPS site would benefit from
minor boost in rankings, hoping to encourage a safer web.
● Rebranding, Re-design or CMS/platform change (possible URL changes)
● Site Structure Changes (likely URL changes)
● Mobile Site Changes (possible URL changes)
● Changing Top Level Domain (TLD) or Domain Name (URL changes)
Going international? Change targeting and add hreflang tags
@chloebodard | #BrightonSEO
3. What Could Go Wrong?
Changes in Domain, URLs or Structure (or all 3 at a time!) could lead to:
● Missing 301s, redirect chains, 404s & broken links
● Content duplication
● Crawling, Robots.txt & Sitemap issues
● High quality links loss
● Tracking issues
= rankings, traffic & revenue losses !!
Try to migrate one thing at a time to minimise ranking losses.
@chloebodard | #BrightonSEO
4. Common Pitfalls
● Poor strategy, planning & preparation
● Changing too many things at once (ie domain, site structure & URLs)
● Lack of resources (time, budget, skills)
● Not involving SEO from the start/ at all
● Not enough testing
● Rushing Go Live
@chloebodard | #BrightonSEO
6. Strategise & Plan
● Conduct a keyword research, use GA & SC
○ Identify key & top performing pages
○ Plan URL structure, site hierarchy, navigation & pages
○ Benchmark everything & especially rankings
● Look at competitors
○ Use their knowledge & experience to your advantage
● Think UX
○ User friendly enough?
○ Look at your current userflow & how you can facilitate the user journey?
○ Strong enough CTAs?
● Audit domain if new
○ Previous penalties?
○ Audit backlinks too
@chloebodard | #BrightonSEO
7. Crawl your Site
Gather all URLs & indexable pages
Use Screaming Frog’s Spider Mode to crawl the legacy site and get a list of URLs.
● Ignore robots.txt if URLs are blocked
● Make sure ‘Always Follow Redirects’ is ticked in Settings.
(Configuration > Spider > Advanced)
● Paste/Export all URLs into a spreadsheet
● Identify current redirects to avoid redirect chains
Make sure you keep a copy of your legacy site crawl!
@chloebodard | #BrightonSEO
8. Identify Your Priority Pages
You will want to carry them over to the new site.
● Identify top performing pages in GA:
○ organic traffic
○ revenue
○ conv rate
○ time on page/ bounce rate & other engagement metrics
● Identify top performing pages in Search Console:
○ Clicks
○ Impressions
○ CTR
● Identify high quality links and pages they link to (Majestic/Ahrefs etc)
@chloebodard | #BrightonSEO
9. Map Out Your 301 Redirects
Ideally, try and preserve priority pages URLs. Where redirects are needed:
○ Assign a corresponding new site URL (or best option) to all current URLs
to be 301 redirected.
○ Don’t forget about legacy (existing) redirects, avoid redirect chains
○ Don’t forget about image files
○ Don’t forget about ads URLs (plan for URL switches, ensure ads are still as
relevant to help maintain quality scores)
Make sure to test redirects before go live!
@chloebodard | #BrightonSEO
10. Start Optimising
● Navigation
● Page titles & meta descriptions
● Heading tags
● On page content
● Interlinking
● Alt tags
● CTAs
If migrating the CMS, ensure you have all the SEO functionalities you need!
@chloebodard | #BrightonSEO
11. Get New Site Optimisation Right
● Ensure ALL pages have a unique Page title, meta description and H1s.
○ Targeted keyword should be at the start of the page title & in the H1
○ Make meta descriptions engaging & with a CTA.
○ Include KW & semantic variations in H2s
● Ensure each page targets a different phrase to avoid internal cannibalisation
● June 2019 - half searches on google.com didn’t lead to clicks (SparkToro) -
gather your snippets and ensure content is formatted correctly for it on the
new site.
○ Think about how to get value out of 0 click searches.
@chloebodard | #BrightonSEO
12. What to Look at For Optimisation Improvements?
● Missing page titles/meta descriptions/ H1s - use SF SERP Summary report
● Duplicate page titles/meta descriptions/ H1s - use SF SERP Summary report
● Lack of keyword targeting
● Internal cannibalisation - use GA landing page organic traffic & check
rankings
● Top ranking results & competitors
● Look into Search Console CTR for opportunities to improve page titles & meta
descriptions
@chloebodard | #BrightonSEO
13. Canonical Tags
● Ensure canonicals point to the preferred version of the site (esp. important for
https migrations and domain changes)
● Use absolute URLs
● Should NOT point to 404s or 301s
● Listing URLs should not be canonicalised to the first page
● If using AMP pages or different URLs for mobile version, make sure these are
canonicalised correctly.
Canonical tags do matter! If incorrect could lead to massive drops in visibility!
@chloebodard | #BrightonSEO
14. Robots.txt File
● Hide / Disallow the staging site!
○ password protect the staging/new site and add the Disallow : / directive
to robots.txt:
User-agent: *
Disallow: /
** DON’T FORGET TO REMOVE IT ON GO LIVE **
● Get a list of unwanted URLs (for users only) that you’ll want to add to it (wish
list urls, admin urls etc)
● Sitemap reference will need to be added too
@chloebodard | #BrightonSEO
15. Sitemap.xml
● Best type of Sitemap is dynamic - automatically updates!
● Only include canonical URLs, don’t include 404, 301s or canonicalised URLs
● Beware of orphaned URLs that you may not want to be indexed
● Include an accurate Last Modified Date and Location of the URL
● Make sure your key pages are in there & use child sitemaps to separate
sections/large list of URLs.
● If multiple types of content, use additional sitemap types (image, video &
mobile )
● All URLs in the sitemap should be linked internally
@chloebodard | #BrightonSEO
16. Schema
It’s a way to annotate the code of your website so that Google understands your
data better through adding markup tags within a page’s HTML.
● These include products, local business, breadcrumbs and many others.
● Search engines use the tags that they find on pages to generate rich snippets
for search results in Google.
● These can then help increase visibility and CTR from SERPs
● Take advantage of new ones: FAQ, How To etc
More Information : http://schema.org/Organization
@chloebodard | #BrightonSEO
17. 404s
● 404s do not negatively affect SEO but do impact the user experience
● Incorrect URLs should contain a 404 HTTP status code & display a page not
found error. They SHOULD NOT redirect.
● Create a custom 404 page that displays links to other pages that users could
visit & keep same header / footer. Use 404s to your advantage!
@chloebodard | #BrightonSEO
18. Mobile & Page Speed
Google has now switched to mobile-first indexing:
● Website should use a responsive design - same code is present on all devices
● Mobile website should include same content as desktop, DO NOT remove
important links or hide content on some devices.
● Review pages using a mobile user-agent such as Google’s mobile-friendly tool.
Page Speed has been a ranking signal since 2010 & also affects UX
● Test your page speed (webpagetest, gtmetrix, pingdom, page speed insights)
● Make sure that the server is as optimised as possible for speed
● What website page speed improvements can you make?
@chloebodard | #BrightonSEO
19. Tracking
● Tracking to be added on go live to every page, make sure you have all you
need and know what to do.
● Test with Google Tag Assistant
● Set up goals - or ecomm tracking
○ Destination urls
○ Event tracking
Test! Test! Test!
@chloebodard | #BrightonSEO
23. Going Live
1. Add the GA tracking code
2. Check goals are set up
3. Remove blanket noindex tags
4. Remove disallow directive from robots.txt file
5. Check 301 Redirects are added and ready to go
6. Complete a final crawl. Check/fix any remaining issues
7. Save the last crawl (to run again post migration)
8. Backup your website (in case anything goes wrong)
9. Serve a 503 (service unavailable) if/while site is down.
@chloebodard | #BrightonSEO
25. Post Go Live Checklist - Same Domain
● Check GA tracking code
● Check goal/ ecomm tracking is working
● Inspect & Request Indexing URLs in SC
● Submit Sitemap in SC
● Add an annotation in GA
● Check robots.txt file
● Crawl New Site - check for issues such as 404s or internal redirects
● Crawl Old URLs - check the redirects are working as expected
● Check Canonicals
● Update important Backlinks
@chloebodard | #BrightonSEO
26. Post Go Live Checklist - HTTPS Migration
Extra steps for a HTTPS migration
● Verify HTTPS version in Search Console.
● Update Google Analytics settings & reconnect to Search Console
● Upload disavow file for new domain
● Ensure all URL within the sitemap are on https as otherwise http urls could get
indexed
● Outreach to update high quality links to avoid redirects
● Update social profiles & citations links
@chloebodard | #BrightonSEO
27. Post Go Live Checklist - Domain Change
Extra steps for a Domain migration
● Verify new domain in Search Console (don’t remove the previous domain!)
● Submit ‘Change of Address’ request in Search Console (on old version) & Bing
Webmaster Tools
● Update Google Analytics settings & reconnect to Search Console
● Submit 2 sitemaps with old and new URLs in Search Console
● Upload disavow file for new domain
● Update social profiles & citations e.g Google My Business links
● Outreach to update high quality links to avoid redirects
@chloebodard | #BrightonSEO
28. Check Your Sitemap(s)
Use DeepCrawl Sitemap report to:
● Highlight any orphaned URLs to be linked
● Pages missing from your sitemap to be
added
● Errors within its pages to be fixed
Use Search Console to submit it & check
for errors:
● Check for warnings & follow
recommendations
● Look at number of URLs submitted vs
indexed
What to look for?
● Errors in your sitemap, such as 404,
301s or canonicalised URLs
● Orphaned URLs that you may / may not
want to be indexed
● Missing/inaccurate Last Modified Date
● Missing key pages
● Noindex pages & URLs blocked by
robots.txt file
● Monitor sitemap indexing in Search
Console
@chloebodard | #BrightonSEO
29. Check Your Robots.txt File
What to Look For?
● Disallowing full site post
migration?
● Disallowing CSS/JS files?
● Disallowing unexpected URLs?
Option 1:
Use the robots.txt tester (old version but can
still access tool) in Search Console - this
requires the robots.txt file to be actually
updated.
Option 2:
Use the custom robots.txt tool in Screaming
Frog to test then and there.
Check the commands you are adding will work
for the URLS you want to block.
@chloebodard | #BrightonSEO
30. Crawl your URLs + Check 301s & 404’s
Use Screaming Frogs Spider Mode to crawl your list of URLs.
Make sure ‘Always Follow Redirects’ is ticked in Settings.
(Configuration > Spider > Advanced)
● Paste/Upload old URLs
● Update Redirects which have multiple Redirect Chains
● Create Redirects for key 404s (esp. Backlink or Landing Page 404s)
● Fix broken/incorrect Redirects
● Download the final redirect chain reports
@chloebodard | #BrightonSEO
31. Check Canonicals
Run a DeepCrawl Canonical Report to highlight:
● Canonical errors,
● Orphaned canonical URLs
● Pages without a valid canonical tag
Use Screaming Frog to:
● Identify canonicalised URLs
● Check for errors by exporting the Canonical Errors report
@chloebodard | #BrightonSEO
32. Check High Quality Backlinks
● Gather backlink URLs via tools such as Majestic & Search Console
● Update high quality backlinks to final destination if possible or make sure 301s
are in place
● Update local citations if domain name changes including GMB
● Update Social Profiles
@chloebodard | #BrightonSEO
36. What Next?
Crawl, re-crawl, keep checking indexing, rankings, visibility and traffic!
● Monitor indexing, visibility, traffic & rankings, user engagement etc
● Update meta titles, descriptions and heading tags based on rankings
● Work on on site content - on page & blog articles
● Work on internal linking
● Work on outreach and link building
● Carry out technical checks (check 404s, 301s, new issues - repeat pre-launch
checks)
@chloebodard | #BrightonSEO