Case Study: Turning a WordPress News Site Into a Modern Platform in 48 Hours
TheWestNepal.live went from a slow WordPress site to a programmatic Next.js platform in 48 hours. Here is how the migration worked and what changed after.
Table of contents
TheWestNepal.live was a working WordPress site. Functional, content-rich, getting traffic — but slow, inflexible, and expensive to maintain relative to what it delivered.
The decision to rebuild was not about chasing new technology. It was about unlocking things WordPress made hard: programmatic SEO, edge delivery, a proper content pipeline, and full control over the data model.
Here is how the migration happened in 48 hours and what the site looks like now.
Why Rebuild Instead of Patch
The typical answer to a slow WordPress site is a caching plugin, a CDN, or a theme upgrade. I tried all of these. They helped. But they did not solve the underlying issues:
- —Every page was a database query at request time — no static generation, no edge caching
- —Customizing the content structure meant custom post types, ACF fields, and plugin conflicts
- —SEO required plugins that partially worked, with meta fields scattered across the admin
- —Programmatic page generation — one template, many pages — was not practically achievable
Next.js with Supabase solves all of these structurally, not with patches.
The Migration Process
Day 1: Data extraction and schema design
The first task was exporting all existing content from WordPress. WordPress export (WXR format) gives you posts, pages, categories, tags, and metadata in XML. I wrote a Node script to parse the WXR file and transform it into INSERT statements for Supabase.
The Supabase schema for blog_posts included: title, slug, excerpt, content (markdown), category, tags (array), published_at, meta_description, reading_time_minutes. Content from WordPress came in HTML — I converted it to markdown using a turndown-based script, then manually reviewed the top 20 posts for formatting issues.
By end of day one, all content was in Supabase, the Next.js scaffold was up, and the blog listing page was rendering real data.
Day 2: Programmatic pages, SEO, and deploy
The programmatic layer generates pages from structured data — categories, topics, local angles — without creating each page manually. One template file, one data source, many routes. This is what gives a news site 10x the organic surface area without 10x the editorial work.
SEO infrastructure was built in before content went live: sitemap.ts auto-generates from Supabase, robots.ts handles crawl rules, schema markup is injected per post type, and meta tags are set from the database record.
Vercel deployment took 12 minutes from the first git push.
What Changed After
Performance — Lighthouse scores went from the 40–55 range (WordPress with caching) to 92–98. First contentful paint dropped from 3.4 seconds to under 0.8 seconds.
Flexibility — Adding a new content type, a new category, or a new programmatic page template is a code change, not a plugin decision. The data model is in my control.
Content pipeline — New posts go into Supabase via the admin panel. The AI agents can propose posts. The sitemap auto-updates on the next ISR cycle. No WordPress dashboard, no plugin conflicts.
Scale — The site now runs 60+ posts and programmatic landing pages from a single Vercel deployment and a Supabase free-tier database. Cost per month: zero.
What This Migration Is Not
This is not a plug-and-play process. If your WordPress site has complex plugin-dependent functionality — WooCommerce, membership systems, complex forms — the migration cost is much higher. The sweet spot for this approach is content-heavy sites where the primary complexity is the content model, not business logic.
Lessons for Anyone Considering This
Start with content migration first, before touching the frontend. Getting the data right is the hardest part. The frontend follows quickly once you have clean, queryable data in a proper database.
Use ISR (Incremental Static Regeneration) from day one. export const revalidate = 3600 on blog post pages means you get static performance with live data. Do not skip this step.
Automate the sitemap before you add the first post. The sitemap that generates from Supabase will include every post you ever add, forever, with no manual work.
Resources
- —WordPress export guide (WXR format) — how to export all posts, pages, and metadata from any WordPress installation
- —Turndown — the HTML-to-markdown library used in the migration script
- —Next.js ISR documentation — how
revalidate = 3600keeps static pages current without a full rebuild - —Google Search Console — submit the new sitemap here immediately after launch to recover indexing
Related Posts
- —Programmatic SEO for a Local News Site: What Actually Moved the Needle — what came after the migration: how the new site was structured for organic growth
- —AI SEO vs. Traditional SEO: What I Am Actually Doing Differently in 2026 — the SEO strategy applied to TheWestNepal.live post-migration
- —Auto Sitemap, Schema, and Robots.txt: The 3 Files Most Developers Forget — the technical SEO layer built on day two of the migration
Stuck on an aging WordPress site? I can rebuild it on Next.js + Supabase — content migrated, SEO preserved, performance improved. See my services or get in touch.
Get the free AI-SEO Content Checklist
A practical checklist for getting your own content cited by Google AI Overviews, ChatGPT, and Perplexity — not just ranked.
Want to implement this with guidance?
Santosh helps founders turn insights like this into real systems.
External Resources
Further Reading & Tools
Google Search Central
Official Google documentation on indexing, ranking, and Core Web Vitals
Ahrefs Blog
In-depth SEO research, keyword strategy, and link-building studies
Moz Learn SEO
Comprehensive SEO learning hub covering technical and on-page fundamentals
Search Engine Journal
SEO news, algorithm updates, and strategy guides