WordPress サイト全体を Git で管理する際の注意点と運用ベストプラクティス

効率的なサイトの運用や開発・ステージング・本番環境のデプロイを目指す上で、WordPress のコアやプラグインなどを Git でバージョン管理するケースがあります。この場合、.git の除外(.gitignore)設定に漏れがあると、バージョン管理する必要のないファイルまで Git に追加してしまい、リポジトリサイズの肥大化と、デプロイやローカルへのダウンロード時間が増加してしまいます。

この記事では、WordPress サイトを Git で管理する際の除外設定について、ここ数年のアップデートなども踏まえた設定方法を解説します。

WordPress 側の操作に伴う意図しないファイル差分の発生

WordPress はセキュリティ強化と機能追加のため、定期的にコアシステムを改良しています。この変更への対応が漏れていると、ユーザーによる WordPress 操作によって意図しない Git の差分が発生することがあります。

例えば、誰かが WordPress 管理画面からプラグインを更新した場合、 wp-content/upgrade-temp-backup/ ディレクトリが作成されていることがあります。これは WordPress 6.3 で導入された「プラグインアップデート失敗時の自動ロールバック機能」によって生成されるディレクトリです。このディレクトリにアップデート前のファイルが一時保存され、アップデートに失敗した時のロールバックなどに利用されます。通常は自動削除されますが、処理が中断された場合にはディレクトリが残ってしまうことがあります。もしディレクトリが残っている状態で、Git を操作すると、意図せずにバックアップファイルを Git リポジトリに追加してしまいます。

このような事態を避けるためにも、Git で管理すべきでないディレクトリへの理解が必要です。

除外すべきファイルとディレクトリを体系的に整理する

WordPress サイトを Git で効率的に管理するには、管理対象とすべきファイルと除外すべきファイルを明確に分類することから始まります。

キャッシュやバックアップファイル

キャッシュ系プラグインやバックアップ系プラグインなどは、機能を提供する上で一時ファイルやキャッシュファイルを生成することがあります。これらは環境固有の情報なので、Git 管理から除外するのが適切でしょう。例えば cache ディレクトリ、uploads/cache ディレクトリ、w3tc-cache ディレクトリなどが代表的です。この他にも、upgrade-temp-backup ディレクトリ、backup-db ディレクトリ、updraft ディレクトリ、ai1wm-backups ディレクトリなどは除外対象にすることをおすすめします。

環境別設定ファイル

企業での WordPress 開発において、開発・ステージング・本番環境を適切に分離し、各環境固有の設定情報を安全に管理することは重要です。

wp-config.php ファイルにはデータベース接続情報や認証キーなどの機密情報が含まれているため、環境別の管理が必要になります。各環境では wp-config.php 内で環境判定を行い、適切な設定ファイルを読み込む実装をおすすめします。

メディアファイル

画像や PDF ファイルなど、wp-content/uploadsディレクトリに保存されるファイルについても除外することをおすすめします。環境間で同じファイルを利用できるメリットもあるように見えますが、Git によるデプロイだけでは WordPress のメディアライブラリに登録情報が同期されません。そのため、Git 管理からは除外し、別の方法で同期することを検討しましょう。

.gitignore の例

以上の点を踏まえると、 WordPress サイトを管理する際の .gitignore 設定はこのような形となります。

# WordPress core files
wp-config.php
wp-config-local.php
.htaccess

# WordPress automatic files
wp-content/upgrade-temp-backup/
wp-content/updraft/
wp-content/ai1wm-backups/
wp-content/backup-db/
.maintenance

# Media file
wp-content/uploads/

# Cache and optimization
wp-content/cache/
wp-content/et-cache/
wp-content/w3tc-cache/
wp-content/litespeed/
wp-content/wp-rocket-config/
wp-content/advanced-cache.php
wp-content/wp-cache-config.php
wp-content/object-cache.php

# Upload files (adjust based on project needs)
wp-content/uploads/

# Logs and temporary files
*.log
*.tmp
debug.log
error_log

# Security plugin files
wp-content/wflogs/

# System files
.DS_Store
Thumbs.db

まとめ

WordPress サイトを Git で効率的に管理するには、WordPress 自体の機能進化に対応した継続的なメンテナンスが欠かせません。適切な .gitignore 設定により、リポジトリの整合性を保ち、開発チーム全体の生産性向上が実現できます。

WordPress の各種アップデート時における新規生成ファイルの監視が特に重要になってきます。環境別設定ファイルの適切な分離管理も必要でしょう。定期的な設定見直しによる最適化の実施を行うことで、安定した開発ワークフローを長期的に維持できます。

WordPress エコシステムは今後も進化を続けます。開発チームでは新機能リリース情報の定期的な確認と、それに伴う管理方針の見直しを継続することが大切です。

あなたの WordPress を最適な設定で運用する方法を提案します!

今回ご紹介した内容を社内で提案・実装する際、専門知識がないと難しいと感じることもあるかもしれません。DigitalCube の提供する LabWorksでは、AWS などを活用した WordPress サイトの柔軟なカスタマイズや安定運用をサポートする様々なサービスを提供しています。

ウェブメディアに特化した提案や事例も複数ございます。開発や運用の支援を依頼する企業をお探しの場合は、ぜひ DigitalCube の LabWorks をご検討ください。

CanCam株式会社デジタルガレージ
Internet SocietyINFOBAHN GROUP
有限会社ワグリクルートダイレクトスカウト
JOLLY GOOD!LegalOn Technologies
エピックベース株式会社mikihouse
旭化成SHARP
freeeSmartHR
日本協創投資横浜市立大学附属病院 次世代臨床研究センター
CanCam株式会社デジタルガレージ
Internet SocietyINFOBAHN GROUP
有限会社ワグリクルートダイレクトスカウト
JOLLY GOOD!LegalOn Technologies
エピックベース株式会社mikihouse
旭化成SHARP
freeeSmartHR
日本協創投資横浜市立大学附属病院 次世代臨床研究センター
Contact

当社へご興味をお持ちいただきありがとうございます。
「こんなことやってみたい!」と、ぜひ気軽にご相談ください。
担当者よりご連絡差し上げます。