Managing multiple WordPress sites can feel like juggling flaming torches; updates, backups, plugin conflicts, and performance tuning all demand attention. The WordPress dashboard, while intuitive, can sometimes slow you down with endless clicks and loading screens.
Enter WP-CLI (WordPress Command Line Interface), the powerhouse tool that gives developers, sysadmins, and agencies complete control of WordPress directly from the terminal. Once you learn how to harness it, routine tasks that used to take minutes can be done in seconds.
Let’s explore WP-CLI, from installation and setup to advanced use cases, automation, troubleshooting, and expert tips that make WordPress management lightning fast.
What is WP-CLI?
WP-CLI is an open-source command-line interface to manage WordPress without touching the graphical dashboard. It lets you install, configure, update, and maintain WordPress sites with simple commands.
Think of it as a bridge between system administration and WordPress development, one that eliminates repetitive manual work and brings speed, precision, and automation to your workflow.Core capabilities include:
- Installing and configuring WordPress
- Managing users, plugins, and themes
- Running database operations
- Handling migrations and backups
- Automating repetitive maintenance tasks
In short, WP-CLI is your toolkit for turning WordPress management into an efficient, code-driven process.
Why WP-CLI Outperforms the Dashboard
Traditional WordPress management relies on the web interface, which means lots of clicking, waiting, and switching between screens. WP-CLI, on the other hand, processes direct server commands, no waiting for pages to load, no mouse clicks, no delays.
| Task | Using Dashboard | Using WP-CLI |
|---|---|---|
| WordPress Installation | 5–10 minutes | Under 1 minute |
| Plugin Updates | 10–15 clicks | One command |
| User Management | Multiple pages | Single line |
| Bulk Maintenance | Manual for each site | Fully automated |
If you manage multiple client sites, WP-CLI can help you update all plugins and themes across all installations with a single script, saving hours each week.
| Industry Insight: Top managed WordPress hosts such as Kinsta, WP Engine, and Cloudways include WP-CLI by default. Their internal teams rely on it to maintain thousands of customer sites daily, because it’s fast, stable, and scriptable. |
Installing WP-CLI
System Requirements
Before installing, ensure your environment meets the basics:
- PHP 7.4 or higher
- UNIX-like OS (Linux, macOS, or Windows Subsystem for Linux)
- Access to command line
- WordPress 3.7+ (though most modern versions use 6.x and above)
Installation Steps
1. Download WP-CLI Phar file
2. Verify installation works
php wp-cli.phar –info
3. Make it globally executable
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
4. Check installation
wp –info
If you see WP-CLI version details, you’re good to go.
Pro Tip:
If you’re managing multiple servers, consider installing WP-CLI globally using package managers or automation tools like Ansible to ensure every environment has it configured consistently.
Setting Up WordPress Using WP-CLI
Creating a new WordPress site can be done in under two minutes using WP-CLI.
Step-by-Step Installation
wp core download
wp config create –dbname=wp_db –dbuser=admin –dbpass=password
wp db create
wp core install –url=”example.com” –title=”My Site” –admin_user=”admin” —
admin_password=”strongpass” —
admin_email=”[email protected]”
That’s it, you have a fully installed WordPress site ready to go.
Pro Tip:
Use variables in your script for reusable setups:
SITEURL=”mysite.com”
DBNAME=”mydb”
DBUSER=”root”
DBPASS=”secret”
wp core download
wp config create –dbname=$DBNAME –dbuser=$DBUSER –dbpass=$DBPASS
Managing WordPress Core, Plugins, and Themes
Updating Everything
WP-CLI makes updates painless and fast:
wp core update
wp plugin update –all
wp theme update –all
Plugin Management
wp plugin install woocommerce –activate
wp plugin deactivate akismet
wp plugin delete hello
Pro Tip:
Use wp plugin status to quickly check which plugins are active or outdated.
Theme Management
wp theme install astra –activate
wp theme delete twentytwentyone
Core Maintenance
To ensure your core files are intact:
wp core verify-checksums
This is especially useful for detecting tampered or corrupted files after malware removal or migration.
Database Management
Databases are critical to site performance and reliability. WP-CLI simplifies database control.
| Command | Purpose |
|---|---|
| wp db create | Create database |
| wp db export | Backup database to .sql file |
| wp db import | Restore database |
| wp db optimize | Optimize all tables |
| wp db check | Check database integrity |
Example:
wp db export ~/backups/wp_$(date +%F).sql
Pro Tip:
Schedule automatic backups via cron jobs:
0 3 * * * wp db export /home/backups/db_$(date +%F).sql
This ensures daily backups without manual effort.
User and Content Management
Need to create or modify users and posts? WP-CLI makes it instant.
Users
wp user create editor [email protected] –role=editor
wp user update 3 –user_pass=newpassword
wp user delete 4 –reassign=1
Posts
wp post create –post_title=”Hello WP-CLI” –post_status=publish –post_content=”Automated publishing made easy!”
wp post list –post_status=publish
wp post delete 12
Comments
wp comment list
wp comment delete 10 –force
Media
wp media import /path/to/image.jpg –title=”Header Image”
Pro Tip:
Combine media import with scripts to bulk upload hundreds of images without opening your browser.
Improving Performance and Core Web Vitals with WP-CLI
Performance is a key SEO factor. WP-CLI provides powerful tools for optimizing site speed.
| Optimization Task | Command |
|---|---|
| Clear cache | wp cache flush |
| Regenerate thumbnails | wp media regenerate |
| Replace old URLs | wp search-replace ‘oldsite.com’ ‘newsite.com’ |
| Disable unused plugins | wp plugin deactivate plugin-name |
Pro Tip:
Use WP-CLI alongside server-level caching and CDN integration scripts to further reduce Time to First Byte (TTFB).
Industry Insight:
Many agencies report up to 35–40% faster load times after regular cache clearing and media regeneration via WP-CLI scripts.
Working with Multisite Installations
WordPress multisite management can be complex, but WP-CLI simplifies it dramatically.
| Command | Purpose |
|---|---|
| wp site list | List all network sites |
| wp site create | Add a new site to the network |
| wp plugin activate plugin-name –network | Activate plugin for all sites |
| wp theme enable theme-name –network | Enable theme across sites |
Example: Bulk Plugin Update
wp site list –field=url | xargs -n1 -I {} wp –url={} plugin update –all
This command updates every site in the network automatically.
Pro Tip:
Run these scripts during low-traffic hours to minimize disruptions.
Automating Repetitive WordPress Tasks
The real power of WP-CLI lies in automation.
Sample Weekly Maintenance Script
for site in $(wp site list –field=url); do
wp –url=$site plugin update –all
wp –url=$site theme update –all
wp –url=$site core update
wp –url=$site db optimize
done
Schedule it using cron to ensure weekly auto-maintenance.
Automation Idea:
You can even integrate WP-CLI scripts with Slack notifications, so you get real-time updates whenever an update or backup runs successfully.
Custom Development and Debugging with WP-CLI
Developers can leverage WP-CLI to test code, inspect configurations, and even run PHP directly.
Running PHP Commands
wp eval ‘echo get_bloginfo(“name”);’
Checking Site Health
wp core verify-checksums
wp doctor check
Debugging
Enable or disable debugging mode:
wp config set WP_DEBUG true –raw
Pro Tip:
Combine wp doctor and wp profile to analyze performance bottlenecks during plugin or theme development.
Security Best Practices with WP-CLI
Security shouldn’t be an afterthought. WP-CLI can reinforce your WordPress security posture quickly.
Force Strong Passwords
wp user update admin –user_pass=StrongPass@123
Check for Integrity
wp core verify-checksums
wp plugin deactivate –all
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
Industry Insight:
Security teams often use WP-CLI as part of automated incident response pipelines to isolate vulnerabilities and restore backups faster.
Troubleshooting with WP-CLI
WP-CLI’s simplicity makes it a reliable first-aid kit when things go wrong.
| Issue | Command to Fix |
|---|---|
| Site stuck in maintenance mode | wp maintenance-mode deactivate |
| Corrupted permalinks | wp rewrite flush |
| Conflicting plugins | wp plugin deactivate –all |
| Missing admin user | wp user create admin [email protected] –role=administrator |
Pro Tip:
You can enable detailed debugging logs by adding:
wp config set WP_DEBUG_LOG true –raw
This helps diagnose errors without manual file edits.
Expert-Level WP-CLI Usage Scenarios
- Continuous Deployment Integration
Integrate WP-CLI with CI/CD pipelines (GitHub Actions, Jenkins) to automate plugin deployment, database migrations, or post-deploy cleanups. - Version Control Workflows
Combine wp export and wp db export with Git commits for safe, trackable changes. - Headless WordPress Operations
Use WP-CLI to manage backend data on headless WordPress setups while your frontend runs on React, Vue, or Next.js.
Staging Environments
Automate content syncs between staging and production with:
wp search-replace ‘staging.example.com’ ‘production.example.com’
Pro Tips for Power Users
Shortcuts with Aliases:
Define shortcuts for your most-used sites in ~/.wp-cli/config.yml:
@prod:
path: /var/www/html
url: https://mysite.com
- Now, just run wp @prod plugin update –all.
- Dry Runs:
Add –dry-run to preview changes before executing them. - Custom Command Packages:
Extend WP-CLI with community packages from wp-cli.org/package-index to add new capabilities.
That’s a Wrap
WP-CLI transforms the way developers and administrators handle WordPress. From setup and maintenance to automation and optimization, it gives you complete command-line control over your ecosystem.
If you manage multiple WordPress sites, WP-CLI isn’t just a convenience, it’s a productivity multiplier. Master these commands, automate your workflows, and you’ll never go back to clicking through dashboards again.
