Point11

SEO preservation strategy

Protect organic search traffic during migration with URL mapping, redirect implementation, structured data migration, and Core Web Vitals optimization.

Organic search traffic is the single most vulnerable asset during a website migration. Google Search Central documentation explicitly warns that site moves with URL changes will cause temporary ranking fluctuations. A rigorous SEO preservation strategy minimizes traffic loss and accelerates recovery.

URL Mapping and Redirect Implementation

The redirect map is the most critical artifact in an SEO migration:

Building the URL Map

  • Crawl the legacy site: Use a crawler to generate a complete list of every indexable URL, including paginated pages, filtered views, and parameterized URLs.
  • Cross-reference with analytics: Overlay Google Analytics data to identify the highest-traffic URLs. These are your priority-one redirects.
  • Cross-reference with Search Console: Export the full list of indexed URLs from Google Search Console's Pages report. URLs that are indexed but not in your crawl may indicate orphaned content that still receives traffic.
  • Map every URL: Create a one-to-one mapping from every legacy URL to its corresponding new URL. Where exact matches do not exist, map to the closest relevant page. Never redirect to the homepage as a fallback unless no relevant content exists.

Redirect Implementation

  • Use 301 (permanent) redirects: Google Search Central confirms that 301 redirects pass link equity (PageRank) to the destination URL. Implement redirects server-side, not via JavaScript or meta refresh tags.
  • Avoid redirect chains: Google will follow up to 10 hops in a redirect chain, but recommends keeping chains to fewer than 3. Each hop adds latency and risks link equity dilution. Redirect directly to the final destination URL.
  • Implement at the edge: On Vercel, configure redirects in next.config.js or vercel.json for optimal performance. Edge-level redirects execute before the application layer, minimizing time to first byte (TTFB).
  • Handle trailing slashes consistently: Choose a trailing slash convention and enforce it with redirects. Inconsistency creates duplicate content signals.

Redirect Verification

  • Test every redirect: Programmatically verify that every legacy URL returns a 301 status code pointing to the correct destination. Use a script or tool to validate the entire map before launch.
  • Monitor 404 errors: After launch, monitor Google Search Console's Pages report daily for new 404 errors. These indicate missing redirects that need immediate attention.

Canonical Tags and Metadata

  • Set canonical tags on every page: Every page on the new site must include a self-referencing canonical tag. This signals to Google which URL is the authoritative version.
  • Migrate title tags and meta descriptions: Extract and migrate all page-level title tags, meta descriptions, and Open Graph metadata. Do not rely on auto-generation for pages that had manually optimized metadata.
  • Preserve heading hierarchy: Maintain the H1-H6 heading structure from the legacy site. Changes to heading hierarchy can affect how Google interprets page content and topical relevance.

Structured Data Migration

Structured data (JSON-LD) directly impacts search appearance through rich results:

  • Audit existing structured data: Crawl the legacy site and extract all structured data markup. Common types include Organization, Product, Article, FAQ, BreadcrumbList, and LocalBusiness.
  • Migrate to JSON-LD format: If the legacy site uses Microdata or RDFa, convert to JSON-LD during migration. Google recommends JSON-LD as the preferred format.
  • Validate with Rich Results Test: After migration, test representative pages using Google's Rich Results Test to confirm structured data is valid and eligible for rich results.

Core Web Vitals Optimization

A migration to Next.js on Vercel is an opportunity to dramatically improve Core Web Vitals:

LCP (Largest Contentful Paint) - Target: Under 2.5 Seconds

  • Use Next.js Image component with priority attribute on above-the-fold hero images to enable preloading.
  • Implement static generation (getStaticProps) or incremental static regeneration (ISR) to serve pre-rendered HTML.
  • Configure Vercel's Edge Network to serve cached responses globally.

CLS (Cumulative Layout Shift) - Target: Under 0.1

  • Set explicit width and height attributes on all images and media embeds.
  • Use CSS aspect-ratio or the Next.js Image component's built-in dimension handling to reserve space before assets load.
  • Avoid injecting dynamic content above the fold after initial render.

INP (Interaction to Next Paint) - Target: Under 200 Milliseconds

  • Minimize main-thread JavaScript execution. Use dynamic imports and React.lazy to code-split heavy components.
  • Defer non-critical third-party scripts (analytics, chat widgets, ad tags) using the Next.js Script component with strategy="lazyOnload".
  • Use React Server Components in Next.js App Router to reduce client-side JavaScript bundle size.

XML Sitemap and Robots.txt

  • Submit a new sitemap: Generate and submit an XML sitemap containing all new URLs to Google Search Console immediately after launch.
  • Keep the old sitemap temporarily: Maintain the legacy sitemap (with redirecting URLs) for 180 days to help Google discover and follow all redirects.
  • Update robots.txt: Ensure the new robots.txt does not block any pages that were previously accessible and indexed.

Sources

Need help implementing this?

Our team can walk you through the setup.