よくある原因
共有URLが期限内に見えなくなる原因として最初に疑うべきは、認証方式の設定漏れです。パスワード保護やメール認証をオンにしたまま「誰でも開ける」と思い込んで送ってしまうと、受け取った相手はログイン画面で止まります。発行後すぐにシークレットウィンドウで開いて認証なしでアクセスできるか確かめるのが基本です。
もう一つよくあるのは、HTMLが参照している外部リソース(フォントやアイコンCDN)がブロックされる環境に相手がいるケースです。会社のプロキシや国別のアクセス制限が原因でCSSが読み込めず、デザインが崩れて「壊れている=見えない」と判断されることもあります。自己完結型のHTMLを用意するか、使用外部ドメインのリストを事前に相手に伝える配慮が有効です。
- 相手がログインなしで開ける状態か確認する
- PCとスマホで最低1回ずつ表示を確認する
- 内部情報・個人情報・不要な外部送信が残っていないか見る
- レビュー期限と修正時の差し替え方を決めておく
自分側で確認すること
ファイルを送る前に、テキストエディタの全文検索で「http://」「localhost」「127.0.0.1」を検索してください。ローカル環境へのURLが残っていると、公開後は当然リソースが解決できなくなります。AIが生成したHTMLは開発サーバーを想定したパスを埋め込む場合があるので特に注意が必要です。
次にHTMLのファイルサイズを確認します。埋め込み画像をBase64で持っているHTMLは数MBを超えることがあり、モバイル環境では表示完了前にタイムアウトして「見えない」と報告されるケースがあります。画像は外部ストレージに分離するか、解像度を落としてファイルサイズを1MB以下に抑えると安全です。
- HTML内の外部script・form action・iframeを確認する
- APIキーやトークンらしき文字列がないか検索する
- 画像・CSS・JSのパスが公開後も解決できるか見る
- noindexと認証を混同せず、必要なら両方設定する
相手側で確認すること
相手が「開けない」と言ったら、まずURLをコピーして新しいタブに貼り付けなおしてもらいましょう。メールやSlackでのリンク変換でURLが途中で切れるトラブルが多く、末尾の数文字が欠けるだけでアクセスに失敗します。正確なURLを直接チャットで送り直すと一発で解決することがよくあります。
相手が企業ネットワーク内にいる場合は、個人のスマートフォン(モバイル回線)で同じURLを開いてみるよう伝えてください。社内プロキシやファイアウォールが特定ドメインをブロックしている場合、社外回線ではあっさり開けることがあります。これでアクセスできれば原因はネットワーク制限と確定できます。
- HTML内の外部script・form action・iframeを確認する
- APIキーやトークンらしき文字列がないか検索する
- 画像・CSS・JSのパスが公開後も解決できるか見る
- noindexと認証を混同せず、必要なら両方設定する
再発防止の運用
チームで共有HTMLを運用しているなら、「発行→確認→送信」の三段階を義務づけるルールをREADMEやNotionに明記しておきましょう。確認担当者を別の人にすることで、送信者が見落としがちな認証設定やURLミスを第三者がつかまえられます。
定期的に期限を延長する運用をしている場合は、延長操作のたびにシークレットウィンドウで疎通確認するリマインダーをカレンダーに設定してください。期限更新だけでなくファイル再アップロードのたびにキャッシュ状態が変わるため、毎回の確認が障害の早期発見につながります。
- HTML内の外部script・form action・iframeを確認する
- APIキーやトークンらしき文字列がないか検索する
- 画像・CSS・JSのパスが公開後も解決できるか見る
- noindexと認証を混同せず、必要なら両方設定する
よくある質問
メールのリンクをクリックしたら404が出たのですが、URLは正しいですか?
メールクライアントによってはURLの末尾が改行で切れることがあります。URLをコピーしてブラウザのアドレスバーに直接貼り付け、末尾まで欠けていないか確認してください。
社内ネットワークでは開けるのに在宅では開けないケースはありますか?
社内VPN経由のみ許可するIP制限が設定されている場合に起こります。VPNを接続した状態でアクセスするか、IP制限の設定を見直して在宅回線のIPを許可リストに追加してください。
チェックリストの確認をすべてパスしたのにまだ見えない場合は?
Cloudflare側のエッジキャッシュが残っている可能性があります。管理コンソールからキャッシュパージを実行し、5分ほど待ってから再度アクセスしてみてください。