WordPressの運用では、問題が起きるたびに対処することはできます。しかし、「問題を直せること」と「安定した運用を続けられること」は、まったく別のスキルです。そして、その差はサイトが増えるほど大きなコストになっていきます。

ある程度の規模に事業が成長すると、それまで運用を支えてきた非公式なやり方が、かえって足かせになり始めます。手順書の代わりにSlackのやり取りを頼り、ノウハウは一人か二人の担当者に集中。本来5分で終わる作業に20分かかるのも、前回どう対応したのかがきちんと残されていないためです。

重要なのは、単純に人員を増やすことではなく、運用体制を成熟させることです。ワークフローを明確にし、使うツールを統一して、繰り返し発生する作業を自動化することで、本当に人の判断が必要なことに時間を使えるようになります。

単発のWordPress対応に潜む問題

場当たり的なWordPress運用も、最初のうちは十分に回せるように見えます。小規模なチームであれば、共有メモやチェックリスト、それに「いつもの対処法」を知っている数人の開発者がいれば、サイトを問題なく運用できます。しかし、業務量がそれを支える人たちのキャパシティを超えると、状況は変わっていきます。

管理するサイトが増え、同じ環境に関わるメンバーも増えてくると、以下のような非公式な運用方法には決まって綻びが出始めます。

  • 人によって作業手順が異なる
  • 忙しい時にちょっとした作業が抜け落ちる
  • 実際の運用の変化にドキュメントの更新が追いつかない
  • 新しい開発者のフォローに、想定以上の時間がかかる
  • 同じ問題を何度も、それぞれ違う方法で解決している
  • 後から「誰が何をしたのか」を確認しづらい

こうした問題は、ある日突然表面化するものではありません。小さな修正が記録されないままになったり、一時的な回避策がいつの間にか定着したりして、気づけば暫定的だったはずのやり方を1年後も使い続けている。そうした小さな積み重ねが、少しずつ運用の負担を大きくしていきます。しかも、管理するサイトが増えるほど、やり方のばらつきも広がっていきます。

再現可能な仕組みが「忙しいチーム」と「成熟したチーム」を分ける

目の前の問題への対応に追われていると、問題が起きるたびに対処することになります。一方、運用が成熟すると、その背後にあるパターンに目を向けるようになります。この変化は、次の5つの段階を経て進みます。

  1. 手作業での対応:記憶や習慣を頼りに作業するため、その都度やり方が異なる
  2. プロセスの文書化:誰でも同じ手順で作業できるよう、手順を書き残す
  3. ワークフローの標準化:サイトや環境、担当者が変わっても、同じプロセスで作業する
  4. ワークフローの自動化:繰り返し発生する手順をスクリプトやプラットフォームの機能で実行し、手作業をなくす
  5. 運用の統合:WordPressのワークフローを、デプロイツールやSlack、ダッシュボード、クライアントのシステムなどと連携させる

自動化に取り組む前に、まずは手順を文書化することが重要です。やり方が統一されていないまま自動化しても、ばらつきのある作業が速くなるだけです。

同じ作業を何度も繰り返すようになれば、たとえ使いやすいダッシュボードがあったとしても、毎回手作業で対応することは効率的とはいえなくなります。Kinstaが独自に開発したコントロールパネル「MyKinsta」は、よく設計された一貫性のあるインターフェースです。2人が同じ操作をすれば、同じ結果が得られます。ばらつきが生まれる原因はUIそのものではなく、UI上で「やるかどうか」が利用者に委ねられている作業にあります。

たとえば、ステージング環境を本番環境に反映するとき、事前のバックアップは必須ではありません。プライマリドメインを変更した場合も、データベースの検索と置換を必ず行うとは限りません。デプロイ後のキャッシュクリアについても、3つのキャッシュレイヤーすべてをクリアするかどうかは、作業する人に委ねられています。

つまり、同じダッシュボードで同じ操作をしていても、必要な作業をどこまで行うかによって結果は変わります。その日の担当者が何を覚えているかに左右されてしまいます。

5サイト程度なら、多少のばらつきで済むかもしれませんが、50サイトともなれば話は別です。「決まった手順がある」のと、「だいたい決まった手順でやっている」のとでは、大きな違いがあります。

