Skip to content

Sent is not the same as published

Four ways an integration reports success while there is nothing on the page.

An integration knows one thing for certain: that the other end returned something. If that something is a 2xx, it reports success and goes to sleep contented.

That is not the same as: a visitor sees the piece. Four things fit in between, and none of the four produces an error.

1. It is sitting there as a draft

WordPress politely returns a 201 and files the piece as a draft, because that is how it was configured. Technically nothing went wrong. It is just that nothing was published, and it stays that way until someone happens to look in the admin.

2. The template strips something out

Plenty of themes remove <script> from the body of a post. Sensible, usually. But that is exactly where the structured-data block sits that marks the questions under the piece as a FAQPage. So the article is there, and the one thing setting it apart from ordinary text is not.

3. The address points at a preview

Some systems hand back an address after publishing that only works while you are logged in. To you it looks fine. To a visitor and to Google it is a 404.

4. The page builds itself with JavaScript

Google usually executes JavaScript. The crawlers that language models fetch pages with usually do not. Your piece is then there for a human, and not for half of the machines you had it written for.

What we do about it

After publishing we fetch the page ourselves, the way a visitor without JavaScript gets it, and check whether the piece is actually there: reachable, a title, the text in the HTML, the questions on the page, and a FAQPage in the source.

Three things that come with that, because otherwise the check is theatre:

Empty does not mean checked. A piece that was never checked does not show up as passing. Not looked at and approved do not belong in the same bucket.

Your own schema is good enough. We look for a FAQPage, not for literally ours. Anyone marking the questions up in their own template is doing it exactly right and should not get a warning about it.

Looking once is not enough. Everything published in the last fourteen days gets fetched again every morning. A page that is correct today can break next week through a template change, and that is precisely the kind of failure nobody gets an alert about.

What it does not do

Whether a page is indexed is something we cannot know from the outside. Your own Search Console is for that. What we check is whether anything is there at all, which is the question that comes before it.

Frequently asked questions

Why doesn't the integration just check itself properly?

Within its own limits it does. An integration knows whether sending worked, and that is all it can know. What happens afterwards inside the recipient's system does not fit in that response; for that you have to fetch the page itself.

What happens when the check finds something?

A card appears on your screen with what we saw, and for anything serious the label at the top changes from "live on your site" to "not showing correctly". Two places contradicting each other is worse than one piece of bad news.

Does this work if my site is not on WordPress?

Yes. The check fetches the page the way anyone does and needs no access to your system. Which platform sits underneath makes no difference to it.

Do we have to fix it, or do you?

It depends where it sits. A setting stuck on draft is something we can see but not change; a template that strips scripts is work for whoever builds your site. What we do is name exactly what is missing and where, so it does not turn into a puzzle.