🌐 Translation: Translated from Korean.

Complete Your Premium Blog with WordPress + Avada Theme

This post is Episode 4 and the final episode of the “Complete Premium WordPress Blog Setup Guide” series! 🎉

Series Structure:

  1. Blog Launch Guide – Goal Setting and Tech Stack Selection
  2. Complete Vultr VPS Setup Guide
  3. Domain + Cloudflare Configuration
  4. [Current Post] WordPress + Avada Theme Setup (Series Finale!)

Finally Installing WordPress! The Final Step



Through Episodes 1-3, we’ve completed:

  • Episode 1: Blog goal setting, SMART framework, VPS vs shared hosting decision
  • Episode 2: Vultr VPS Seoul region setup ($6/month, 4 years free with $300 credit)
  • Episode 3: Namecheap domain purchase ($10.98/year), Cloudflare free CDN + SSL

Now we’ll finally install WordPress and apply the Avada premium theme to complete your blog!

What You’ll Learn in This Guide:

  • WordOps One-Liner Installation: EasyEngine successor, WordPress automation tool
  • WordPress Site Creation: 10x faster speed with --redis option
  • Redis Caching Explained: --wp vs --redis difference (real beomanro.com data)
  • Cloudflare Origin Certificate: 15-year SSL certificate setup
  • Avada Theme Installation: ThemeForest #1, includes Fusion Builder
  • Performance Optimization: Achieving PageSpeed 90+ score

Estimated Time: 40 minutes


1. WordOps Installation – WordPress Automation Tool

What is WordOps?

WordOps is the official fork (successor) of EasyEngine v3. When EasyEngine v4 went commercial, the community forked v3 to keep it free.

What WordOps Automatically Installs:

  • Nginx: Web server (faster than Apache)
  • PHP 8.1: WordPress runtime environment
  • MySQL/MariaDB: Database
  • FastCGI Caching: Nginx-level caching (default)
  • Redis (optional): WordPress-level caching (10x speed)
  • Let’s Encrypt SSL (optional): Free SSL (we’ll use Cloudflare Origin Certificate)

Advantages:

  • WordPress Running in 5 Minutes: Manual setup takes 2-3 hours → WordOps takes 5 minutes
  • Automatic Security Configuration: PHP-FPM isolation, Nginx security headers
  • Easy Updates: wo update command updates entire stack
  • One-Liner Commands: Handle complex configurations in a single line

WordOps Installation (One-Liner)

Pre-Installation Checklist

  • VPS SSH access available (ssh root@YOUR_VPS_IP)
  • DNS A record propagation complete (configured in Post 3, verify with dig yourdomain.com A)

Installation Command

# SSH into VPS
ssh root@YOUR_VPS_IP

# Install WordOps (one-liner)
wget -qO wo wops.cc && sudo bash wo

# Installation time: 2-3 minutes
# Automatically installs Nginx, PHP 8.1, MySQL

During installation, you’ll see messages like:

Installing Nginx...
Installing PHP 8.1...
Installing MySQL...
WordOps installed successfully!

Verify Installation

# Check WordOps version
wo --version
# Example output: WordOps 3.x.x

# WordOps help
wo --help
# Displays all available commands

Checkpoint

Verify you’ve completed these tasks:

  • WordOps installation complete
  • wo --version output confirmed (3.x.x)
  • DNS A record propagation complete (from Post 3)

2. WordPress Site Creation + Complete Redis Caching Explanation

Question: What’s the Difference Between WordOps Cache Options?

This is what many beginners wonder: --wp vs --redis option difference

Option 1: --wp (Without Redis)

wo site create yourdomain.com --wp

What’s Included:

  • Nginx FastCGI Caching (server-level)
    • Static HTML page caching
    • CSS, JavaScript caching
    • Image caching
  • Speed: 3-5x faster than baseline
  • Sufficient For: Small blogs (under 1,000 monthly visitors)

Option 2: --redis (With Redis) ✅ Recommended

wo site create yourdomain.com --wp --redis

