SSHとFTPでファイルアップロードの速さの違いとは?

Webサイトの移管やWordPressの引っ越し作業をしていると、ファイルをサーバーへアップロードする場面が必ず出てきます。

そのときによく使われるのが、SSHを使ったアップロード・展開です。

「SSHってなに?わけわかんない…」と思いますが、一回使ったらとてもありがたい物なんだなと必ず実感します。

FTPは手軽だが、大量ファイルに弱い

FTPは、FileZillaなどのFTPソフトを使って、ローカルPCからサーバーへファイルをアップロードする方法です。

ドラッグ&ドロップで操作できるため、初心者でも扱いやすいのが大きなメリットです。

ただし、FTPは大量の細かいファイルをアップロードすると時間がかかりやすいです。

WordPressの場合、テーマファイル、プラグイン、画像、キャッシュファイルなど、1つ1つのファイルサイズは小さくても、数千〜数万ファイルになることがあります。

FTPではそれらを1ファイルずつ通信しながら送るため、ファイル数が多いほど処理に時間がかかります。

たとえば、同じ1GBのデータでも、次のような違いがあります。

  • 1GBのzipファイル1個
  • 1KB〜数MBのファイルが1万個

この場合、後者の方がかなり遅くなることがあります。

これは、ファイルを送るたびに通信の確認や接続処理が発生するためです。

SSHは圧縮ファイルを送ってサーバー上で展開できる

一方、SSHを使う場合は、サイトデータをあらかじめzipやtar.gz形式で圧縮し、その圧縮ファイルをサーバーにアップロードしてから、サーバー上で展開する方法がよく使われます。

圧縮したファイルをサーバーに送ったあと、SSHでログインして、展開します。

この方法だと、FTPのように数千ファイルを1つずつ送るのではなく、大きな圧縮ファイルを1つ送るだけで済みます。

そのため、ファイル数が多いサイトほど、SSHを使った方が圧倒的に速く感じることが多いです。

速度差が出る一番の理由は「ファイル数」

SSHが速いというより、正確には圧縮して1ファイルとして扱えることが速い理由です。

FTPでも圧縮ファイルを1つだけアップロードするなら、そこまで遅くはありません。

ただしFTPだけでは、サーバー上でzipやtar.gzを展開できないケースがあります。管理画面やファイルマネージャーで展開できるサーバーもありますが、自由度はSSHの方が高いです。

WordPress移管ではSSHの方がかなり効率的

WordPressサイトを丸ごと移管する場合、FTPでpublic_html配下をそのままアップロードすると、かなり時間がかかることがあります。

特に以下のようなサイトは注意が必要です。

  • 画像が多い
  • プラグインが多い
  • キャッシュファイルが残っている
  • バックアップファイルが含まれている
  • WordPress本体・テーマ・プラグインを丸ごと移す

このような場合、FTPでは数十分〜数時間かかることもあります。

一方でSSHを使い、圧縮ファイルを転送してサーバー上で展開すれば、同じ作業がかなり短時間で終わることがあります。

実務感としては、FTPで「まだ終わらないな」と待つような作業でも、SSHなら「一瞬で終わった」と感じる場面があります。

ただしSSHは操作ミスに注意

SSHは便利ですが、コマンド操作になるため、FTPよりもミスの影響が大きいです。

たとえば、間違ったディレクトリで展開してしまったり、既存ファイルを上書きしてしまったり、削除コマンドを誤って実行してしまうリスクがあります。

そのため、SSHを使う場合は、以下のコマンドで現在地を確認しながら作業することが大切です。

作業前には必ずバックアップを取っておくことも重要です。

結論:少量ならFTP、大量ならSSHが効率的

FTPとSSHは、どちらが絶対に優れているというより、使い分けが重要です。

ちょっとしたCSS修正や画像の差し替えなら、FTPの方が手軽です。

一方で、WordPressサイトの移管や大量ファイルのアップロードでは、SSHを使った方が圧倒的に効率的です。

特にWeb制作の実務では、サイト全体を移管する場面も多いため、SSHで圧縮・転送・展開する流れを覚えておくと、作業時間を大きく短縮できます。

FTPは「細かい修正向き」、SSHは「大きな移管作業向き」。

この違いを理解しておくと、サーバー作業の効率がかなり変わります。

トラックバックURL