meta bulk
Destructive
This command writes to your WordPress database. Use --dry-run to preview first.
Usage
seo-ops meta bulk --from-csv=<file> [--map=<field-mapping>] [--path=<path>] [--dry-run] [--batch-size=N]
Bulk update SEO metadata using a flexible CSV with column-to-field mapping. More flexible than meta import — supports custom column headers.
Examples
# Basic bulk update
seo-ops meta bulk --from-csv=updates.csv --path=/var/www/html --dry-run
# Custom column mapping
seo-ops meta bulk --from-csv=updates.csv --map="post_id:id,seo_title:title" --path=/var/www/html --dry-run
# Control batch size for large files
seo-ops meta bulk --from-csv=updates.csv --batch-size=50 --path=/var/www/html
# Run without dry-run to apply changes
seo-ops meta bulk --from-csv=updates.csv --path=/var/www/html
CSV Column Mapping
Without --map, the default column mapping is:
| CSV Column | SEO Field |
|---|---|
id or post_id | Post ID |
title | SEO title |
description | Meta description |
focus_keyword | Focus keyword |
canonical | Canonical URL |
noindex | Noindex flag |
og_title | Open Graph title |
og_description | Open Graph description |
Use --map to override: --map="csv_col:seo_field,csv_col2:seo_field2"
Exit Codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | Errors during update |
| 4 | WordPress path not configured |