規模が大きくなるにつれて、重要なのは「誰がやり方を知っているか」ではなく、「誰が担当しても、毎回同じ手順で作業できるか」になっていきます。

今のWordPress運用に規律が求められる理由

以前のWordPressは、主に企業の情報サイトやブログに使われていました。デプロイが多少うまくいかなくても、月曜の朝に開発者が修正すれば済むようなケースも少なくありませんでした。しかし、現在多くのチームが運用しているWordPressサイトは、そうしたものとは大きく異なります。

今やWordPressは、1日に何千件もの取引を処理するECサイトや、大きな継続収益を生み出す会員制サイト、公開スケジュールそのものが契約に関わるメディアサイト、アップデートの失敗がインシデントレビューにつながるエンタープライズ規模のサイト群などを支えています。こうしたサイトでは、デプロイの失敗は単なる不便ではなく、ビジネス上の問題です。

WordPressにおける運用の規律とは、本番環境に反映する前に変更をテストすること、大きなアップデートや移行の前には必ずバックアップを用意すること、デプロイ手順を標準化して後から確認できるようにすること、本番環境へのアクセスを必要な人だけに意図的に制限すること、チーム全員が確認できる形でログを保存すること、そして問題が起きる前からロールバックの手順を決めておくことです。

これは、必要もないのに運用を複雑にしているわけではありません。今のWordPressサイトを安定して運用するために、本当に必要とされる最低限の基盤なのです。

400サイト規模の運用ではどうなる?

オーストラリア・メルボルンを拠点とする制作会社、Straight Out Digital(Sod)は、400以上のWordPressサイトを管理しています。この規模になると、手作業での運用が成り立たなくなったのは、チームのスキル不足ではありません。同じ作業を400回も繰り返せば、どれだけしっかりしたチェックリストでも、いずれ運用にばらつきが生じるのが原因です。

そこで同社は、Kinsta APIを活用した社内ツールを構築し、ポートフォリオ全体でサイトのプロビジョニングや一括操作を自動化しました。

開発責任者のPete Brundle氏によると、APIを活用することで、特に時間のかかっていた作業を自動化する社内ツールを開発できるようになりました。一方、人の判断が必要な作業には、引き続きダッシュボードを使用しています。MyKinstaを置き換えたのではなく、社員が400サイトで同じ操作を繰り返していた部分を自動化しました。

これは「運用の成熟」の良い実践例です。プラットフォームを全面的に切り替えるのではなく、繰り返し発生する作業をワークフローごとに、少しずつ人の手からスクリプトへ移していくのが効果的です。

成熟した自動化を実践するとどうなるか

目指すべきは「全自動化」ではなく、一定のパターンで繰り返し発生し、明確な手順があり、人の判断を必要としない作業を見極め、手作業から切り離すことです。

サイトのプロビジョニング

新規クライアントとの契約が決まると、同じ環境を一から構築するのが一般的です。サイトを作成し、ステージング環境を用意し、アクセス権を設定し、チームメンバーを追加して、管理者アカウントを作成する、といった作業になります。これを手作業で行うと、毎回少しずつ手順にばらつきが生まれ、必要以上に時間もかかります。

Kinsta APIを使えば、この一連の作業の大部分を自動化することができます。詳しくは、APIドキュメントをご覧ください。

  • POST /sitesでサイトを作成。同じAPI呼び出しで管理者ユーザー、パスワード、サイトタイトルも設定できるため、最初の環境については、別途「最初の管理者を作成する」という手順は不要に。
  • 本番環境と同時に、ステージング環境も自動作成される。
  • POST /sites/environments/{env_id}/additional-sftp-accountsでチームメンバー用の追加SFTPアクセスを作成。アクセスできるディレクトリや読み取り・書き込み権限も指定可能。

また、オンボーディングの途中や完了後に、追加のWordPress管理者アカウントを作成したり、既存アカウントの有無を確認したりする必要がある場合に備えて、Kinstaでは2026年4月に専用の3つのエンドポイントをリリースしています。

これらを組み合わせることで、プロビジョニング用のスクリプトは、最後のステップとしてログインリンクを確実に取得して返せるようになります。その場しのぎの方法でリンクを用意する必要はありません。

