WordPress Integrations
Follow the steps below to install the lightweight Rankwise Publisher plugin, exchange secrets securely, and control how content appears on your site.
✅ Primary delivery adapter (un-deprecated 2026-06-20). WordPress is the primary delivery path for the remediation platform — the earlier "legacy / frozen / edge-first" stance was reversed when the adapter strategy went EU-aware (Cloudflare's CDN share is far lower outside the US; a plugin needs no CDN/DNS change and keeps us out of the visitor traffic path / GDPR). The plugin is being extended from publish-only into a remediation delivery adapter (HMAC-pull the signed bundle →
apply()server-side). SeeREMEDIATION-PLATFORM.md§4a + §9 for the strategy. This guide covers connecting a WordPress site for publishing today.
This guide shows how to connect your WordPress site to Rankwise so that AI-generated articles can be pushed into your CMS as live posts with Elementor-safe formatting.
wordpress-plugin/rankwise-publisher (run npm run wp:package to zip)rankwise-publisher (0.5.0, DEV-275), not yet submitted. npm run wp:package:wporg builds the directory zip without the self-hosted updater. Steps and the review checklist: growth/WPORG-SUBMISSION.md.WORDPRESS_CONNECT_SECRET configured in your Rankwise deployment — the shared
secret used to HMAC-sign and verify short-lived connection tokens (see §Env Setup).ARTICLE_IMAGES_ENABLED — kill switch for hero image generation. Set to false
to disable image generation entirely (the generator throws image_generation_disabled);
any other value (or unset) leaves generation enabled.WORDPRESS_CONNECT_SECRET must be set or the connect-token code path throws
(WORDPRESS_CONNECT_SECRET is not configured from lib/wordpress/auth.ts).
.env.local, e.g. WORDPRESS_CONNECT_SECRET=<random-string>.process.env at runtime).Token TTL is 30 minutes by default and can be tuned with the optional
WORDPRESS_CONNECT_TOKEN_TTL_MS.
npm run wp:package to create dist/rankwise-publisher.zip.rankwise-publisher.zip, then install and activate.One click (plugin 0.6.0 and later): in WordPress open Rankwise Publisher and click Connect with Rankwise. Sign in to Rankwise if asked, click Connect this site, and you land back in WordPress connected. Mechanism and security: PUBLISHING.md §6.
Or paste a token:
The plugin's three AI-visibility features (IndexNow pings, AI-crawler telemetry, remediation) are opt-in since 0.5.0: tick them on the same settings screen. Nothing is sent anywhere on install or activation.
If you reinstall WordPress or rotate secrets, repeat the steps above. Each request triggers a new API key + shared secret pair.
Inside Rankwise → Integrations → Publishing Defaults you can tailor how content lands in WordPress:
_elementor_edit_mode, etc.).Save the configuration and it becomes the default for manual and automatic publishes.
Note: Rankwise always publishes live posts — there is no push-as-WP-draft mode. If you want to review content before it goes live, keep it in Rankwise (set the integration's publish mode to "Draft" so generated articles stay inside Rankwise instead of being pushed to your CMS — Autopilot drafts also wait in your review queue until approved) and publish when ready.
published once successful.If the integration's publish mode is Live, Rankwise queues a publish job
right after generation — for example when you approve an Autopilot draft. The
UI shows progress and the published URL once the plugin responds. In Draft
mode generated articles stay inside Rankwise — they are not pushed to
WordPress until you publish them manually.
| Symptom | Fix |
|---|---|
integration_not_connected error | Ensure the plugin shows “Connected” and re-run the connect token flow to refresh secrets. |
| 403 from plugin | Verify the API key + signature match (copy both from Rankwise → plugin settings). The Validate connection button on the integration detail page runs this exact check. |
| Articles not publishing automatically | Confirm the integration’s publish mode is Live (in Draft mode articles stay inside Rankwise). |
| Elementor layout broken | Enable the Elementor compatibility toggle in Rankwise so we set Elementor meta flags. |
| Token expired | Tokens last 30 minutes by default (see §1). Regenerate from Rankwise before attempting to connect. |
| Connection failed (HTTP 404) / endpoint_not_found | Plugin cannot reach the API. For local/staging, set RANKWISE_PUBLISHER_REMOTE_URL in wp-config.php to your app URL (see §8). For production, ensure the app is deployed and /api/wordpress/sites exists. |
Still stuck? Email support@rankwise.sh with the failing site ID.
Before pushing image generation + WordPress publish to production, confirm:
OPENAI_API_KEY, SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY,
SUPABASE_STORAGE_BUCKET, NEXT_PUBLIC_SUPABASE_URL,
WORDPRESS_CONNECT_SECRET are set in the production environment.0023_article_wordpress_media.sql.article-images exists with correct visibility.ARTICLE_IMAGES_ENABLED is set as intended (kill switch; false disables hero
image generation).If you need WordPress to talk to a local or ngrok Rankwise instance, you can
override the Rankwise base URL in wp-config.php:
// Local Next.js (e.g. npm run dev on port 3000)
define('RANKWISE_PUBLISHER_REMOTE_URL', 'http://localhost:3000');
// Or ngrok / Cloudflare Tunnel for a remote WordPress reaching your machine
define('RANKWISE_PUBLISHER_REMOTE_URL', 'https://your-ngrok-url.ngrok-free.app');
If WordPress runs in Docker, use http://host.docker.internal:3000 so the
container can reach the app on the host. A "Connection failed (HTTP 404)" or
endpoint_not_found usually means the plugin is calling the wrong base URL.
This is a server-local WordPress config and is not part of this repo, so it does not get pushed with Rankwise code changes.
wordpress-plugin/rankwise-publishernpm run wp:package (self-hosted zip, keeps the updater), npm run wp:package:wporg (WordPress.org zip, no updater)wordpress-plugin/rankwise-publisher/readme.txt, including the External services disclosure