What’s Included:

  • Nginx FastCGI Caching (server-level) ← Same as --wp
  • Redis Object Cache (WordPress-level) ← Additional!
    • WordPress DB query result caching
    • Post metadata caching
    • Plugin data caching
  • Speed: 10x faster than baseline
  • Recommended: Medium scale and up (1,000+ monthly visitors)

What is Redis Object Cache?

Problem: WordPress executes dozens of queries to the MySQL database on every page load:

  • Post content, categories, tags, metadata, etc.
  • DB queries are slow (require disk I/O)

Solution: Redis Object Cache

  • Cache query results in memory (RAM)
  • Return immediately from memory on repeated queries without DB access
  • 90% reduction in DB load
  • 50-70% reduction in page load time

Real beomanro.com Measurement Results

Status Average Response Time Improvement
Without Redis 800ms
With Redis 250ms 67% faster!

Additional Cost: $0

  • Redis runs sufficiently on 1GB RAM VPS
  • Redis uses approximately 50-100MB RAM

Conclusion: Redis Object Cache is free while providing 10x performance improvement. Always use the --redis option!


Create WordPress Site (With Redis)

# Create WordPress + Redis site
wo site create yourdomain.com --wp --redis

# Installation time: 3-5 minutes
# Automatically performs:
# 1. MySQL database creation
# 2. WordPress latest version download and installation
# 3. Nginx virtual host configuration
# 4. PHP-FPM pool creation
# 5. Redis server installation and connection
# 6. WordPress admin account auto-creation

Post-Installation Output Information

Upon completion, you’ll see information like:

WordPress Admin User: admin-abc123
WordPress Admin Pass: RandomPassword123!
WordPress Admin Email: [email protected]

Save this information!

⚠️ Important: Always save your admin credentials in a secure location!


Access WordPress Admin

URL: https://yourdomain.com/wp-admin
Username: admin-abc123
Password: (password you saved above)

Access this URL in your browser and log in.


Check Site Information

wo site info yourdomain.com

# Example output:
# Site: yourdomain.com
# Status: Enabled
# Nginx config: /etc/nginx/sites-available/yourdomain.com
# PHP version: 8.1
# Database: wp_yourdomain
# Redis: Enabled ✅

Checkpoint

Verify you’ve completed these tasks:

  • WordPress site creation complete (used --redis option)
  • Admin credentials safely saved
  • WordPress admin login successful
  • Redis status verified (wo site info command)

3. Cloudflare Origin Certificate Generation and Nginx SSL Configuration

In Post 3, we set SSL/TLS mode to “Full (strict)”. Now we need to install a valid SSL certificate on the VPS.

Cloudflare Origin Certificate vs Let’s Encrypt

Item Let’s Encrypt Cloudflare Origin
Validity Period 90 days (auto-renewal) 15 years
Renewal Management cron required Not required (15 years)
Cost Free Free
Use Case General sites Cloudflare Proxy sites

Cloudflare Origin Certificate Advantages:

  • 15-year validity: Zero management burden
  • Trusted by Cloudflare
  • Easy installation

Step 1: Generate Cloudflare Origin Certificate

  1. Cloudflare Dashboard → SSL/TLSOrigin Server
  2. Click “Create Certificate” button
  3. Settings:
    • Private key type: RSA (2048 bit)
    • Hostnames: yourdomain.com, *.yourdomain.com (wildcard)
    • Certificate Validity: 15 years
  4. Click “Create” button

2 files generated:

  • Origin Certificate: PEM format certificate
  • Private Key: RSA private key

⚠️ Important: You won’t be able to view the Private Key again, so copy and save it immediately!


Step 2: Save Certificate on VPS

# SSH into VPS
ssh root@YOUR_VPS_IP

# Create directory
mkdir -p /etc/ssl/cloudflare

# Save Origin Certificate
nano /etc/ssl/cloudflare/yourdomain.com.pem
# (Paste the Origin Certificate copied from Cloudflare)
# Ctrl+O (save), Enter, Ctrl+X (exit)