この一連の処理をスクリプト化すれば、誰かがチェックリストの項目を飛ばしてしまう心配もなく、一貫したオンボーディングを実現できます。ただし、これらのAPI呼び出しには非同期で処理されるものもあるため、その待ち時間をあらかじめ考慮して設計することが重要です。

デプロイのサポート

決められた手順に沿ってデプロイを行えば、後から作業内容を確認しやすく、ロールバックもしやすくなります。また、サイトが壊れた状態のままになるリスクも抑えられます。

Kinsta APIを使った一般的なデプロイのワークフローは、次のようになります。

  1. POST /sites/environments/{env_id}/manual-backups:デプロイ前のスナップショットを作成し、実行日時を記録。
  2. PUT /sites/{site_id}/environments:ステージング環境を本番環境に反映。source_env_idtarget_env_idに加え、データベースやファイルを反映するか、search-and-replaceを実行するかなども指定できる。
  3. POST /sites/tools/clear-cache:対象環境のサイトレベルキャッシュをクリア。

これらのAPIを呼び出すと、それぞれすぐにoperation_idが返されます。スクリプト側では、GET /operations/{operation_id}を使って処理が完了するまでステータスを確認し、完了したら次のステップへ進みます。途中でいずれかの処理に失敗した場合は、そのまま次へ進まず、そこでワークフローを停止します。

こうすることで、チームはデプロイの実行履歴を後から確認できるようになります。また、誰がデプロイを担当しても同じ手順が実行されるため、クライアントに一貫した運用品質を提供できます。

プラグインとテーマの管理

多くのWordPress運用において、プラグインの更新は最も頻繁に発生する手作業のひとつです。5サイトなら、手作業でも少し面倒という程度かもしれません。しかし50サイトともなれば、実際に計測されないままチームが負担している、大きな運用コストになります。

Kinsta APIでは、プラグインを2つのレベルで管理可能です。

  • サイト単位:GET .../pluginsで環境にインストールされているプラグインの一覧を取得。PUT …/pluginsでは指定したプラグインを特定のバージョンに更新でき、PUT …/plugins/bulk-updateでは複数のプラグインを一度に更新できる。
  • 企業アカウント単位:GET /company/{id}/wp-pluginsを使うと、アカウント内の全サイトにインストールされているプラグインを一度のリクエストでまとめて取得可能。2026年1月以降は、インストール済みのバージョンまたは利用可能な最新バージョンに既知の脆弱性があるかどうかも、is_plugin_version_vulnerableで確認できる。たとえば50のクライアントサイトを管理している場合でも、「脆弱性のあるバージョンのWooCommerceを使っているサイトはどれか」を、ダッシュボードを一つひとつ開いたり、脆弱性を照合する独自のロジックを実装したりすることなく把握できる。

どのアップデートを、どのサイトに、いつ適用するかは引き続き社員が判断します。APIでは、プラグインの状況を把握し、実際の更新作業を自動化できます。

また、すべてをAPIで自動化する必要もありません。例えば、Kinstaの自動アップデートアドオンを使えば、独自のスクリプトを用意しなくても、プラグインを定期的に更新し、更新前後のビジュアルリグレッションテストまで自動で実行することができます。

バックアップとロールバックのワークフロー

大きな変更を加える前には、バックアップを取るのが基本ですが、「バックアップを取り忘れることがない」仕組みまで整えている会社は、それほど多くありません。

POST /sites/environments/{env_id}/manual-backupsを実行するとoperation_idが返されます。バックアップが完了すると、Kinstaのバックアップ一覧取得用エンドポイントからそのバックアップを取得できます。

これにより、万が一問題が発生した場合でも、どのバックアップから復元すればよいのかが明確になり、確実なロールバックにつなげることができます。

キャッシュとパフォーマンス関連の操作

デプロイ後に混乱が起きる原因として特に多いのが、キャッシュのクリアです。開発者が変更を本番環境に反映したものの、クライアントから「変更が反映されていない」と連絡が入り、10分ほど調べた末に、単にキャッシュをクリアしていなかったことが判明する、といったケースはよくあります。

Kinstaではキャッシュが3つの独立したレイヤーに分かれており、それぞれ専用のエンドポイントが用意されています。

