
"This page can't be published": what the safety check caught and how to fix it
dochost runs every link in a page through Google's Web Risk lists before it goes live. When one matches, publishing stops with a short notice and no URL named. Here is what the check looks at, how to find the link that tripped it, and what to change so the same page publishes a minute later.
You paste a page, click Get my link, and instead of a link you get a red box: This page can't be published — This content was blocked by our safety check. Your draft is still in the editor, nothing was saved, and the notice does not say why. This guide explains what the check does, how to find the part of your page that triggered it, and what to change.

What the check actually does
Before a page goes live, dochost extracts every http:// and https:// URL a browser would fetch or navigate to from it, and asks Google Web Risk whether any of them is on the malware, social engineering (phishing) or unwanted software lists. One match anywhere in the page blocks the publish. Nothing else about the content is judged: no word filter, no AI review, no opinion about what the page is for.
"Every URL" is broader than the links you can click. The extractor follows the same rules a browser does, so it also sees:
srcon images, scripts, iframes, video and audio, plussrcsetandposteractionon formsurl(…)and@importinside<style>blocks and inline styles<meta http-equiv="refresh">targetshrefon SVG<use>and<image>elements- protocol-relative references like
//cdn.example.com/lib.js
Things that do not trigger it: mailto: and tel: links, data: images and fonts, javascript:void(0) placeholders, relative paths, and anything in plain text that is not an actual link. They used to; that gate was removed in August 2026 because it stopped legitimate pages far more often than bad ones.
A separate, narrower check blocks pages that combine a password field with a form posting to a known credential-harvesting destination. That one shows the same notice.
Finding the link
The notice does not yet tell you which URL matched, so you have to look. In practice the culprit is almost always one of these:
- A link the AI made up. ChatGPT and Claude invent plausible-looking CDN hosts, download mirrors and "official" sites. Some of those domains exist and are not friendly. Search your HTML for
httpand read every hostname. - A URL shortener.
bit.ly,t.co,tinyurland friends are checked against what they currently redirect to, and they share their reputation with whatever else was ever behind them. - A compromised site you did not write. A WordPress blog you linked six months ago can be hacked today. The link was fine when you added it.
- Copy-pasted embed code from a widget, a tracker or a "free counter" service.
- A download link for software, extensions or cracked tools. Those lists are aggressive about installers.
To confirm a suspect, paste the hostname into Google's Safe Browsing site status page. If it reports "unsafe", that is the one.
Fixing it
- Remove the link or replace it with the real destination. If you cannot verify a hostname, replace it with plain text.
- Self-host the asset. An image or script pulled from a dubious CDN can usually be inlined as a
data:URL or replaced with a well-known CDN like jsDelivr or unpkg. - Re-check
<style>blocks. Background images and imported fonts hide there and are easy to overlook. - Then click Get my link again. The check runs fresh each time; a page that publishes once is not marked in any way.
If the page is genuinely clean and still blocked — for example a link to your own domain that was flagged by mistake — click Contact review in the notice. A person looks at it, and false positives on Google's lists can be appealed from the Safe Browsing page above.
Why it is a hard stop
Pages on dochost run readers' browsers on a dochost.co address. A page that links a malware download or a phishing form puts every reader who trusts that address at risk, and gets the whole host flagged rather than the single page. Blocking at publish time — before anyone has the link — is cheaper for everyone than taking a page down after it has been shared, so the check is not something a plan or an account can switch off.
What it never does is edit your page. The draft stays exactly as you pasted it; the fix is always yours to make.
更多文章

How to Unpublish a Claude Artifact — and Why You Only Get One Shot
Unpublishing a Claude artifact takes seconds, but it's a one-way door — that artifact can't be republished and its data is deleted. Here's the process and what to do before you click.

Notion Public Pages vs dochost: Sharing a Doc Outside Your Workspace
Notion can publish any page to the web — but for a one-off doc share, compare setup, load speed, Markdown import, raw HTML, and link lifespan with dochost.

How to Connect dochost to Claude, ChatGPT or Cursor With MCP
One URL — https://dochost.io/api/mcp — gives your AI assistant a publish tool. Here is the setup for each client, when you need an API key instead of OAuth, and how to create and rotate one.
邮件列表
加入我们的社区
订阅邮件列表,及时获取最新消息和更新