よくある原因
アップロードが止まる原因は大きく3つです。ファイルサイズがサービスの上限を超えている、ネットワークの途中経路(プロキシやVPN)でリクエストがリセットされている、ブラウザのメモリ不足でアップロード処理がフリーズしている。チェックリストはこの3つを順番に確認する構成になっています。
最初に確認すべきはファイルサイズです。ZIPのサイズが大きくなる原因として最も多いのは、高解像度の画像ファイルが最適化されていない状態で含まれているケースです。画像圧縮だけでZIPサイズが半分以下になることも珍しくありません。
- 相手がログインなしで開ける状態か確認する
- PCとスマホで最低1回ずつ表示を確認する
- 内部情報・個人情報・不要な外部送信が残っていないか見る
- レビュー期限と修正時の差し替え方を決めておく
自分側で確認すること
チェック1:ZIPのサイズをファイルの情報(右クリック→プロパティ)で確認します。50MBを超えているなら画像の圧縮を実施します。Squoosh(squoosh.app)で主要画像をWebPまたは高圧縮JPEGに変換し、ZIPを再作成してサイズを比較します。
チェック2:別のネットワーク(スマートフォンのモバイル回線やテザリング)でアップロードを試します。オフィスのネットワークでは止まってもモバイル回線では成功する場合は、プロキシまたはファイアウォールの制限が原因です。ネットワーク管理者に大容量ファイルアップロードの許可設定を依頼してください。
- HTML内の外部script・form action・iframeを確認する
- APIキーやトークンらしき文字列がないか検索する
- 画像・CSS・JSのパスが公開後も解決できるか見る
- noindexと認証を混同せず、必要なら両方設定する
相手側で確認すること
アップロードを担当する人の環境でのみ問題が起きる場合、ChromeブラウザのメモリをDevToolsのMemoryタブで確認します。アップロード中にメモリ使用量が急増して止まるなら、他のタブを閉じてから再試行します。それでも改善しない場合はブラウザを再起動してキャッシュをクリアしてください。
相手がアップロードしてくれているのに止まる場合は、相手のネットワーク環境と使用ブラウザを確認します。IEやSafari旧版ではFormDataを使った大容量アップロードが不安定なことがあります。Chromeの最新版への切り替えを案内してください。
- HTML内の外部script・form action・iframeを確認する
- APIキーやトークンらしき文字列がないか検索する
- 画像・CSS・JSのパスが公開後も解決できるか見る
- noindexと認証を混同せず、必要なら両方設定する
再発防止の運用
大容量ZIPのアップロード前に「ZIPサイズ確認→画像最適化→ブラウザとネットワーク確認→試験アップロード」という4ステップの標準手順を文書化します。手順書はプロジェクトのNotion等に保管し、担当者が変わっても同じ品質でアップロードできるようにします。
繰り返し同じZIPを更新してギガサイト便に上げるプロジェクトでは、CI/CDパイプラインにZIPサイズの上限チェックを組み込みます。GitHub ActionsでZIPサイズが50MBを超えたらビルドを警告にする設定を追加するだけで、うっかり大きなファイルを含めてしまうミスを防げます。
- HTML内の外部script・form action・iframeを確認する
- APIキーやトークンらしき文字列がないか検索する
- 画像・CSS・JSのパスが公開後も解決できるか見る
- noindexと認証を混同せず、必要なら両方設定する
よくある質問
ZIPサイズを確認せずにアップロードして止まった場合、どうすれば素早く原因を特定できますか?
ChromeのDevTools(F12)→Networkタブを開いてアップロードリクエストを確認します。413エラーならサイズ超過、408ならタイムアウト、ステータスが0ならネットワーク切断です。エラーコードで原因を特定してから対処するのが最短です。
画像を最適化してもZIPが大きい場合、他に削減できるファイルの種類はありますか?
フォント(woff2ファイル)や未使用のCSSライブラリ、node_modulesが残っている場合はそれらが主な原因です。特にnode_modulesは数百MBになることがあるため、必ず除外してください。
モバイル回線でのアップロードは速度が遅くなりますか?
4G/LTE以上の回線なら数十MBのZIPは数分以内にアップロードできます。ただし電波状況によって途中で切断されることもあるため、電波の安定した場所でアップロードしてください。