Skip to main content

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.

Supported CMS platforms including WordPress

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 typeWho it’s forAuth method
WordPress.comSites hosted at wordpress.com or using JetpackOAuth2 — no passwords needed
Self-hosted (WordPress.org)Your own server running WordPressApplication Passwords (WP 5.6+)
Once connected, you can publish Siftly-generated content to WordPress with a single click from the content editor.

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
Use Self-hosted (WordPress.org) if:
  • 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
Not sure which you have? Log in to your WordPress dashboard. If the URL is wordpress.com/home/yoursite, you’re on WordPress.com. If it’s yoursite.com/wp-admin, you’re self-hosted.

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.
  1. In Siftly, go to Settings → Integrations
  2. Click Connect next to WordPress
  3. On the type selection screen, click Connect WordPress.com
  4. You’ll be redirected to WordPress.com to authorize access
  5. Log in with your WordPress.com credentials if prompted
  6. Click Approve to grant Siftly permission to publish posts on your behalf
WordPress.com redirects you back to Siftly automatically once authorized.
The authorization grants Siftly post write access only — it cannot read your private data, change your account settings, or access other sites on your WordPress.com account.

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:
1

WordPress 5.6 or later

Application Passwords are built into WordPress 5.6+. Check Dashboard → Updates to confirm your version. Most managed hosts keep WordPress updated automatically.
2

Pretty permalinks enabled

The WordPress REST API requires pretty permalinks (any setting except Plain).Go to Settings → Permalinks and select any option other than Plain (e.g., Post name is recommended). Click Save Changes.
If permalinks are set to Plain, the REST API routes are not registered and Siftly will not be able to connect or publish — you’ll see a “REST API not found” error.
3

Generate an Application Password

  1. Log in to your WordPress admin panel
  2. Go to Users → Your Profile (or Users → All Users → Edit for another user)
  3. Scroll down to the Application Passwords section
  4. Enter a name for the password (e.g., Siftly)
  5. Click Add New Application Password
  6. Copy the generated password immediately — it is shown only once
Application Passwords look like xxxx xxxx xxxx xxxx xxxx xxxx (24 characters with spaces). Copy it exactly as shown — spaces are part of the password and must be included.
4

HTTPS enabled (strongly recommended)

Application Passwords send credentials over HTTP Basic Auth. Without HTTPS, credentials are transmitted in plain text. Most managed WordPress hosts include SSL by default. You can verify by checking that your site loads at https://.
On some WordPress configurations, Application Passwords are disabled when HTTPS is not detected. If you don’t see the Application Passwords section in your profile, this may be the cause.

Step 1: Connect in Siftly

  1. In Siftly, go to Settings → Integrations
  2. Click Connect next to WordPress
  3. On the type selection screen, click Connect Self-hosted
  4. Fill in the three fields:
FieldWhat to enter
Site URLThe root URL of your WordPress site, e.g. https://yoursite.com
UsernameYour WordPress admin username (not your email address)
Application PasswordThe password generated in your profile (spaces included)
  1. Click Connect Site
Siftly validates your credentials immediately by calling your site’s REST API. If validation succeeds, you’ll see the connected confirmation with your site URL.

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 FieldWordPress Post FieldNotes
TitletitlePre-configured — WordPress post title
SlugslugPre-configured — custom URL slug
BodycontentPre-configured — post content (HTML)

Optional Fields

When mapped, these are auto-populated from your content data.
Siftly FieldWordPress Post FieldNotes
Meta TitleNot natively supported by WordPress REST API (requires SEO plugin)
Meta DescriptionexcerptMapped to WordPress post excerpt
KeywordstagsMapped to WordPress tags (created if they don’t exist)
CategoriescategoriesMapped to WordPress categories
JSON-LDNot natively supported by WordPress REST API
Word CountNot natively supported by WordPress REST API
WordPress’s REST API has limited support for SEO-specific fields like meta title and JSON-LD. If you use an SEO plugin (Yoast, Rank Math, etc.), those fields may be available through the plugin’s API extensions.

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

TypeDescriptionExample
StringPlain textAuthor name, subtitle
NumberNumeric valuePriority, reading time
BooleanTrue/falseFeatured post, comments enabled
JSONStructured objectSEO config, social media metadata
SelectPick from predefined optionsCategory, 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
Both the WordPress Block Editor (Gutenberg) and the Classic Editor render the HTML correctly.
After publishing, open the post in your WordPress editor to add a featured image and review the formatting. Images are not auto-generated — you’ll need to upload or select one manually.

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.
Siftly auto-populates the WordPress excerpt field on publish using your content’s meta description. For Yoast/Rank Math fields, you’ll need to edit them directly in WordPress after publishing — the WordPress REST API does not expose SEO plugin fields natively.

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
Siftly does not currently push canonical URL overrides. The default WordPress canonical (your post’s permalink) is correct for original content published through Siftly.

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">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Your question here",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Your answer here"
      }
    }
  ]
}
</script>
With Rank Math: Rank Math has a built-in Schema tab in the post editor. Click Schema Generator to add FAQ, HowTo, Article, or custom schema types. Paste values from Siftly’s JSON-LD recommendation into the relevant fields. Without an SEO plugin: Add a Custom HTML block at the bottom of your post with the full <script type="application/ld+json"> tag.
If you use Yoast or Rank Math, do NOT duplicate the Article schema they already generate. Siftly’s JSON-LD recommendations are designed to supplement (FAQ, HowTo, Product) — not replace — your plugin’s base schema.

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.
Siftly maps keywords to WordPress Tags by default, which is sufficient for content organization and many AI crawlers.

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)
Must be applied manually after publishing:
  • 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)