# Save Private Key
nano /etc/ssl/cloudflare/yourdomain.com.key
# (Paste the Private Key copied from Cloudflare)
# Ctrl+O, Enter, Ctrl+X

# Set permissions (security)
chmod 600 /etc/ssl/cloudflare/yourdomain.com.key
chmod 644 /etc/ssl/cloudflare/yourdomain.com.pem

Step 3: Update Nginx SSL Configuration

# Edit Nginx configuration file
nano /etc/nginx/sites-available/yourdomain.com

Find and Change SSL Certificate Paths:

Existing configuration (comment out or delete):

# ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;

Change to new Cloudflare Origin Certificate paths:

ssl_certificate /etc/ssl/cloudflare/yourdomain.com.pem;
ssl_certificate_key /etc/ssl/cloudflare/yourdomain.com.key;

Save and Exit: Ctrl+O, Enter, Ctrl+X


Step 4: Test Nginx Configuration and Restart

# Test Nginx configuration
nginx -t

# Output:
# nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
# nginx: configuration file /etc/nginx/nginx.conf test is successful

# Restart Nginx
systemctl reload nginx

Step 5: Verify HTTPS Access

# Verify in terminal
curl -I https://yourdomain.com

# Confirm HTTP/2 200 in output
# HTTP/2 200
# server: nginx

Verify in Browser:

  1. Access https://yourdomain.com
  2. Click padlock icon in address bar
  3. Confirm “Connection is secure”

Checkpoint

Verify you’ve completed these tasks:

  • Cloudflare Origin Certificate generated (15-year validity)
  • Certificate saved on VPS (/etc/ssl/cloudflare/)
  • Nginx SSL configuration updated
  • nginx -t test successful
  • HTTPS access verified (browser)

4. Avada Theme Installation and Selection Rationale

Why Avada Instead of Free Themes?

Free Theme Limitations

  • ❌ Limited customization (restricted options)
  • ❌ Separate page builder installation required (compatibility issues)
  • ❌ Irregular updates (security risks)
  • ❌ Lack of support (community forum dependency)
  • ❌ Insufficient SEO optimization

6 Avada Theme Advantages

1. ThemeForest #1 Sales 🏆

  • 800,000+ sales = proven quality
  • Used by millions of sites worldwide
  • 8+ years of continuous development

2. Includes Fusion Builder ($60 value)

  • Drag-and-drop page builder
  • No separate plugins needed (Elementor, WPBakery)
  • Lighter and faster (vs competitors)

3. 60+ Pre-built Demos

  • One-click import
  • Blog, portfolio, business, etc.
  • Just customize and you’re done

4. Lifetime License ($60 one-time payment)

  • Unlimited updates
  • 1-site license
  • Additional sites only $60 each (very affordable!)

5. Regular Updates and Professional Support

  • Immediate WordPress latest version compatibility
  • Dedicated support forum (24-hour response)
  • 200+ page documentation

6. SEO Optimized

  • Perfect Rank Math SEO compatibility
  • Automatic Schema.org markup
  • Fast loading speed (optimized)
  • Core Web Vitals friendly

ROI (Return on Investment) Calculation

Item Cost/Value
Avada Theme $60 (one-time)
Time Saved 20-30 hours (design/customization)
Hourly Value $60 ÷ 25 hours = $2.4/hour
Premium Appearance Higher engagement time = More AdSense revenue

beomanro.com Case Study:

  • Currently using Avada
  • Custom layouts created with Fusion Builder
  • Using Large Alternate blog layout
  • Maintaining PageSpeed score 90+

Conclusion: $60 investment = premium appearance + 20 hours saved + higher revenue = absolutely worth it!


Step 1: Upload Theme in WordPress Admin

  1. Log into WordPress admin: https://yourdomain.com/wp-admin
  2. AppearanceThemes
  3. Click Add New button
  4. Click Upload Theme button
  5. Choose File → Select Avada.zip (downloaded from ThemeForest)
  6. Click Install Now
  7. Click Activate

Step 2: Install Fusion Builder and Required Plugins

After theme activation, a notification banner appears at the top:

  • Click “Begin installing plugins”

