Painful lessons I learned from site migrations
This is a tale of two site migrations. One went bad, one went well. One was at Atlassian, the other at G2. I learned a lot from both!
Every SEO who has ever led a site migration with a domain heavier than 1,000 URLs knows "the worry". It's a deep-rooted fear, built over years of experience and living through the hell that is failed site migrations. Okay, I'm being a bit dramatic here. Let's just say big site migrations have a passion for going wrong and causing chaos.
When migrations go right - Atlassian
One of the big projects I led at Atlassian was the migration from answers.atlassian.com to community.atlassian.com. In February 2017, we decided that we wanted to migrate our "forum" to an actual community.
Atlassian Answers on Wayback Machine: https://web.archive.org/web/20170105075911/https://answers.atlassian.com/
My initial crawl of answers.atlassian.com found a lousy 1,820 URLs. Community.atlassian.com has 182x as many pages today! We delivered a sound migration, as you can see in the graph below, but we also build a legit community. Just migrating the domain doesn't cut it here. We built a whole new backend, hired community moderators, and worked for months on end on the migration.
We topped 500,000 monthly visitors within two months! But then, traffic started to drop - quickly. That was around November 2017. You can even see the dip in the graph.
Well, communities and forums come with one key challenge: duplicate content. Users will inevitably ask the same question. In Atlassian's case, they sometimes asked the same question but for different software versions!
So, what happens is that traffic scales to a threshold at which Google understands that a domain (or subdomain) is loaded with duplicate content. So we built a logic into the platform that would canonicalize similar answers to the canonical answer (based on fuzzy string matching in the title) with the most engagement. In most cases, the answer with the most engagement was the most helpful one.
That did the trick and turned traffic around relatively quickly.
A second issue we solved was internal linking. Forums and communities are like blogs, the newest content rises to the top and pushes old content back. That's why we added a lot of link modules that would be helpful for users but also help search engines index and crawl way more content:
Interests and Groups (to create cross-taxonomies)
Mind you, in forums even old questions can get new, fresh content. But that content is often buried deep in paginations and unfindable for Google.
When I left Atlassian in January 2019, traffic started to tank...
When migrations go wrong - G2
Writing of tanking traffic: when I joined G2 in mid-March 2019, the migration from g2crowd.com to g2.com was already planned and well underway. I did due diligence to make sure redirects were routed correctly and everything was set up for success. The team around Jori, my SEO director at the time, Product and engineering hustled over the weekend to get the migration over with as smooth as possible.
But traffic still tanked (see how the blue line drops before the red one goes up).
Well, one thing you notice when you search for "g2" is that we're not the only ones with that name. Besides tons of small businesses, there is also a famous eSports clan (from Germany of all things) called "G2". I mean, these guys are some of the best in the world and that made it really hard for Google to recognize our brand (G2).
You can see that really well when you steer your attention back at the graph above, you'll notice that Google ranked old URLs on g2crowd.com along with g2.com for almost 8 months! Not really what you want. The reason is that g2.com didn't get enough relevant links to the new domain at that point and Google didn't trust us that G2 Crowd is now G2. Google didn't understand our entity when we migrated and how it fit into the software space.
Once our link profile caught up and Google turned a couple of crawling rounds through our site, our rankings came back and are now stronger than ever. I learned a lot about generic brand names and how dangerous it can be to change the domain at the same time as the brand itself.
Back at Atlassian, we launched a new Slack competitor out of the ashes of HipChat called "stride". We ended up selling Stride to Slack and taking equity in the company instead (good deal), but when launching Stride, we ranked #1 within weeks, even though the name is taken by an insurance, school, and other bigger businesses. In hindsight, we should have run a bigger PR campaign around the rebranding at G2.