Introduction
A Finland casino affiliate site, running a hybrid WordPress + headless Next.js stack, monetizing through operator revenue-share and CPA deals, asked us to fix a mess of technical debt, stagnant rankings and manual content operations that couldn’t scale.
Story
The site had grown fast and it showed. Casino “toplists” — the money pages that decide which operators get shown and in what order — were maintained by hand, surfaced closed or pre-launch brands, and sometimes returned only 1-2 results instead of the full list. A key REST endpoint took 5+ seconds to respond and was OOM-killing containers under load. Structured data was throwing errors, the sitemap was leaking author profiles and dead quiz links, in-page navigation was built on non-crawlable # anchors, and page weight was creeping past the threshold Google now uses for crawling.
On top of that, the affiliate business itself was moving — new license countries, a migration to a new affiliate backend (AffiliationCloud), a World Cup content push, and two annual survey campaigns all needed to ship without breaking rankings.
We ran this as a continuous engagement across the dev backlog: 76 completed issues spanning technical SEO, on-page/EEAT, CRO and full automation of the toplist engine.
Challenge
Some challenges we had:
- Highly regulated, high-competition iGaming market (Finnish geo)
- Hybrid WordPress + headless Next.js architecture — every change had to work across both
- Manual, error-prone toplist management surfacing wrong, closed or pre-deal operators
- Casino toplist REST endpoint taking 5s+ and crashing containers
- Broken and unparsable structured data hurting rich results
- Crawl-budget waste: 2MB+ page sizes, non-crawlable links, bloated sitemaps
- Mid-flight affiliate backend migration and constant new-brand / new-country onboarding
Solution
Technical SEO & crawlability
- Fixed the casino toplist REST endpoint (5s+ / OOM) so pages served fast and stopped killing containers
- Optimized page sizes to stay under Googlebot’s new 2MB crawl limit
- Replaced non-crawlable
# in-page links with real internal links - Implemented pagination on archive and reviews pages for SEO
- Created a Google News XML sitemap and excluded author profiles from sitemaps
- Cleaned up links and sitemaps for closed casinos, fixed broken quiz links, removed the
.html permalink suffix - Blocked Cloudflare email-protection URLs from being crawled
- Fixed unparsable structured data and corrected image schema URLs
- Installed an automated internal-linking plugin and built a content-diff cron to auto-update “modified” dates only on genuine content changes
- Built and reused a Slots Hub, Hub Pages, and legacy-URL redirects
- Kept the stack current: WordPress 6.9 → 7.0 upgrades and plugin updates, staging aligned with production, Playwright happy-path tests wired into CI/CD
Smart Toplist automation (the core of the project)
- Replaced manual toplists with a “Smart Toplist” engine: automatic eligibility and filtering, a “New” filter, pinned positions with FTD-ranked auto-fill, and logic to push newer operators over revenue-share when FTDs are equal
- Automatically filtered out closed and pre-deal / pre-launch casinos
- Fixed toplists that surfaced no operators or only partial results
- Automated tables in toplist content and mapped bonus fields directly from the affiliate backend into WordPress
- Made the “last updated” date reflect all changes, including toplist changes
On-page, EEAT & CRO
- Full toplist card and review-header EEAT update: increased review-score precision (0.1 vs 0.5 increments), rich-text pros & cons, standardized and more visible bonus info
- Merged “last updated” and author byline components for stronger authorship signals
- Reduced H1/H2 font sizes, compacted product cards for mobile, redesigned “Top 3” cards, and simplified top cards — all aimed at conversion rate
- Added casino comparison tables, World Cup odds banners and sales-exposure tracking for seasonal campaigns
- Spun up 6 new license countries and onboarded new brands with automated bonus placements
Result
Cleaning up crawl budget, fixing structured data and automating the toplists produced compounding gains over the engagement. Organic traffic grew +38%, rich results returned as structured-data errors were resolved, and the toplist engine went from manual upkeep to 100% automated — freeing the team from weekly manual edits and eliminating the wrong-operator errors that were costing conversions.
The CRO work on cards, headers and bonus visibility lifted click-through to operators, and the faster, lighter pages improved both crawl efficiency and user experience across the Finnish market.
ROI
Across a 10-month engagement, the combination of recovered organic traffic, higher operator click-through and eliminated manual toplist labor delivered an approximate ROI of 315% — with the automated toplist engine continuing to generate value with no ongoing manual work.