Self-diagnosis in three steps
Most tickets we receive are resolved by the person who raised them, once they know where to look. Work through three layers in order and you will usually find the cause before you need us. Start at the network layer: request your manifest with a plain HTTP client and read the status code. A 403 or a challenge page means something in front of WordPress is blocking the request, and no amount of plugin configuration will fix that.
If the status is fine, move to the content layer. Compare what the plugin dashboard says it published against the file that is actually being served. A mismatch here is nearly always caching, at the WordPress layer, the host layer, or the CDN. Purge all three and re-check before concluding anything else.
Only if both layers are clean should you look at configuration. At that point the question is usually not whether the protocol works but whether it is describing your site correctly — wrong organisation type, an empty catalogue, or endpoints pointing at pages that no longer exist.
Common failures and what causes them
| Symptom | Most likely cause |
|---|
| Manifest returns 404 | Permalinks not flushed after activation, or a rewrite rule conflict with another plugin |
| Manifest returns 403 or a challenge page | WAF or bot-protection rule rejecting non-browser clients |
| Content changes not reflected | Page or edge cache serving a stale copy |
| Catalogue is empty | No post types selected, or the selected types have no published items |
| Score dropped with no content change | A new security, caching or optimisation plugin altering the response |
Response times and severity
Not every issue carries the same weight, so classify it before you write. A fault that stops agents reading the site at all — a manifest returning a server error, for instance — is urgent, because every day it persists is a day the site is misrepresented in the sources agents rely on. A missing catalogue field or an imprecise service description is an improvement rather than a failure, and can wait for the next update cycle.
That classification also decides what to do while you wait. With a blocking fault, return the site to a stable state first — temporarily disable the offending component — and continue the investigation afterwards. With a non-blocking one, leave things exactly as they are: reproducing a fault that has been partially fixed takes longer than diagnosing a live one.
What to include when you contact us
Four things turn a two-day exchange into a one-reply answer: the exact URL you tested, the raw response you received including the status code, the date and time the behaviour started, and a list of what changed on the site in the days before that. The last one matters more than people expect — the great majority of sudden failures trace back to a plugin update, a hosting change or a new security rule rather than to the protocol itself.
If you manage several sites on the same stack, keep a shared one-line log of every incident and its resolution. It will show you quickly that most of your problems come from three or four recurring causes, and you can then fix the root rather than repairing each site in turn.