Programmatic SEO for a Local News Site: What Actually Moved the Needle
Programmatic SEO on TheWestNepal.live generated 60+ indexable pages from a single template. Here is what the approach was, what worked, and what the limitations are.
Table of contents
Programmatic SEO gets described in two ways: as a scalable content strategy, or as a spam technique. The difference is whether the pages are genuinely useful.
On TheWestNepal.live, programmatic SEO meant building one template that generates useful, specific pages for dozens of topic combinations — without writing each page individually. Here is what that looks like in practice.
What Programmatic SEO Actually Means
Traditional content creation: write one article per keyword. Publish it. Repeat.
Programmatic SEO: define a template with variable slots. Populate the slots from a data source. Generate N pages from one template.
For a news site, the templates are things like:
- —"Latest [category] news in [region]"
- —"[Topic] coverage and analysis"
- —"News about [subject area] for [audience type]"
The data source is the existing content plus structured metadata about categories, regions, and topics. The template generates a page that aggregates relevant content, provides a category-specific intro, and links to individual articles.
The Implementation on Next.js
In Next.js with the App Router, programmatic pages are dynamic routes with generateStaticParams:
// app/topics/[topic]/page.tsx
export async function generateStaticParams() {
const topics = await fetchAllTopics(); // from Supabase
return topics.map(t => ({ topic: t.slug }));
}
export default async function TopicPage({ params }) {
const posts = await fetchPostsByTopic(params.topic);
// render template with posts
}
generateStaticParams runs at build time. Every topic in the database gets a statically generated page. ISR (revalidate = 3600) ensures the pages update as new articles are published.
What the Template Includes
Each programmatic page on TheWestNepal.live includes:
- —A topic-specific H1 and intro paragraph (generated from a template string + topic name)
- —The 10 most recent articles in that topic
- —Related topics sidebar
- —Local context paragraph (relevant for regional news topics)
- —Schema markup (CollectionPage type)
- —Unique meta title and description
The uniqueness per page comes from the content aggregation — no two pages have the same set of articles. This is what separates programmatic SEO from page-spinning.
What Worked
Index coverage. All programmatic pages were indexed within 10 days of launch. For a new domain, that is faster than typical for individually written pages.
Long-tail capture. Queries like "Nepal tech news this week" or "Kathmandu business updates" surface category pages that would not have existed otherwise. These queries have low volume individually but collectively represent real search intent.
Internal linking. Every article page links to its topic page. Every topic page links to its articles. This creates a link graph that helps Google understand the site structure and improves crawl efficiency.
What Did Not Work (Yet)
Competitive keywords. Programmatic pages rank well for long-tail and navigational queries. For competitive head terms ("Nepal news", "Kathmandu latest"), domain authority matters more than page structure. A new domain does not compete with established news properties on head terms in the first 90 days.
Thin category pages. Categories with fewer than 5 articles produced thin pages that were indexed but did not rank for anything meaningful. Solution: only generate pages for topics with at least 10 articles. Pages with less content are noindex until they have enough.
The Practical Limit
Programmatic SEO scales content surface area. It does not replace editorial judgment. The pages that perform best are the ones where the template generates genuinely useful aggregations. The ones that underperform are where the template fills slots but the result is not something a reader would choose over a manual article.
The sustainable version: programmatic pages as navigation and aggregation, manually written articles as the depth. Both need to exist. Neither replaces the other.
Resources
- —Next.js generateStaticParams — the function that generates one static page per database row at build time
- —Next.js ISR — how pages update automatically as new content is published without a full rebuild
- —Google Search Console coverage report — where to monitor which programmatic pages are indexed and which are flagged as thin content
Related Posts
- —Case Study: Turning a WordPress News Site Into a Modern Platform in 48 Hours — the migration that made programmatic SEO possible on TheWestNepal.live
- —AI SEO vs. Traditional SEO: What I Am Actually Doing Differently in 2026 — the broader SEO strategy that programmatic pages plug into
- —Auto Sitemap, Schema, and Robots.txt: The 3 Files Most Developers Forget — the auto-sitemap that ensures every programmatic page is indexed
Want programmatic SEO built into your Next.js site from day one? I set up the full system — dynamic routes, auto-sitemap, schema, ISR — as part of every project. 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