Skip to main content

Quick Tutorial

This tutorial walks you through a complete first session: install, configure, run an audit, and apply a safe metadata update.

Step 1: Install

git clone [email protected]:donnyaw/wp-seo-ops.git
cd wp-seo-ops
bash scripts/install.sh

Output:

Installing wp-seo-ops to ~/.local/bin/seo-ops
Config directory created at ~/.wp-seo-ops/
Installation complete. Run 'seo-ops help' to get started.

Verify:

seo-ops --version

Output:

wp-seo-ops 0.1.0

Step 2: Configure

Point wp-seo-ops to your WordPress site:

seo-ops config init
seo-ops config set default_path /var/www/html

Output:

Config initialized at ~/.wp-seo-ops/config.json
default_path set to /var/www/html

Now commands work without repeating --path:

seo-ops config get default_path

Output:

default_path: /var/www/html

Step 3: Inventory The Site

See what WordPress site and SEO plugin are active:

seo-ops inventory

Output example:

WordPress Site: https://example.com
WordPress Version: 6.4.2
Active SEO Plugin: Yoast SEO (wordpress-seo)
Post Count: 47 posts, 12 pages
Plugin Status: meta commands will use _yoast_wpseo_* keys

This tells you the adapter detected Yoast SEO. All meta commands will map to Yoast meta keys automatically.

Step 4: Run A Full Audit

seo-ops audit full --format=md

Output example:

# SEO Audit Report

Generated: 2024-12-15T10:30:00Z
Site: https://example.com

## Overall Score: 72/100 (GOOD)

## Category Scores

| Category | Score | Weight | Weighted |
|----------|-------|--------|----------|
| Meta Tags | 16/20 | 20% | 16.0 |
| Links | 12/15 | 15% | 12.0 |
| Images | 7/10 | 10% | 7.0 |
| PageSpeed | 11/15 | 15% | 11.0 |
| Schema | 8/10 | 10% | 8.0 |
| Redirects | 10/10 | 10% | 10.0 |
| Sitemap | 10/10 | 10% | 10.0 |
| Robots.txt | 5/5 | 5% | 5.0 |
| Content | 3/5 | 5% | 3.0 |

## Issues Found

- 5 posts missing meta descriptions
- 8 posts with duplicate titles
- 12 images missing alt text
- No schema markup on 3 key pages
- PageSpeed score: 68 (needs improvement)

You now have a baseline for your site.

Step 5: Check A Specific Post

seo-ops meta list 123

Output:

title | My Page Title
description | This is the meta description for my page
canonical | https://example.com/my-page
focus_keyword | target keyword
noindex | 0

Step 6: Preview A Metadata Change (Dry Run)

seo-ops meta set 123 description "Improved meta description for search results" --dry-run

Output:

DRY RUN: Would set description for post 123 to "Improved meta description for search results"
Original value: "This is the meta description for my page"
New value: "Improved meta description for search results"
No database changes were made.

Step 7: Apply The Change

seo-ops meta set 123 description "Improved meta description for search results"

Output:

Post 123: description updated successfully

Step 8: Verify The Change

seo-ops meta get 123 description

Output:

Improved meta description for search results

Step 9: Audit Meta Status After The Change

seo-ops audit meta-check --format=table

Output:

Post ID | Title OK | Desc OK | Keywords OK | Canonical OK | Status
--------|----------|---------|-------------|--------------|-------
123 | OK | OK | OK | OK | Complete
124 | OK | MISSING | OK | OK | Missing desc
125 | OK | OK | OK | OK | Complete

What You Learned

  • Install and configure wp-seo-ops
  • Discover your WordPress plugin state with inventory
  • Run a full audit and read the summary scores
  • Preview changes before applying them (--dry-run)
  • Apply a single metadata change safely
  • Verify and validate after changes

Next step: read Production Playbooks for real-world operating scenarios.