· Updated April 18, 2026 · 11 min read

Why I Stopped Using WordPress for Affiliate Sites

WordPress runs 43% of the web. I used it for years. Then I moved all 12 of my affiliate sites to Astro and saved $7,920 a year in hosting and plugin fees alone. This is the data that made the decision, and the trade-offs I accepted to get there.

The WordPress tax nobody talks about

WordPress itself is free. Almost nothing around it is. Once you're running an affiliate site that actually ranks, the monthly outgoings stack up in four directions at once:

  • Hosting — $15 to $50 per month, per site. Shared hosting (Bluehost, SiteGround starter tiers) gets you slow Time to First Byte and regular downtime as traffic grows. Managed WordPress hosting (WP Engine, Kinsta) starts at around $20-$30 for a single site and climbs fast as visits grow. Across 12 sites, I was paying $360 to $600 every month just to keep them reachable.
  • Plugins — $100 to $300 per site per year. Yoast Premium is $99/year, WP Rocket is $59/year, Rank Math Pro is $59/year, All in One SEO Pro starts at $49/year. Layer on a security plugin, a backup plugin, a contact form plugin, and an image optimization plugin and you're comfortably over $200 per site in annual subscriptions. The "free" CMS runs on a paid ecosystem.
  • Security maintenance — 2 to 4 hours per month, per site. WordPress is the most targeted CMS on the public internet. Sucuri's incident reports show WordPress accounts for roughly 95% of all infected CMS installs they clean. Updates break plugin compatibility. Plugins conflict with each other. Someone tries to brute-force your login every week. Either you manage it or you pay someone who does.
  • Performance optimization — ongoing. Database bloat, render-blocking scripts, image compression, caching rules, CDN configuration. Getting WordPress to clear 80 on Lighthouse mobile takes constant attention. Getting it over 90 takes a specialist.

The stack I moved to

Astro is a static site generator — plain HTML, thin CSS, only the JavaScript a page actually needs. No database. No PHP. No server-side execution. A visitor hits the site, Vercel's CDN returns pre-built HTML in 50ms, done.

95+
Lighthouse Mobile
Out of the box, no optimization plugins.
$0
Monthly Hosting
Vercel free tier covers all 12 sites.
0
Security Incidents
No database, no login, no attack surface.

I picked Astro over the other static options for four reasons. Hugo is fast but the templating language is painful for anything custom. Next.js is great for apps but over-engineered for content sites. Gatsby was the incumbent but the tooling experience has gone downhill in the last few years. Astro hits the exact niche I care about — fast by default, zero JavaScript shipped unless I ask for it, and a component model that feels modern without dragging a full React framework along for the ride.

The whole 12-site portfolio — layerdepth.com, bestluxurybeauty.com, smarttvcomparisons.com and the rest — shares one build pattern. Astro compiles the site to static files. Vercel's git integration deploys them. Cloudflare and Vercel between them handle the CDN. Content lives in version control instead of a database. There is no running server to patch.

The annual cost comparison

Running 12 affiliate sites, actual numbers from my last WordPress-year vs. this Astro-year:

Expense WordPress (12 sites) Astro (12 sites)
Managed hosting$4,320/yr$0
Plugin licenses$2,400/yr$0
Domain renewals$144/yr$144/yr
Security and maintenance time*$1,200/yr$0
Total$8,064/yr$144/yr

*Estimated at 2 hours per month across the portfolio at a conservative $50/hour for my own time.

That's $7,920 a year back in the bank. Over three years the gap is nearly $24,000. Extrapolate the WordPress number out over the life of a portfolio built to last five to ten years and you see why this is not a rounding error. It's the single biggest line item I was paying to operate sites, and moving to static removed it.

The hidden multiplier: plugin costs scale linearly with sites, but so does maintenance. A WordPress plugin update pushed out this morning is an update I have to test on 12 sites. An Astro dependency update is one npm update and one git push.

Speed is a ranking factor now, not a nice-to-have

Google rolled Core Web Vitals into the ranking algorithm in 2021. LCP, INP, and CLS all factor into search competition. Google's case studies document 20-30% conversion-rate differences between sites that clear the green thresholds and sites that don't.

The problem for WordPress is that the default stack fights you on all three metrics. Render-blocking CSS from themes. Sixty JavaScript files from plugins. Images served at desktop sizes to mobile devices. Database queries on every page request. You can fix each of these with the right plugin, but "the right plugin" means another subscription, another plugin conflict risk, and another config file to maintain.

Astro starts from the other end. Zero JavaScript by default. HTML rendered at build time. Images automatically resized and served in modern formats. The first Astro build of any site I've moved over jumped from a WordPress score in the 60s or 70s to a fresh Lighthouse mobile score in the mid-90s with no further tuning.

Security — the biggest quiet win

The metric I used to track before moving: "minutes per week spent dealing with WordPress security alerts." Across 12 sites it averaged 40-60 minutes weekly. Password brute-force attempts, login-lockout alerts, malicious plugin discoveries, theme vulnerabilities suddenly exploited in the wild — all compounding.

Static sites have a different threat model. There is no database to SQL-inject. There is no admin login to brute-force. There is no PHP runtime to exploit with a crafted request. An attacker looking at my portfolio sees a bucket of HTML files behind a CDN. The attack surface compresses to essentially the supply chain — npm packages I depend on and the CDN provider itself. That's an attack surface I can audit in one afternoon. WordPress's surface is every plugin every time one is updated.