Check Required Plugins:

  • Fusion Builder: Page builder (required!)
  • Fusion Core: Core functionality (required!)

Optional Plugins (install later if needed):

  • Convert Forms (form builder)
  • Slider Revolution (slider)
  • WooCommerce (e-commerce)

Installation:

  1. Check Fusion Builder, Fusion Core
  2. Select “Install” dropdown
  3. Click “Apply” button
  4. After installation completes, select “Activate”“Apply”

Step 3: Avada License Registration (Optional)

Production Environment: License registration required (automatic updates)
Development/Local Environment: Can skip

  1. ThemeForest → Downloads → Avada → “License certificate & purchase code”
  2. WordPress Admin → AvadaTheme Registration
  3. Enter purchase code and register

Step 4: Avada Theme Basic Configuration

Site Title and Tagline

  1. SettingsGeneral
  2. Site Title: My Awesome Blog
  3. Tagline: Tech Blog for Developers
  4. Save Changes

Avada Theme Options Configuration

  1. AvadaTheme Options
  2. Blog:
    • Blog Layout: Large Alternate (recommended)
    • Blog Posts Per Page: 10
  3. Performance:
    • CSS Compiling Method: File (recommended)
    • JS Compiler: Enabled
    • Lazy Loading: Enabled
    • Remove Emojis: Enabled (if not using emojis)
  4. Save Changes

