RanklyHub
Service / Site Migration

Move platforms, keep the rankings.

A bad migration deletes years of equity in one weekend. We map every legacy URL to its new destination as a 301, hold canonicals to a single source of truth, and run a monitored cutover with rollback ready so the new site launches with rankings intact.

301
Preserved redirects
x-default
Locale safety
Canonical
Single source
Monitored
Cutover window
01 / Map

Redirect mapping

Every legacy URL gets a 301 to its closest new equivalent, validated against logs so high-traffic and high-backlink pages cannot be missed.

02 / Parity

Template-level SEO

Canonicals, metadata, schema, and internal links survive the template rebuild because they are spec'd before the design lands, not after.

03 / Cutover

Monitored launch

Pre-launch staging crawl, DNS flip, post-launch coverage check, and a rollback path. Search Console and log files watched in real time.

Implementation
next.config.tsTS
1import type { NextConfig } from "next";
2
3// Monitored cutover: 301 every legacy shape to the new canonical.
4// Logs and Search Console watched in real time during the launch window.
5const nextConfig: NextConfig = {
6 async redirects() {
7 return [
8 { source: "/old-blog/:slug", destination: "/insights/:slug", statusCode: 301 },
9 { source: "/products.html", destination: "/products", statusCode: 301 },
10 { source: "/uk/:path*", destination: "/en-GB/:path*", statusCode: 301 },
11 { source: "/de/:path*", destination: "/de-DE/:path*", statusCode: 301 },
12 { source: "/seo-services", destination: "/services/technical-seo", statusCode: 301 },
13 ];
14 },
15};
16
17export default nextConfig;

A literal 301 map generated from the legacy URL inventory. Statuses are explicit (not Next's permanent 308) so the migration ships the redirect contract your old links were earned against.

Next step

Plan your migration. Free, in 60 seconds.

Live crawl · legacy URL inventory · redirect coverage check · the exact fix list. No login.