Skip to content

Test publishing and Theme Memory

Dry runs, payload preview, logs, and teaching the publisher your theme's markup.

  • Lesson 3 of 3
  • Intermediate
  • 6 min read
  • Checked against the product 2026-11-03

In shortBefore a real article goes out, check a webhook three ways: Preview payload shows the exact request, Dry run builds and signs it without sending, and Test Connection checks the endpoint. For the WordPress plugin, a test that WordPress rejects with "missing fields" is a pass. Theme Memory learns your blog's markup from up to three published post URLs, so articles arrive in your theme's own HTML structure. All of this is free.

Why test before you publish

A webhook that fails on your first live article costs you time and, on a public site, can put a half-formatted post in front of readers. AI Rank Lab gives you ways to check the connection and the payload without publishing anything, and a publish log that shows exactly what was sent and what came back when something does go wrong.

Three ways to check a webhook

ToolWhereWhat it doesSends anything?
Preview payloadArticle editor → publish panel → Webhooks card, under each webhookShows the URL, headers and body that would be sent for this article, with secrets hiddenNo
Dry runArticle editor → Publish ContentBuilds and signs the real request for the selected webhookNo
Test ConnectionContent → Publish → WordPress and webhooks, on each cardWordPress plugin: checks key, domain ID and domain with an empty article. Other webhooks: sends a sample article to your endpointYes
  1. Preview the payloadOpen an article, click Publish to CMS, and under the webhook in the Webhooks card click Preview payload. Check the headers and body: title, slug, meta fields, images and, for Standard (v1), the signature headers.
  2. Dry runIn Publish Content, select the webhook and click Dry run. The request is built and signed exactly as a real publish, then shown to you instead of sent.
  3. Test the connectionOn the WordPress and webhooks page, click Test Connection on the card. The Test Result dialog shows a pass with its checks, or the HTTP status, latency, error code and response body.

Gotchas when testing

For WordPress, "missing fields" means success

The plugin test sends your real API key, domain ID and domain with an empty title and body. WordPress runs every credential check, then rejects the empty article. AI Rank Lab reports that as a pass, and no post is created. Each test still adds a "Required fields are missing" row to Webhook Debug Logs in WordPress. That row is expected.

Test Connection on a custom endpoint sends a real sample

For webhooks that are not the WordPress plugin, the test sends a sample article titled Test Article Title. Your receiver may create a real post from it, so test against a staging endpoint or delete the post afterwards. The test is also not signed, so a Standard (v1) receiver that checks signatures will rightly answer 401. For those, use Preview payload and Dry run, then publish a real article as a draft.

Redirects work in the test but not in a real publish

Real publishes never follow redirects. The WordPress test catches this and says The endpoint redirects. The custom-endpoint test can follow a redirect and pass anyway, so make sure the endpoint URL is the final address, with the right https and www.

Read the publish log

Every publish is logged under Publish History in the article's publish panel. Click a row to open Publish Log Details: status, created and scheduled times, the response status, any error, and the request, payload and response bodies. A job that shows as pending after a failure is waiting for its next retry. On WordPress, the plugin keeps its own Webhook Debug Logs under AI Rank Lab → Publishing.

Theme Memory: publish in your blog's own markup

By default an article arrives as clean HTML (headings, paragraphs, figures) with no classes, and your theme styles it. That is the right choice for most sites. If your blog uses its own classes and repeated blocks (an author box, a newsletter call-out, a table-of-contents shell), Theme Memory can learn them from posts you have already published and send new articles in the same structure.

  1. Give it sample postsWhen you add a webhook (both the WordPress Plugin and Custom Webhook tabs), fill in Match my blog's design (optional) with up to three URLs of posts already published on that site. For an existing webhook, click edit and use the Site layout panel, then Learn layout.
  2. Wait for it to learnLearning runs in the background after the webhook is saved. The panel shows Reading your sample posts…, then either the learned layout (how many element types it matches and any repeated sections) or an error, such as a post it could not read.
  3. Switch it on or offOnce learned, use Turn off or Turn on to choose plain or themed HTML without losing what was learned. Use Re-learn layout after a theme change.
  • Only structure is learned: classes, the wrapper and repeated blocks. No text is copied from your sample posts, and scripts, styles, forms and iframes are stripped.
  • If themed rendering fails for any reason, the plain HTML is sent. A theme never blocks a publish.
  • Standard (v1) payloads mark themed bodies with themed: true. A receiver that adds its own wrapper should skip it then, or the article is wrapped twice. The current WordPress plugin already handles this.

Check yourself

1. Test Connection on your WordPress webhook got a "missing fields" response from the plugin. What does it mean?
2. Your Standard (v1) receiver verifies signatures, and Test Connection returns 401. What is the safest way to check it?
3. What does Theme Memory learn from your sample posts?

0 of 3 answered.

Progress is saved in this browser.

Put the lesson to work

Paste your site and get a free SEO, AEO and GEO audit with the fixes, then come back to the next lesson.