Permalinks Configuration (SEO Important!)

  1. SettingsPermalinks
  2. Select Post name (https://yourdomain.com/post-title/) ✅
  3. Save Changes

Checkpoint

Verify you’ve completed these tasks:

  • Avada theme uploaded and activated
  • Fusion Builder, Fusion Core plugins installed
  • Site title and tagline configured
  • Blog Layout: Large Alternate selected
  • Permalinks: Post name configured

5. Performance Optimization and Measurement

Activate Redis Object Cache Plugin

WordOps installed the Redis server, but a plugin is needed to connect it with WordPress!


Step 1: Install Plugin

  1. Log into WordPress admin: https://yourdomain.com/wp-admin
  2. PluginsAdd New
  3. Enter Redis Object Cache in search box
  4. Select “Redis Object Cache” by Till Krüss
  5. Install NowActivate

Step 2: Verify wp-config.php Redis Configuration

Verify that WordOps automatically added Redis configuration.



# SSH into VPS
ssh root@YOUR_VPS_IP

# Check Redis configuration in wp-config.php
grep -A 5 "REDIS" /var/www/yourdomain.com/wp-config.php

Example output when properly configured:

define('WP_REDIS_CLIENT', 'phpredis');
define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
define('WP_REDIS_DATABASE', 0);

⚠️ If configuration is missing (manual addition required):

nano /var/www/yourdomain.com/wp-config.php

Add this code above /* That's all, stop editing! */:

// Redis Object Cache configuration
define('WP_REDIS_CLIENT', 'phpredis');
define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
define('WP_REDIS_DATABASE', 0);

Save: Ctrl+O, Enter, Ctrl+X


Step 3: Connect and Enable Redis

  1. WordPress Admin → SettingsRedis
  2. Check connection status in Diagnostics tab:

When properly connected:

✅ Status: Connected
✅ Client: PhpRedis
✅ Drop-in: Valid
✅ Redis: 7.x
✅ Filesystem: Read-only
  1. Click “Enable Object Cache” button

Success message:

✅ Object cache enabled.
  1. Check real-time statistics in Overview tab:
Hits: 1,234
Misses: 56
Hit Rate: 95.6%
Memory Usage: 2.5 MB

If hit rate is 90% or higher, it’s working properly! 🎉


Step 4: Verify object-cache.php File Creation

Verify that the Redis Object Cache plugin created the object-cache.php file.

# Check object-cache.php file
ls -lh /var/www/yourdomain.com/wp-content/object-cache.php

# Example output:
# -rw-r--r-- 1 www-data www-data 8.2K Nov  6 10:30 object-cache.php

✅ If the file exists, Redis Object Cache is activated!


Step 5: Verify Redis Operation (SSH)

# Check Redis server status
redis-cli ping
# Output: PONG ✅

# Check Redis statistics
redis-cli info stats

# Example output:
# total_connections_received:42
# total_commands_processed:1250
# instantaneous_ops_per_sec:15
# keyspace_hits:987        ← Cache hits
# keyspace_misses:45       ← Cache misses

Hit Rate Calculation:

  • Hit Rate = keyspace_hits / (keyspace_hits + keyspace_misses) × 100
  • Example: 987 / (987 + 45) × 100 = 95.6%

Step 6: Test Cache Operation in WordPress

# Refresh posts multiple times to generate cache
curl https://yourdomain.com/

# Check number of keys stored in Redis
redis-cli DBSIZE
# Output: (integer) 127  ← Number of WordPress cache keys

If cache is increasing, it’s working properly!


Troubleshooting (Redis Connection Failure)

Problem 1: “Status: Not connected” displayed

Cause: PhpRedis extension not installed

Solution:

# Check PhpRedis extension installation
php -m | grep redis

# If no output, installation needed
wo stack install --redis

# Restart PHP
systemctl restart php8.1-fpm

Problem 2: “Drop-in: Invalid” displayed

Cause: object-cache.php file permission issue

Solution:

# Fix file permissions
chown www-data:www-data /var/www/yourdomain.com/wp-content/object-cache.php
chmod 644 /var/www/yourdomain.com/wp-content/object-cache.php

Problem 3: Redis server not running

Cause: Redis server stopped

Solution:

# Check Redis server status
systemctl status redis-server

# Start if stopped
systemctl start redis-server

# Enable auto-start on boot
systemctl enable redis-server

Avada Performance Settings

  1. AvadaTheme OptionsPerformance
  2. CSS Compiling: File (recommended)
  3. JS Compiler: Enabled
  4. Lazy Loading: Enabled
  5. Remove Emojis: Enabled (if not using emojis)
  6. Save Changes

Performance Benchmark

Google PageSpeed Insights

  1. Access https://pagespeed.web.dev/
  2. Enter yourdomain.com
  3. Click Analyze

Target Scores:

  • Desktop: 90+ (beomanro.com: 92)
  • Mobile: 70+ (beomanro.com: 78)

Core Web Vitals

  • LCP (Largest Contentful Paint): <2.5s
  • FID (First Input Delay): <100ms
  • CLS (Cumulative Layout Shift): <0.1

Real beomanro.com Measurement Results

Desktop PageSpeed: 92/100 ✅
Mobile PageSpeed: 78/100 ✅
LCP: 2.1s ✅
FID: 45ms ✅
CLS: 0.05 ✅
Average response time: 250ms (using Redis Object Cache)

Performance Improvement Tips (If Needed)

Free:

  • Convert images to WebP: Imagify plugin (has free plan)
  • Image optimization: ShortPixel (100 images/month free)

Paid (if needed):

  • WP Rocket: Caching plugin ($49/year, most popular)
  • Cloudflare APO: Automatic Platform Optimization ($5/month, HTML edge caching)

Checkpoint

Verify you’ve completed these tasks:

  • Redis Object Cache plugin installed and activated
  • Verified Redis configuration exists in wp-config.php (grep REDIS)
  • WordPress Admin → Settings → Redis shows “Status: Connected”
  • Clicked “Enable Object Cache” button to activate
  • Verified Hit Rate 90% or higher in Overview tab
  • Confirmed object-cache.php file creation (ls wp-content/)
  • SSH command redis-cli ping responds PONG
  • Avada performance settings complete (CSS Compiling, JS Compiler, Lazy Loading)
  • PageSpeed Insights measured (Target: Desktop 90+, Mobile 70+)

🎉 Series Complete! Congratulations!

You’ve completed the long journey spanning 4 episodes. Your premium WordPress blog is now complete!

What You’ve Built

Infrastructure

  • Vultr VPS Seoul Region (Shared CPU, $6/month)
  • Namecheap Domain ($10.98/year)
  • Cloudflare Free CDN + DDoS Protection + SSL

WordPress

  • WordOps Automatic Installation
  • Redis Object Cache (10x speed)
  • Avada Premium Theme + Fusion Builder

Performance

  • PageSpeed 90+ (Desktop), 70+ (Mobile)
  • Average Response Time 250ms
  • HTTPS Secure Connection

Final Cost Breakdown

Initial Investment

Item Cost Notes
Vultr VPS $0 $300 promo credit (4 years free!)
Domain $10.98 First year
Avada Theme $60 Lifetime license
Total Initial Investment $70.98

Annual Maintenance Cost (First 4 Years)

Item Annual Cost
VPS $0 (using credits)
Domain $12.98 (renewal)
Total Annual Maintenance $12.98/year

ROI (Return on Investment)

Expected Revenue After 1 Year (based on Post 1 SMART goals):

  • Monthly visitors: 20,000
  • Monthly revenue: $500 (assuming $10 RPM)
  • Annual revenue: $6,000

ROI Calculation:

  • Initial investment: $70.98
  • Cumulative revenue after 1 year: $3,000-6,000
  • ROI: 4,200-8,400% (42-84x!)

Conclusion: If a $70 initial investment can generate $6,000 annually, this is one of the best investments possible!


Next Actions: Start Running Your Blog!

The infrastructure is now complete. Only action remains!

Immediate Tasks (Today)

1. Write and Publish Your First Post

  • Choose a topic in your area of expertise
  • Minimum 500 words (recommended: 1,000-1,500 words)
  • Keyword research (Google Trends, Ubersuggest)

2. Register Google Search Console

3. Set Up Google Analytics


Within 1 Week

4. Configure Rank Math SEO Plugin

  • Plugins → Add New → “Rank Math”
  • Run Setup Wizard
  • Connect Google Search Console

5. Create Basic Pages

  • About Me
  • Privacy Policy
  • Contact

Within 1 Month

6. Start Publishing Content

  • Goal: 2+ posts per week (8 posts/month)
  • Quality > quantity (minimum 1,000 words)

7. Apply for Google AdSense

  • Minimum requirements: 15-20 posts, 1,000 monthly visitors
  • Approval takes 1-4 weeks

Within 3 Months

8. Build Email Subscriber Base

  • Mailchimp free plan (up to 500 subscribers)
  • Popup or sidebar widget

9. Integrate Social Media

  • Twitter, LinkedIn, Facebook
  • Automatic post sharing

Within 6 Months

10. Revenue Optimization

  • AdSense ad placement A/B testing
  • Start affiliate marketing
  • Consider digital products (ebooks, courses)

Final Advice

3 Principles of Successful Blogging

1. Consistency > Perfection

  • 2 decent posts per week beats 1 perfect post per month
  • Maintain publishing schedule (builds reader trust)

2. Reader-Centered

  • What readers want to know > what you want to write
  • Understand search intent (keyword research)

3. Long-Term Investment

  • SEO effects take 6+ months
  • 100 posts = 100 Google search entry points

Words of Encouragement

The first 3 months will have almost no revenue and few visitors. But don’t give up.

If you consistently publish quality content, results start appearing after 6 months. It compounds like interest.

By completing your blog following this series, you’re already ahead of 99% of people. Most never start, give up after Episode 1, or fail with the wrong infrastructure.

You have the right infrastructure. Only action remains.

Let’s go! 🚀


If this series helped you:

  • ⭐ Bookmark all 4 episodes
  • 📧 Subscribe to email newsletter (get notified of follow-up posts)
  • 💬 Share your success story in comments

View Full Series:

  1. Blog Launch Guide – Goal Setting and Tech Stack Selection
  2. Complete Vultr VPS Setup Guide
  3. Domain + Cloudflare Configuration
  4. [Current Post] WordPress + Avada Theme Setup ← Complete! 🎉

Recommended Next Posts (to be written):

  • Rank Math SEO vs Yoast SEO Comparison
  • Complete Google AdSense Approval Guide
  • WordPress Backup and Recovery Strategy