Zero security incidents in the twelve months since the migration. Zero login attempts, because there is no login. Zero database compromises, because there is no database. The WordPress core itself is well-maintained — the problem is that the attack vectors almost always come in through plugins and themes, and the plugin ecosystem is what makes WordPress useful in the first place.

The honest trade-offs I accepted

Astro is not a drop-in WordPress replacement. It wins on the things I care about for affiliate sites, but the things it gives up matter for other kinds of projects. Being honest about the downsides is the only way this comparison is useful:

  • No admin UI. WordPress lets a non-technical user edit a post through a browser window and hit "publish." Astro content lives in markdown files in a git repo. If the site owner isn't comfortable with a text editor and a basic git workflow, they need a developer to push changes — or a headless CMS layered on top (which partly defeats the point).
  • No plugin ecosystem. Want a new feature? You build it yourself or find a JavaScript library and integrate it. There is no "install a plugin and click a checkbox" path. For affiliate content that never changes what it needs to do, this is fine. For a project that keeps adding new types of functionality, it's friction.
  • Smaller community. WordPress has 20 years of tutorials, forums, freelancers for hire, and Stack Overflow answers. Astro is newer — the community exists but you find fewer pre-written solutions to exact problems.
  • Build step required. A content change isn't instant. You edit a file, commit it, Vercel rebuilds the site. With git integration this takes about 30 seconds end-to-end, but it's a different mental model than "click publish and it's live."
  • Migration is a project, not a button click. Moving an existing WordPress site over requires extracting content out of the database, converting it to markdown, rebuilding templates, and redirecting URLs. For a 50-page affiliate site it's a weekend of focused work. For a 500-page content site it's a few weeks.

For affiliate sites specifically, every one of these trade-offs is worth it. You publish content in bursts, not hourly. You don't have multiple editors. You aren't adding wildly new functionality every quarter. The things WordPress is excellent at — frequent content updates by non-technical users, plugin-driven feature creep, an enormous community — are precisely the things an affiliate site doesn't need.

Where WordPress actually is the right call

I'm not anti-WordPress in the abstract. I'd still reach for WordPress first in these situations:

  • Multi-author content operations where the editorial team needs to schedule posts, manage drafts, and collaborate in-browser without touching code.
  • Membership sites with paid content gating, user accounts, and community features. WordPress + MemberPress or WooCommerce Memberships is a well-trodden path.
  • E-commerce with complex product catalogs and inventory management. WooCommerce is genuinely good at this.
  • Clients who will be updating content themselves and have no interest in learning Git or markdown. The cost of making them do it the "technically better" way is higher than the cost of running WordPress.
  • LMS and course sites where plugins like LearnDash handle the heavy lifting around drip content, quizzes, and progress tracking.

Affiliate sites don't fall into any of those buckets. Content gets written once and updated occasionally. There's one author. Nothing is behind a paywall. The product catalog lives in the content itself, not a database. WordPress solves problems an affiliate site doesn't have and charges you every month for the solution.

If you're currently on WordPress — a migration path

For a site earning real money already, don't rip WordPress out overnight. Here's the sequence I've used when rebuilding existing affiliate sites into Astro:

  • Freeze the WordPress content. Stop publishing new posts on the old stack. Anything new gets written in markdown in the new repo.
  • Export the existing content. The WordPress export XML file plus a small Node script is enough to turn 200 posts into 200 markdown files in an afternoon.
  • Rebuild templates in Astro. Review templates, comparison templates, guide templates, homepage. This is where the time goes — two to four days for a full affiliate site template.
  • Match every URL exactly. The /best-x-2025 URL on WordPress stays as /best-x-2025 on Astro. Any differences get 301-redirected in vercel.json. Losing URL continuity is how migrations tank rankings.
  • Deploy to a subdomain first. staging.site.com runs the Astro build. You click through every page, check internal links, re-run Lighthouse, verify images render. Then you flip the DNS.
  • Watch Search Console for two weeks. New 404s, indexing drops, ranking changes. Fix what surfaces. The panic spike usually resolves itself in ten to fourteen days once Google crawls the new structure.

The two bits most people get wrong are URL parity and internal link preservation. If every URL continues to resolve and every internal link points to the right place, Google barely notices the migration happened. It's when you "take the opportunity to clean up the URL structure" that rankings crater.

What affiliate sites actually need

Affiliate sites need speed (Google ranks on it), security (no 11pm plugin panics), low cost (thin margins), reliability (no white-screen failures), and clean semantic markup (AI Overviews pull from structured data). Static sites do every one of these better than WordPress by default.

Static sites do every one of these things better than WordPress by default, without any plugins, optimization tuning, or third-party services. That's the whole argument. The sites I build now are faster, cheaper to run, safer, and rank better — and I don't spend Wednesday afternoons resolving plugin conflicts anymore. Every site in the NichesBuilt portfolio runs this way, and every new site I build for a client is delivered on the same stack.

Want a site built this way?

NichesBuilt delivers Astro-powered affiliate sites with custom design, deep product research, and 95+ Lighthouse scores. Packages from $3,500. Your ongoing cost after delivery is $12 per year — for the domain.