Documentation Index
Fetch the complete documentation index at: https://docs.siftly.ai/llms.txt
Use this file to discover all available pages before exploring further.
Overview
This guide is for WordPress users who want to publish Siftly-generated GEO content and apply Siftly’s SEO/GEO recommendations directly from their dashboard. After following it, you’ll be able to push optimized content to WordPress and ensure all meta fields, structured data, and tags are correctly applied. Difficulty: ✅ Non-tech friendly — no coding required for basic setup. Siftly supports two WordPress connection methods so you can publish regardless of how your site is hosted:| Connection type | Who it’s for | Auth method |
|---|---|---|
| WordPress.com | Sites hosted at wordpress.com or using Jetpack | OAuth2 — no passwords needed |
| Self-hosted (WordPress.org) | Your own server running WordPress | Application Passwords (WP 5.6+) |
Which connection type do I need?
Use WordPress.com if:- Your site URL ends in
.wordpress.com, or - You use Jetpack to connect a self-hosted site to WordPress.com’s infrastructure
- You installed WordPress on your own server or a managed host (e.g., WP Engine, Kinsta, Flywheel, SiteGround), or
- Your site URL is a custom domain and you manage your own hosting
Connecting WordPress.com (OAuth2)
Prerequisites
- A WordPress.com account
- A WordPress.com site with a blog enabled (free and paid plans are both supported)
Step 1: Start the OAuth connection
Siftly uses WordPress.com’s official OAuth2 flow — you never share your password with Siftly.- In Siftly, go to Settings → Integrations
- Click Connect next to WordPress
- On the type selection screen, click Connect WordPress.com
- You’ll be redirected to WordPress.com to authorize access
- Log in with your WordPress.com credentials if prompted
- Click Approve to grant Siftly permission to publish posts on your behalf
Step 2: Verify the connection
After authorizing, Siftly displays your connected site URL. If you see an error instead, see Troubleshooting.Connecting a Self-hosted Site (WordPress.org)
Self-hosted WordPress sites use Application Passwords — a built-in WordPress feature since version 5.6 that lets you grant API access without sharing your main account password.Prerequisites
Before connecting, make sure your site meets these requirements:WordPress 5.6 or later
Pretty permalinks enabled
Generate an Application Password
- Log in to your WordPress admin panel
- Go to Users → Your Profile (or Users → All Users → Edit for another user)
- Scroll down to the Application Passwords section
- Enter a name for the password (e.g.,
Siftly) - Click Add New Application Password
- Copy the generated password immediately — it is shown only once
HTTPS enabled (strongly recommended)
https://.Step 1: Connect in Siftly
- In Siftly, go to Settings → Integrations
- Click Connect next to WordPress
- On the type selection screen, click Connect Self-hosted
- Fill in the three fields:
| Field | What to enter |
|---|---|
| Site URL | The root URL of your WordPress site, e.g. https://yoursite.com |
| Username | Your WordPress admin username (not your email address) |
| Application Password | The password generated in your profile (spaces included) |
- Click Connect Site
Step 2: Verify the connection
After connecting, Siftly displays your site URL and username. If you see an error, check the Troubleshooting section.Field Mapping
WordPress uses the unified 3-tier field mapping system. WordPress post fields have fixed API names, so required fields are pre-configured.Required Fields
| Siftly Field | WordPress Post Field | Notes |
|---|---|---|
| Title | title | Pre-configured — WordPress post title |
| Slug | slug | Pre-configured — custom URL slug |
| Body | content | Pre-configured — post content (HTML) |
Optional Fields
When mapped, these are auto-populated from your content data.| Siftly Field | WordPress Post Field | Notes |
|---|---|---|
| Meta Title | — | Not natively supported by WordPress REST API (requires SEO plugin) |
| Meta Description | excerpt | Mapped to WordPress post excerpt |
| Keywords | tags | Mapped to WordPress tags (created if they don’t exist) |
| Categories | categories | Mapped to WordPress categories |
| JSON-LD | — | Not natively supported by WordPress REST API |
| Word Count | — | Not natively supported by WordPress REST API |
Custom Fields
Add extra fields your WordPress posts require that aren’t part of Siftly’s standard content schema. Custom fields are sent as WordPress post meta.Field Types
| Type | Description | Example |
|---|---|---|
| String | Plain text | Author name, subtitle |
| Number | Numeric value | Priority, reading time |
| Boolean | True/false | Featured post, comments enabled |
| JSON | Structured object | SEO config, social media metadata |
| Select | Pick from predefined options | Category, status, content type |
Default Values
Set a default value when adding a custom field. This value pre-fills at publish time — you can override it for each post.Use Existing Field
Instead of setting a manual default, you can link a custom field to an existing content field. For example, map a custom WordPress meta field to use the same value as Meta Description. This is useful when your WordPress setup has multiple fields that should contain the same data (e.g., a Yoast_yoast_wpseo_metadesc field and the post excerpt both using your meta description).
Publishing
Draft vs Published
When publishing, choose between:- Draft — content is pushed to WordPress as a draft post for review in the WordPress editor
- Published — the post is created and immediately published to your live site
Custom Fields at Publish Time
If you’ve defined custom fields, they appear in the publish dialog pre-filled with their default values (or auto-filled from linked fields). You can edit them before publishing. Standard fields (title, slug, body, excerpt, tags, categories) are auto-populated from your content — no manual input needed.Rich text and formatting
Siftly publishes content as HTML. Standard formatting is preserved:- Headings (H1-H4)
- Bold and italic text
- Ordered and unordered lists
- Hyperlinks (including internal links generated by Siftly)
- Blockquotes
Where to apply Siftly’s recommendations on WordPress
Siftly generates recommendations for SEO/GEO fields alongside your content. Here’s where each field lives in WordPress and how to apply Siftly’s values.Meta Title
WordPress doesn’t have a native meta title field — it uses the post title as the page title by default. With Yoast SEO: Go to the post editor → scroll to the Yoast SEO panel → SEO title field. Paste Siftly’s recommended meta title here. With Rank Math: Go to the post editor → click the Rank Math icon in the top bar → Edit Snippet → SEO Title. Paste Siftly’s recommendation. Without an SEO plugin: The<title> tag defaults to your post title. To override it, you’d need a custom wp_head hook — we recommend using Yoast or Rank Math instead.
Meta Description
With Yoast SEO: Post editor → Yoast SEO panel → Meta description field. Paste Siftly’s recommended description. With Rank Math: Post editor → Rank Math → Edit Snippet → Description. Paste Siftly’s recommendation. Without an SEO plugin: WordPress has no native meta description. The post excerpt is used by some themes as a fallback. We recommend Yoast or Rank Math for proper meta description control.Open Graph Image / Social Share Image
With Yoast SEO: Post editor → Yoast SEO → Social tab → Facebook image / Twitter image. Upload or paste the URL of the image Siftly recommends. With Rank Math: Post editor → Rank Math → Social tab → Facebook Thumbnail / Twitter Thumbnail. Without an SEO plugin: WordPress uses the Featured Image as the Open Graph image in most themes. Set your Featured Image and most social platforms will pick it up.Canonical URL
WordPress auto-generates canonical URLs for each post. Both Yoast and Rank Math add<link rel="canonical"> automatically.
To override (e.g., for syndicated content):
- Yoast: Post editor → Yoast → Advanced → Canonical URL
- Rank Math: Post editor → Rank Math → Advanced → Canonical URL
Tags & Categories
Siftly maps keywords to WordPress Tags and categories to WordPress Categories automatically during publish. These are set in the standard WordPress post sidebar panels. Tags created by Siftly that don’t already exist in WordPress are created automatically. Categories must exist beforehand — if a category name doesn’t match an existing WordPress category, it’s skipped.JSON-LD Structured Data
WordPress doesn’t have native JSON-LD support. Here’s how to add it: With Yoast SEO (automatic): Yoast auto-generates Article schema, Organization schema, and BreadcrumbList schema. Siftly’s JSON-LD recommendation can supplement this with FAQ, HowTo, or other specialized schemas. To add Siftly’s JSON-LD alongside Yoast’s auto-generated schema, install the Custom HTML block in your post and paste:<script type="application/ld+json"> tag.
Keywords
The HTML<meta name="keywords"> tag is deprecated by Google but still parsed by some AI engines and internal search systems.
- Yoast SEO: Does not support meta keywords (removed in 2018).
- Rank Math: Post editor → Rank Math → Focus Keyword field. This is used for on-page optimization guidance, not rendered as a meta tag.
- For AI parsers: If you want a keywords meta tag rendered in
<head>, use a plugin like Add Meta Tags or add a custom field that your theme renders.
Pushing Siftly recommendations automatically
Siftly pushes content to WordPress in a single publish action. However, WordPress’s REST API has limited SEO field support — here’s what’s automated and what’s manual: Pushed automatically on publish:- Title
- Slug
- Body (full HTML content)
- Excerpt (from Siftly’s meta description)
- Meta title (via Yoast/Rank Math in WordPress editor)
- Meta description (via Yoast/Rank Math — the excerpt is pushed but the SEO plugin field is separate)
- JSON-LD structured data (via Custom HTML block or SEO plugin schema)
- Tags and categories (not currently pushed via API)
- Open Graph image (upload in WordPress editor)
Generate content in Siftly
Click Publish → WordPress
Content + excerpt pushed automatically
Platform-specific quirks & limitations
excerpt. Some themes use the excerpt as the meta description fallback, but Yoast/Rank Math use their own separate field. After publishing, copy the excerpt into your SEO plugin’s description field if they don’t auto-sync.- Block Editor vs Classic Editor: Siftly’s HTML content works in both editors. The Block Editor wraps it in a single Classic block. No action needed.
- Multisite: Siftly connects to one site at a time. For WordPress Multisite, connect each subsite separately.
- Caching plugins: After publishing, if your site uses WP Super Cache, W3 Total Cache, or a CDN, the new post may not appear immediately. Purge cache or wait for TTL expiry.
- Security plugins: Wordfence and iThemes Security can block REST API access. Whitelist Siftly’s server IP or ensure the REST API is not disabled.
Validating the setup
After publishing your first post with Siftly’s recommendations applied:View the live page source
<title>— should contain your Siftly meta title<meta name="description"— should contain your Siftly meta description<script type="application/ld+json">— should contain your JSON-LD
Run Google Rich Results Test
Run Schema.org Validator
Check Open Graph tags
Difficulty & setup recap
WordPress Setup Summary
| Aspect | Rating |
|---|---|
| Initial setup | ✅ Easy — OAuth or Application Password, no code |
| Applying SEO fields | ✅ Easy with Yoast/Rank Math, manual without |
| JSON-LD | ⚠️ Requires SEO plugin or custom theme code |
| Ongoing editing | ✅ Easy — publish from Siftly, edit in WordPress |
| Developer needed? | No (unless you want automated JSON-LD via theme hook) |
Related
CMS Integrations Overview
Quickstart Guide
Content Generation
Choosing a CMS for AI Visibility
Reconnecting or switching sites
WordPress.com: OAuth tokens can expire or be revoked (e.g., if you change your password). To reconnect, go to Settings → Integrations → WordPress, click Disconnect, then click Connect again to restart the OAuth flow. Self-hosted: Application Passwords remain valid until you delete them in WordPress. If credentials change (e.g., you regenerated the password), disconnect and reconnect using the new password. Each reconnect replaces the stored credential with the new one. You can also use this to switch to a different site.Disconnecting WordPress
- Go to Settings → Integrations
- Click Disconnect next to WordPress
Troubleshooting
WordPress.com: I was redirected back with an error
WordPress.com: I was redirected back with an error
WordPress.com: Token invalid or expired (403 error when publishing)
WordPress.com: Token invalid or expired (403 error when publishing)
Self-hosted: 'Basic Auth headers stripped' error (.htaccess fix)
Self-hosted: 'Basic Auth headers stripped' error (.htaccess fix)
Authorization header before it reaches WordPress, which means your Application Password is never actually checked — even though the REST API itself is reachable.Add the following lines to your .htaccess file inside the WordPress block, before the RewriteRule . /index.php [L] line:mod_setenvif, add this line anywhere in .htaccess:.htaccess, try connecting again in Siftly.Self-hosted: 'REST API not found' error
Self-hosted: 'REST API not found' error
{site_url}/wp-json/wp/v2/. The most common cause is Plain permalinks being selected.Go to Settings → Permalinks in your WordPress admin, select any option other than Plain (e.g., Post name), and click Save Changes. Then try connecting again.Other causes include security plugins (e.g., Wordfence, iThemes Security) that disable the REST API, or a WAF/CDN that blocks API requests.Self-hosted: Invalid credentials (401 error)
Self-hosted: Invalid credentials (401 error)
Self-hosted: Application Passwords section is missing from my profile
Self-hosted: Application Passwords section is missing from my profile
- Your site is not using HTTPS (Application Passwords require SSL on some configurations)
- A security plugin has disabled Application Passwords
- You are on WordPress.com with a plan that doesn’t support this feature (use the OAuth connection instead)
wp-config.php, add: define('WP_APPLICATION_PASSWORDS_ENABLED', true);'WordPress not connected' error when publishing
'WordPress not connected' error when publishing
Post published but content looks wrong in WordPress
Post published but content looks wrong in WordPress
Post doesn't appear on my site after publishing
Post doesn't appear on my site after publishing
I connected the wrong site
I connected the wrong site