SEO-Optimized News Portal
News site with a custom CMS, GraphQL API, fast pages on Next.js, and AWS CDN—organic traffic up about 60%.
Organic traffic up ~60% after rebuild
Lighthouse scores in the high 90s
CMS the editorial team used every day
Background
A regional news publisher relied on an old WordPress setup that was slow, hard to customize, and hurting their Google rankings. Editors wanted a simpler publishing flow.
The problem
The publisher had slow pages, weak SEO, and editors fighting their old tools. Article URLs were messy, images were not optimized, and mobile performance was poor.
What I built
Next.js public site, GraphQL layer, custom CMS, and AWS CloudFront for assets. I tuned caching and images until pages were fast enough to rank. Editors publish from a simple CMS that writes to the same API the public site reads.
Product
Key features
Custom CMS
Editors write, schedule, and publish articles without touching code or plugins.
GraphQL API
One API for the public site and CMS—categories, authors, and articles in one schema.
SEO structure
Clean URLs, meta tags, Open Graph, and sitemap generation built into the build.
CDN delivery
Images and static assets served from CloudFront for low latency across regions.
Engineering
How it works technically
The important architectural decisions—not a laundry list of frameworks.
Rendering
ISR for article pages so new posts go live quickly without rebuilding the whole site.
Performance
next/image, font optimization, and minimal client JS on article templates.
Impact
Results & takeaways
Challenges solved
- Migrating thousands of old articles without breaking URLs
- Training editors used to WordPress on a new CMS
- Balancing ad slots with Core Web Vitals targets
What changed
- ~60% more organic traffic
- Fast article pages on mobile
- Editors publishing without dev help
Outcomes
Publisher ranked better for local news queries
Editorial team shipped stories faster
Infrastructure costs stayed predictable on AWS
Building something similar?
Tell me what you are building—I will share how I would approach it and whether we are a good fit.