1

Generate content in Siftly

Use Siftly’s content editor to generate or optimize your article. Siftly produces meta title, meta description, keywords, and JSON-LD recommendations alongside the content.
2

Click Publish → WordPress

In the content editor, click Publish and select WordPress. Choose Draft or Published status.
3

Content + excerpt pushed automatically

Siftly sends title, slug, body (HTML), and excerpt in a single API call to WordPress.
4

Apply SEO fields manually in WordPress

Open the post in WordPress editor. Copy Siftly’s recommendations for meta title, meta description, and JSON-LD into your SEO plugin (Yoast/Rank Math). Add tags and a featured image.
WordPress’s REST API does not expose Yoast or Rank Math SEO fields. These must be set directly in the WordPress post editor after publishing from Siftly.

Platform-specific quirks & limitations

REST API limitations: WordPress’s REST API does not expose Yoast SEO or Rank Math fields. Siftly can push title, slug, body, and excerpt — but meta title, meta description (the SEO plugin field), JSON-LD, and tags must be applied manually in the WordPress editor after publishing.
Excerpt vs Meta Description: Siftly pushes your meta description as the WordPress 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:
1

View the live page source

Open your published post in a browser. Right-click → View Page Source. Search for:
  • <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
2

Run Google Rich Results Test

Go to Google Rich Results Test and paste your post URL. Confirm your JSON-LD is detected and valid.
3

Run Schema.org Validator

Go to Schema.org Validator and paste your post URL. Check for errors or warnings in your structured data.
4

Check Open Graph tags

Use Facebook Sharing Debugger or Twitter Card Validator to confirm OG image, title, and description are rendering correctly.

Difficulty & setup recap

WordPress Setup Summary

AspectRating
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)

CMS Integrations Overview

Compare all supported platforms and the unified field mapping system.

Quickstart Guide

Set up your brand and run your first GEO analysis.

Content Generation

How Siftly generates GEO-optimized content and recommendations.

Choosing a CMS for AI Visibility

Our guide to picking the right CMS for GEO optimization.

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

  1. Go to Settings → Integrations
  2. Click Disconnect next to WordPress
This permanently deletes your stored credentials from Siftly’s database. It does not affect posts already published to WordPress. For WordPress.com: This does not revoke Siftly’s app authorization on the WordPress.com side. To fully revoke access, go to WordPress.com → Security → Connected Apps and remove Siftly. For self-hosted: To invalidate the Application Password entirely, go to WordPress Admin → Users → Your Profile → Application Passwords and delete the Siftly entry.

Troubleshooting

This happens if you clicked Deny on the WordPress.com authorization screen, or if the OAuth flow timed out (the authorization window is valid for 10 minutes). Go to Settings → Integrations → WordPress and click Connect again.
WordPress.com OAuth tokens are revoked when you change your account password or remove the app’s access. Go to Settings → Integrations → WordPress, click Disconnect, then Connect again to get a fresh token.
Some shared hosting environments (cPanel, Plesk, LiteSpeed) strip the HTTP 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:
RewriteCond %{HTTP:Authorization} ^(.*) [NC,OR]
RewriteCond %{HTTP:Authorization} ^(.*) [NC]
RewriteRule .* - [E=HTTP_AUTHORIZATION:%1]
Alternatively, if your host uses Apache’s mod_setenvif, add this line anywhere in .htaccess:
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
After saving .htaccess, try connecting again in Siftly.
This means the WordPress REST API is not accessible at {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.
Double-check your username (not your email address — use the username shown in your WordPress profile) and make sure you copied the Application Password exactly as generated, including the spaces.If you’re unsure, go to Users → Your Profile → Application Passwords, delete the existing Siftly entry, generate a new one, and reconnect.
This happens when:
  • 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)
To re-enable via wp-config.php, add: define('WP_APPLICATION_PASSWORDS_ENABLED', true);
The integration was disconnected or the stored credentials are no longer valid. Go to Settings → Integrations → WordPress and reconnect.
Open the post in your WordPress editor and switch to HTML or Code Editor view to inspect the raw markup. If formatting is broken, check for unsupported HTML tags in the generated content. You can edit the post directly in WordPress after publishing.
If you published with Published status, posts should be live immediately. Check WordPress → Posts → Published. If you published as Draft, look under WordPress → Posts → Drafts. If the post isn’t in either location, check the Siftly publish response for errors.
Go to Settings → Integrations → WordPress, click Disconnect, then click Connect and either log in with the correct WordPress.com account or enter the credentials for the correct self-hosted site.