デプロイ用のスクリプトから、変更内容に応じて必要なキャッシュレイヤーをクリアするようにしておけば、担当者の記憶に頼る必要がありません。また、それぞれのAPI呼び出しからoperation_idが返されるため、処理が完了したことも確認できます。

複数環境でのWP-CLIの実行

複雑なWordPress環境を管理する技術チームにとって、SSH接続なしでAPI経由でWP-CLIコマンドを実行できる機能は、便利でありながらまだ十分に活用されていない機能のひとつです。

POST /sites/environments/{env_id}/run-wp-cli-commandを使うと、指定した環境で任意のwp ...コマンドを実行でき、operation_idが返されます。

複数のサイトで同じコマンドを実行する場合も、サイトごとにSSH接続して一つずつ実行する必要はありません。環境IDをプログラムで順番に処理することで、複数の環境に対して同じWP-CLIコマンドをまとめて実行できます。

レポートと可視化

サイト全体で何が起きているのかを確認するために、毎回それぞれのダッシュボードへログインしなければならないようでは、問題を未然に防ごうとしても、どうしても対応が後手に回りがちです。

Kinsta APIを使えば、MyKinstaで確認できるものと同じ分析データを自動で取得できます。訪問数、CDN転送量、サーバー帯域幅、レスポンスコードの内訳、アクセス元IPの上位、アクセスの多い国・地域、訪問数の推移などを、任意のサイトや期間を指定して取得可能です。

自動化に任せる部分と、人が判断すべき部分

ここまで紹介してきたような自動化によって、経験豊富な開発者が不要になるわけではありません。自動化するのは、開発者の判断を必要としない作業です。

引き続き人の判断が必要になるのは、変更を本番環境に反映できる状態か、特定のクライアントにとってどのプラグイン更新までならリスクを許容できるか、問題が発生したときにロールバックすべきか、それともさらに調査を続けるべきか、ワークフローを自動で進めず一旦停止すべきタイミングはいつか、そして標準プロセスから外れる対応が本当に必要か、といった場面です。

自動化が力を発揮するのは、何をすべきかが明確に決まっている作業であり、システムが持っていない背景や状況を踏まえた判断が必要な作業には向いていません。

目指すべきなのは、予測可能な作業を一貫して自動化し、開発者が状況に応じた判断を本当に必要とする仕事に集中できるようにすることです。

まずはこれを自動化

「頻繁に繰り返される」「人の判断をほとんど必要としない」「今も手作業で行っている」という3つの条件を満たす作業から自動化するのがおすすめです。

  • 更新前のバックアップPOST /sites/environments/{env_id}/manual-backupsなら、1回のリクエストでバックアップを作成可能。すべてのアップデートワークフローに組み込んでおけば、担当者が覚えているかどうかにかかわらず、必ず復元ポイントを確保できる。
  • デプロイ後のキャッシュクリア:反映後、必要なキャッシュクリア用エンドポイントを自動で実行するようにすれば、デプロイ後によく起こる「変更が反映されていない」という混乱を、わずかな実装コストで減らせる。
  • 企業アカウント全体のプラグイン管理GET /company/{id}/wp-pluginsを週に一度実行することで、サイトごとに管理画面へログインすることなく、全サイトのプラグインバージョンと脆弱性の状況を最新の状態で把握できる。
  • 繰り返し実行するWP-CLIコマンドPOST /sites/environments/{env_id}/run-wp-cli-commandを複数の環境に対して順番に実行する仕組みは、現在チームが月に複数回手作業で行っている処理であれば、自動化を検討する価値がある。
  • デプロイ通知:デプロイ処理を開始した後、GET /operations/{operation_id}で処理状況を確認し、その結果を独自のWebhook経由でSlackに投稿できる(Kinstaが提供するのは処理のステータスまでで、その後の通知部分は自分たちで構築)。

まずは1つ始めてみてください。最初は影響の小さいサイトで正しく動作することを確認し、そこから少しずつ自動化の範囲を広げていきましょう。

スクリプトの次に来るのは、APIを操作するAIエージェント

