Overview
WordPress is the most popular CMS in the world, and Publish Owl integrates seamlessly with it using the WordPress REST API. This guide covers everything you need to connect your WordPress site and start publishing AI-generated content.
Requirements
- A self-hosted WordPress.org site (WordPress.com Business plan or higher also supports the REST API)
- WordPress 5.6 or later (for Application Passwords support)
- Admin or Editor access to create Application Passwords
- HTTPS enabled on your site (required for security)
Step 1: Create an Application Password
WordPress Application Passwords let external apps authenticate without using your main password.
- Log in to your WordPress admin dashboard
- Go to Users → Profile (or Users → All Users and edit your user)
- Scroll down to the Application Passwords section
- Enter a name like "Publish Owl" in the "New Application Password Name" field
- Click Add New Application Password
- Copy the generated password immediately (it won't be shown again!)
Application Password Format
The password will look something like: ABcd EFgh IJkl MNop QRst UVwx
You can enter it with or without spaces - Publish Owl handles both formats.
Step 2: Add Your WordPress Site
- In Publish Owl, go to Sites
- Click + Add Site
- Enter a name for your site
- Select WordPress as the CMS type
- Fill in the WordPress fields:
- Site URL: Your WordPress URL (e.g.,
https://example.com) - Username: Your WordPress username
- Application Password: The password you generated in Step 1
- Site URL: Your WordPress URL (e.g.,
- Click Save Site
Publish Owl will test the connection. If successful, your site is ready to use!
WordPress-Specific Features
When you create a workflow connected to a WordPress site, you get access to additional WordPress-specific options:
Categories
Enter a Category ID in the workflow settings to assign all published articles to a specific category. Find the ID by hovering over a category in Posts → Categories and looking at the URL.
For per-article category control, add a categories column to your CSV. Values can be
comma-separated category names (e.g., Reviews, Guides), numeric IDs (e.g., 5, 12),
or a mix of both. Categories specified by name that don't exist in WordPress are created automatically.
Per-article categories override the workflow-level default.
Slug Override
Add a slug column to your CSV to set the URL slug for each article individually,
overriding the workflow's slug format setting. Non-ASCII characters (e.g. Cyrillic, accented Latin characters)
are preserved - the system only normalizes spaces to hyphens and lowercases the text.
Custom Fields (Expandable Section)
Click "Custom Fields (WordPress)" to reveal additional options:
- Post Type: Publish to "posts", "pages", or custom post types
- Excerpt: Template for the post excerpt (supports
{{keyword}}and{{title}}) - Tags: Add tags to posts (one per line, supports variables)
- Custom Meta Fields: Set ACF fields, Yoast SEO meta, or any custom meta
- Gutenberg Blocks: Enable this option to convert HTML output to WordPress Block Editor (Gutenberg) format. This produces native WordPress blocks instead of a Classic block, which improves compatibility with block-based themes and plugins.
SEO Plugin Support
When your workflow generates a meta description, Publish Owl automatically sets the appropriate meta fields for both Yoast SEO and RankMath:
_yoast_wpseo_metadesc- Meta description (Yoast)rank_math_description- Meta description (RankMath)rank_math_focus_keyword- Focus keyword (RankMath), set to the job's target keyword
Both plugins only read their own meta keys, so there is no conflict. You don't need to configure anything - the correct fields are set automatically regardless of which SEO plugin you use.
Using Custom Meta Fields
Custom meta fields let you set values for ACF (Advanced Custom Fields), Yoast SEO, Rank Math, or any other plugin that uses post meta.
Common Examples
# Yoast SEO meta description
Key: _yoast_wpseo_metadesc
Value: {{title}} - Learn everything you need to know.
# Rank Math SEO title
Key: rank_math_title
Value: {{keyword}} | Your Site Name
# Custom reading time field
Key: reading_time
Value: 5 min read {{keyword}}, {{title}}, and any
custom CSV column variables in meta field values. These will be replaced with the actual values
when the article is published.
Featured Images
Publish Owl automatically uploads featured images to your WordPress Media Library and sets them on the post. Configure image generation in your workflow settings:
- AI Generation: Use GPT Image 1.5, Gemini, Flux, Stable Diffusion, Ideogram, xAI Grok, Replicate, or other AI models
- Stock Photos: Automatically find relevant images from Pexels, Unsplash, or Pixabay
- Image Templates: Create custom branded images with the visual editor
Scheduled Publishing
WordPress fully supports scheduled posts. When you use Publish Owl's scheduling features:
- Articles are created with WordPress's "Scheduled" status
- WordPress automatically publishes them at the scheduled time
- You can see pending scheduled posts in your WordPress dashboard
Content Refresh
When you use Publish Owl's content refresh feature (manually or via scheduled refresh), both the title and content are updated on your WordPress site. This is particularly useful for:
- Time-sensitive content: Articles like "Best Laptops - January 2026" can have their titles updated to reflect the current date
- Evergreen updates: Keep statistics, prices, and recommendations current
- SEO freshness: Updated content signals to search engines that your articles are maintained
Troubleshooting
"Application Passwords" section not visible
Application Passwords require HTTPS. Make sure your site uses SSL. Some security plugins also disable this feature - check your plugin settings.
"401 Unauthorized" error
Double-check your username and application password. Make sure you're using your WordPress username (not email) and the full application password.
"403 Forbidden" error
Your security plugin or server firewall may be blocking REST API requests. Try temporarily disabling security plugins to test, then whitelist the necessary endpoints.
"rest_no_route" or 404 error
The REST API might be disabled. Go to Settings → Permalinks and click "Save Changes" (even without changing anything) to flush rewrite rules.
Posts created but not visible
Check if posts are being created as drafts or in a different post type. Also verify the category exists if you specified a Category ID.