3. pa.ag@peakaceag3
Some challenges you’ll need to overcome
Coordination with other requirements before, during and after the migration
process is critical!
Lack of clear (migration) goals
Lack of buy-in / support to make changes
Lack of flexibility to implement changes
Poor time, project and/or stakeholder management
Lack of or insufficient testing; no time to bugfix
Migrating to new non- or lesser-optimised templates
Failure to migrate key pages, categories, etc.
Impatience…!
4. pa.ag@peakaceag4
Every (big) change brings (lots of) opportunities!
But always keep in mind: the price of failure is immense!
Risk Reward
User acceptance “Once in a lifetime” opportunity
Project complexity Greenfield project: question everything
Resilience/freeze Best chance to really “get shit done”
Interruption Chance to eliminate “legacy problems”
Politics Usually more agile vs. regular, daily business
Performance Rethink RWD/dynamic serving, HTTPS, URL design, etc.
5. pa.ag@peakaceag5
What are your goals for migration?
The right mindset is really, really important!
“I want to lose as little as possible”
isn’t really a good migration objective!
6. pa.ag@peakaceag6
Migration types and their potential impact on SEO
Often these types overlap – or multiple things are done simultaneously.
Inspired by @jonoalderson: http://pa.ag/2xUCMnJ
Type Example
Hosting migrations You’re changing hosting or CDN provider(s).
You’re changing, adding, or removing server locations.
You’re changing your tech stack/caching/lbs.
Software migrations You’re changing CMS (or its version/plugins, etc.).
You’re changing the language used to render the website.
You’re merging platforms; e.g. a blog which operated on a separate domain.
Domain migrations You’re changing the main domain of your website.
You’re buying/adding new domains/subdomains to your ecosystem.
You’re moving a website, or part of a website, between domains.
Template migrations You’re changing the layout/structure/navigation of important pages.
You’re adding or removing template components.
You’re changing elements in your code, like title, canonical, or hreflang tags.
7. pa.ag@peakaceag7
Make it a granular, multi-step approach
Doing everything at once will make debugging & rolling back an
almost impossible task!
Source: http://pa.ag/2yJqT1N
9. The sooner your (SEO) team is involved, the better: make
sure everyone is on board, maximise time for prep work
& thorough planning, etc.
Get in early
10. What should go, what can stay?
Complete vs. partial site move?
Define your migration strategy
11. Use one of your smaller markets (revenue-wise)
as a guinea pig to test the process and
gather real-world feedback.
Multinational setup?
12. Find a timeframe – including a buffer – when business is
slower; also consider public holidays and seasonal
events.
Migrate during a slow period
13. Rushing your migration will guarantee its failure. Ensure
there's enough time for QA, feedback loops and
necessary changes to be implemented!
Be realistic about deadlines
14. pa.ag@peakaceag14
Pre-migration: site health check & clean up
A properly optimised domain migrates easier and more efficiently. Getting your house
in order before the move minimises the risk of losing beneficial rankings.
Google Search Console: manual actions, server errors
(DNS, 4xx and 5xx response codes), mark-up validation
errors (AMP, schema.org, rich cards), robots.txt
Web crawl: internal redirects as well as redirect chains,
broken URLs, and internal links
Log files: broken URLs, suspicious status codes,
crawler traps
Further: perform a thorough audit, it’ll save you a lot of
time with regards to the post-migration workload
16. Spoiler: I didn‘t manage to cut it down to just five…
5 fatal errors to avoid
17. Figure out well in advance how to gain access to all
relevant server access logs, e.g. via native access or
by using a SaaS solution.
Gaining access to server logs
too late
18. pa.ag@peakaceag18
Not gathering all URLs (including static assets) #1
Must haves: log files, XML sitemaps as well as a full website crawl.
Extras: analytics (top ranking URLs and/or URLs generating the most traffic).
small domains
large domains
19. pa.ag@peakaceag19
Not gathering all URLs (including static assets) #2
Additionally: collect the URLs that are strongly linked, bring a lot of traffic and/or have
been shared the most, etc.
20. pa.ag@peakaceag20
Missing to establish a status quo performance benchmark
Lighthouse (via Chrome DevTools) or webpagetest.org provide relevant metrics.
Important: also benchmark category/product pages, not just the homepage.
21. pa.ag@peakaceag21
Not having a proper staging/test server setup
Make sure the server is locked-down properly to ensure your content doesn’t get
indexed in advance (i.a. duplicate content problems).
Methodology Pros Cons
noindex (meta tag/header)
External tools can access without
separate access rules
URLs are definitely not indexed
Indexing rules cannot fully be tested
(all noindex)
Waste of crawl budget
robots.txt
External tools can access without
separate access rules
No crawl budget is wasted
Indexing rules cannot fully be tested
(only with robots.txt override)
If linked, test URLs may appear in the index
(without title/metas).
password secured (.htaccess)
No crawl budget is wasted
URLs are definitely not indexed
Everything can be tested properly
External tools must be able to handle
password authentication.
IP-based access
No crawl budget is wasted
URLs are definitely not indexed
Everything can be tested properly
External tools must be able to handle
IP-based authentication.
VPN Completely safe! So safe, only a few tools can handle it!
22. pa.ag@peakaceag22
Bonus: Build your very own migration QA check-list
Depending on what type of changes you’re undergoing, this needs to be adapted.
Use Aleyda’s template for more inspiration: https://pa.ag/2H6bOLH
Canonical tags & other rel-alternate annotations
Remember to annotate your dedicated mobile site, to adapt your
(RSS-) feeds as well as pre-fetching/pre-loading annotations
Stage: pre-migration Who? Bastian When? 10/02/20
Multilingual setup: customise hreflang target URLs
Keep in mind: various locations can be affected (e.g. head section,
server headers, XML sitemaps)
Stage: pre-migration Who? Bastian When? 10/02/20
Update XML sitemaps
Sitemap index file also needs to be changed if you reference it in the
robots.txt, don’t forget to re-submit to GSC either
Stage: pre-migration Who? Bastian When? 10/02/20
JavaScript crawling review
Test every single page template of the new site to make sure Google
will be able to crawl content that requires JavaScript parsing/execution
Stage: pre-migration Who? Bastian When? 10/02/20
Structured data update (schema.org)
Update your schema.org mark-up. Errors need to be identified early so
there’s time to fix them before the new site goes live
Stage: pre-migration Who? Bastian When? 10/02/20
Update CDN settings and resource hints
Update requests for assets to CDNs & any resource hints (preconnect,
dns-prefetch)
Stage: pre-migration Who? Bastian When? 10/02/20
Update HTTP header & customise cookie settings
If applicable, customise X-Robots header tags, as well a hreflang and / or
caching headers. Use Chrome DevTools to validate
Stage: pre-migration Who? Bastian When? 10/02/20
AMP implementation review
Each non-AMP page has an annotation pointing to the corresponding
AMP URL (and rel-canonical vice-versa)
Stage: pre-migration Who? Bastian When? 10/02/20
23. Don’t be lazy! Internal links to/through redirects or
even linking to error pages can be perceived
as low-quality signals
Change internal links to point
directly to new targets
24. A breadcrumb ensures that every page on a website
receives plenty of additional incoming internal links from
pages that are lower within the website hierarchy
Don’t remove your breadcrumb
navigation without replacement
25. The navigation depth of a page matters. The further away
a page is located from the home page, the lower the
chances of it achieving good rankings
Ensure important pages have not
been demoted in the hierarchy
26. pa.ag@peakaceag26
Be careful with internal redirects!
Avoid redirect chains: old URLs should lead directly to the new corresponding URLs.
Source: Redirect Chain Report via DeepCrawl
27. GSC has various settings you need to be aware of
Work your search console
28. pa.ag@peakaceag28
Missing to transfer the disavow links file in time
Especially for domains with a “questionable” link profile: GSC setup and disavow file
transfer should be done approximately 48 hours before going live!
29. Seriously… after all this preparation, now you "just" need
to redirect all your old URLs.
Missing to 301 redirect all the
things (or URLs)!
30. The most common problem with migrations gone awry?
Missing or incorrect redirects!
Again: check your redirects
31. Recrawling, recalculation & the inheritance of
”trust“ may take a few weeks…
First and foremost: be patient!
32. pa.ag@peakaceag32
Especially for new domains, two weeks is not enough:
Source: http://pa.ag/2htz26D
[…] it can take two weeks
for some sites but for larger
sites, it is more like three
months, not even close to
two weeks.
33. pa.ag@peakaceag33
So, in a nutshell…
…whenever you perform a migration, make sure you:
01
Don‘t migrate
legacy!
Do a thorough health
check and clean up
first – it‘ll be super
hard to analyse errors
later on.
02
Collect necessary
data in advance!
Make sure to fully
understand your URL
portfolio, crawl & GSC
data etc.
03
Get access to server
log files!
As much as I love
GSC, data comes in
with a delay and you
need instant feedback
on errors, etc.
04
Check your
redirects, twice!
Make sure to review
your redirect mapping
multiple times, ideally
with another pair of
eyes.
05
Be patient and
don‘t panic!
Don‘t freak out,
seriously. Sometimes
things can just take a
bit longer for Google
to fully process (and
to pass along signals).