🌐 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:
- Blog Launch Guide – Goal Setting and Tech Stack Selection
- Complete Vultr VPS Setup Guide
- Domain + Cloudflare Configuration
- [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
--redisoption - ✅ Redis Caching Explained:
--wpvs--redisdifference (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 updatecommand 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 --versionoutput 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
--redisoption) - Admin credentials safely saved
- WordPress admin login successful
- Redis status verified (
wo site infocommand)
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
- Cloudflare Dashboard → SSL/TLS → Origin Server
- Click “Create Certificate” button
- Settings:
- Private key type: RSA (2048 bit)
- Hostnames:
yourdomain.com,*.yourdomain.com(wildcard) - Certificate Validity: 15 years
- 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:
- Access
https://yourdomain.com - Click padlock icon in address bar
- 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 -ttest 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
- Log into WordPress admin:
https://yourdomain.com/wp-admin - Appearance → Themes
- Click Add New button
- Click Upload Theme button
- Choose File → Select
Avada.zip(downloaded from ThemeForest) - Click Install Now
- 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:
- Check Fusion Builder, Fusion Core
- Select “Install” dropdown
- Click “Apply” button
- After installation completes, select “Activate” → “Apply”
Step 3: Avada License Registration (Optional)
Production Environment: License registration required (automatic updates)
Development/Local Environment: Can skip
- ThemeForest → Downloads → Avada → “License certificate & purchase code”
- WordPress Admin → Avada → Theme Registration
- Enter purchase code and register
Step 4: Avada Theme Basic Configuration
Site Title and Tagline
- Settings → General
- Site Title:
My Awesome Blog - Tagline:
Tech Blog for Developers - Save Changes
Avada Theme Options Configuration
- Avada → Theme Options
- Blog:
- Blog Layout: Large Alternate (recommended)
- Blog Posts Per Page: 10
- Performance:
- CSS Compiling Method: File (recommended)
- JS Compiler: Enabled
- Lazy Loading: Enabled
- Remove Emojis: Enabled (if not using emojis)
- Save Changes
Permalinks Configuration (SEO Important!)
- Settings → Permalinks
- Select Post name (
https://yourdomain.com/post-title/) ✅ - 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
- Log into WordPress admin:
https://yourdomain.com/wp-admin - Plugins → Add New
- Enter
Redis Object Cachein search box - Select “Redis Object Cache” by Till Krüss
- Install Now → Activate
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
- WordPress Admin → Settings → Redis
- Check connection status in Diagnostics tab:
When properly connected:
✅ Status: Connected
✅ Client: PhpRedis
✅ Drop-in: Valid
✅ Redis: 7.x
✅ Filesystem: Read-only
- Click “Enable Object Cache” button
Success message:
✅ Object cache enabled.
- 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
- Avada → Theme Options → Performance
- CSS Compiling: File (recommended)
- JS Compiler: Enabled
- Lazy Loading: Enabled
- Remove Emojis: Enabled (if not using emojis)
- Save Changes
Performance Benchmark
Google PageSpeed Insights
- Access https://pagespeed.web.dev/
- Enter
yourdomain.com - 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.phpfile creation (ls wp-content/) - SSH command
redis-cli pingresponds 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
- https://search.google.com/search-console
- Verify domain ownership
- Submit sitemap:
yourdomain.com/sitemap_index.xml
3. Set Up Google Analytics
- https://analytics.google.com
- Install tracking code (Avada → Theme Options → Integration)
- Start visitor tracking
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:
- Blog Launch Guide – Goal Setting and Tech Stack Selection
- Complete Vultr VPS Setup Guide
- Domain + Cloudflare Configuration
- [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
Leave A Comment