WordPress Integration
RankAscend publishes content to WordPress via the WordPress REST API using application passwords, no plugin required. Once connected, every article RankAscend generates is converted to HTML and posted to your site immediately as a live published post.
Connecting WordPress
Go to Settings → Integrations → WordPress and fill in three fields:
- Name
Site URL- Type
- string
- Description
The root URL of your WordPress site (e.g.
https://yourblog.com). Do not include a trailing slash. RankAscend appends/wp-json/wp/v2/to this URL when making API calls.
- Name
Username- Type
- string
- Description
Your WordPress admin username.
- Name
Application Password- Type
- string
- Description
A WordPress application password. Not your login password, see below for how to generate one.
When you save, RankAscend validates your credentials by calling GET /wp-json/wp/v2/users/me. If authentication succeeds, the integration is saved. Credentials are encrypted at rest.
Generating an application password
- Log in to your WordPress admin panel
- Go to Users → Profile (or Users → All Users → your username)
- Scroll to Application Passwords
- Enter a name (e.g.
RankAscend) and click Add New Application Password - Copy the generated password immediately, WordPress will not show it again
Some security plugins (Wordfence, iThemes Security, etc.) block the WordPress REST API or application passwords by default. If RankAscend cannot connect, check your security plugin settings and ensure the REST API is accessible at {yoursite}/wp-json/wp/v2/.
Per-content-type configuration
Once connected, you can configure how each content type maps to your WordPress setup under Settings → Integrations → WordPress → Content Types:
- Name
Post type slug- Type
- string
- Description
The WordPress post type RankAscend publishes to. Defaults to
posts. Usepagesfor static pages, or any custom post type slug registered in your theme or plugin (e.g.case-studies,resources).
- Name
Default category ID- Type
- number
- Description
Optional. The WordPress category ID to assign to every post of this type. Find category IDs in Posts → Categories, the ID is in the URL when you edit a category (
tag_ID=5).
You can configure a separate post type for each content format: blog articles, comparison pages, use-case pages, and listicles.
How publishing works
When a scheduled publish job runs, RankAscend:
- Converts the article's Markdown body to HTML using the
markedlibrary - Appends the JSON-LD structured data as a
<script type="application/ld+json">block at the end of the HTML - POSTs to
/wp-json/wp/v2/{postType}with the following fields:
- Name
title- Type
- string
- Description
The article title.
- Name
slug- Type
- string
- Description
The SEO-optimized URL slug.
- Name
content- Type
- string
- Description
Full HTML body including the JSON-LD schema block appended at the end.
- Name
excerpt- Type
- string
- Description
The meta description, used as the WordPress post excerpt.
- Name
status- Type
- "publish"
- Description
Always set to
publish— posts go live immediately.
- Name
categories- Type
- number[]
- Description
The default category ID if configured; otherwise omitted.
Error handling
| Error | Cause | Fix |
|---|---|---|
Failed to reach WordPress site | WordPress URL is unreachable or REST API is blocked | Check the URL and any security plugins blocking /wp-json/ |
WordPress API error (401) | Invalid username or application password | Regenerate the application password in WordPress |
WordPress API error (403) | User lacks permission to create posts | Ensure the user has the Editor or Administrator role |
WordPress API error (404) | Post type slug doesn't exist | Check the custom post type slug is registered and publicly available |
Failed jobs are retried automatically every 30 minutes. You can also reschedule any failed job manually from the Publish Log.
Disconnecting WordPress
Go to Settings → Integrations → WordPress → Remove. RankAscend deletes the stored credentials. Revoke the application password in WordPress under Users → Profile → Application Passwords if you want to fully remove access.