Mario Kranjec

Mario Kranjec

Backend consultant and contract tech lead for startups and scale-ups

Moving a 100+ city travel guide from Symfony to Next.js without losing search traffic

InYourPocket · Tech lead (contract), team of 4 · Nov 2024 – Mar 2026

I led the redesign and migration of an SEO-heavy European city guide (around 100,000 URLs, 8M monthly search impressions) from Symfony to Next.js and NestJS, step by step behind redirects. Search rankings improved after launch.

Context

InYourPocket publishes city guides for more than 100 European cities: around 100,000 URLs, with about 8 million impressions a month in Google search. Almost all of its readers arrive from search, so the site’s URLs and rankings are the business. The site ran on an ageing Symfony stack, and a redesign by an external agency was ready to build.

The challenge

Rebuild the site on a modern stack and launch the new design, without a feature freeze and without risking the search traffic the company depends on.

Approach

  • Architecture: Next.js with server-side rendering and static generation for the guides, a new NestJS API layer, and caching in both the API and Next.js where it paid off.
  • Incremental migration: sections moved one at a time behind temporary redirects, with Google Search Console and nginx logs watched closely to catch errors early.
  • Delivery: weekly sprint planning and several releases a week, API contracts generated from code, and every database change shipped as a versioned migration.
  • Between teams: I turned the agency’s designs into technical specs and managed the handoffs between the agency, the client and our four engineers, while staying hands-on in the code.

Outcome

The new site launched section by section, without a big-bang cut-over, and search rankings improved after launch. On Lighthouse, the new site scores 100 for SEO, 98 for accessibility and 96 for best practices.

Related: Contract tech lead · Legacy migrations without losing SEO

Book an intro call

All work