5段階の成熟度モデルでは、最終段階を「運用の統合」としています。そのさらに先に、新たなレイヤーとして登場しつつあるのが、AIエージェントによるAPIの直接操作です。

MCP(Model Context Protocol)サーバーを構築する方法はこちらでご紹介しています。これにより、APIの操作をツールとして公開し、ClaudeのようなAIアシスタントから直接呼び出せるようになります。ただし、AIが完全に自律して処理を進めるわけではなく、各操作は引き続き明示的な承認を経て実行されるため、人が確認しながらAIにAPI操作を任せる形になります。

AIのようなAPIアクションのためのMCPサーバーの構築
AIのようなAPIアクションのためのMCPサーバーの構築

たとえば、「すべてのサイトでWooCommerceのアップデートが必要か確認する」という処理のために、開発者が専用のスクリプトを書く必要はありません。チームの誰もが自然言語で質問し、エージェントに、スクリプトと同じ「GET /company/{id}/wp-pluginsPUT …/plugins/bulk-update」という一連の処理を実行させることができます。

ただし、AIエージェントを導入すれば、これまで説明してきた運用の整備が不要になるわけではありません。エージェントが確実に処理を実行するには、土台となるAPIが一貫した動作をすることが前提になります。

同じことはワークフローにも当てはまります。手順が標準化されていなければ、実行すべき手順そのものが明確になっておらず、AIエージェントを導入しても結果にばらつきが生じます。

運用が本当に成熟しているかを測るには

多くの場合、「問題が起きたときに解決できるか」が一つの基準になります。経験があれば、たいていの問題には対処できます。しかし、運用の成熟度を見るうえで、本当に重要なのはそこではありません。

見るべきなのは、むしろ以下のような点です。

  • 新しく加わったメンバーが、誰かに聞かなくてもこのプロセスを実行できるか
  • 20サイトで同じプロセスを実行し、毎回同じ結果を得られるか
  • 後から何が起きたのかを、Slackのやり取りをたどらずに確認できるか
  • 特定の担当者がいなくても、問題が起きたときに復旧できるか
  • クライアントが増えても、それに比例して調整や管理の手間が増えない仕組みになっているか

これらの多くを実現できていなければ、日々の対応に追われている状態です。反対に、ほとんどを実現できているなら、運用体制が十分に整っていると言えます。

重要なのは、運用に必要な知識やプロセスが人に依存しているのか、それとも仕組みとして定着しているのかという点です。

まずは今ある環境から始める

WordPressの運用を成熟させるために、大規模なインフラ投資や専任のエンジニアチームが必要なわけではありません。必要なのは、これまでの非公式な運用方法が足かせになり始めたと認識し、一つずつワークフローを仕組み化していくことです。

現在では、AIコーディングツールを使えば、チームが必要としているものを自然言語で説明するだけで、実際に動くデプロイスクリプトやプラグインの一覧レポートを生成できます。これによって連携の実装は速くなりますが、生成されたスクリプトがそのまま本番環境で安全に使えるとは限りません。

本当に重要なのは、API呼び出しを書くスキルではなく、どのワークフローを自動化する価値があるのか、どの順番で処理すべきか、そして途中のステップで失敗した場合にどう対処するのかを判断できることです。

Kinsta APIは、WordPress用サーバーに関わる処理を直接カバーします。サイトのプロビジョニング、デプロイ、バックアップ、3つのレイヤーすべてのキャッシュクリア、プラグインとテーマの管理、WP-CLIの実行、分析データの取得などをAPIから操作できます。

それ以外の部分は、Kinstaのプラットフォーム側で対応できます。たとえば、ロールバック機能を備えたKinsta自動アップデートアドオン、稼働状況の監視、毎日のバックアップ、そしてチームが引き続き手作業で管理したいものにはMyKinstaを利用できます。

つまり、小規模なうちはシンプルに運用し、規模が大きくなったら、同じプラットフォームのまま運用を整備・自動化していくことができます。規模の拡大に合わせて、別のプラットフォームへ移行する必要はありません。

Joel Olawanle Kinsta

Kinstaでテクニカルエディターとして働くフロントエンド開発者。オープンソースをこよなく愛する講師でもあり、JavaScriptとそのフレームワークを中心に200件以上の技術記事を執筆している。