WordPressの限界点

このブログもWordPressを利用して作られています。
最近ではブログエンジンのみならず、CMSとして利用される例も多くなってきました。
私自身、案件でもよく利用しているわけですが、近頃ではその限界点を感じるようになり、案件では採用しないことが多くなってきました。
企業のWeb担当者や、システムを知らないがWordPressなら構築が出来ると謳う方には、是非一度考えてもらいたいと思い、ここに記します。

※この文章は私自身の個人的な意見であり、WordPressで構築されたサイトを批判、中傷するものではありません。

WordPressに問題を感じる理由はいくつかあります。
もちろんその問題をある程度解消する方法も存在することは承知の上で、挙げてみます。

1.DBの問題

WordPressを案件で採用しない一番の理由がDBの問題です。
CMSエンジンとしても使われるようになったためか、汎用性を意識した作りをしており、DB構造が非常にややこしいです。

その上、HTML吐き出し型では無く、アクセスの度にDBにクエリを投げる形を取っています。
これによりサーバへの負荷が増え、多量のアクセスを捌くことが困難になります。

ApacheやMysqlのチューニングである程度は負荷を下げることが出来ますが、根本的な解決にはなりません。

2.プラグインの問題

ここまでWordPressが広く普及した理由は、プラグインの存在無しには語れないでしょう。
「手軽に導入出来るプラグインによるカスタマイズ」こそがWordPressの魅力と言っても過言では無いと思います。

しかし、それこそが致命的な欠点を作り出しているとも言えます。

まず、その手軽さ。
ほとんどのプラグインがボタン一つで簡単に導入できるわけですが、あなたはその中身の動作を知っていますか?
中でどういう処理が行われていて、どのような脆弱性を持っているのか。

先日、導入したが有効化していないプラグインの脆弱性を突かれて、サイトの中身を改ざんされたという記事を目にしました。
何故こんな事件が発生してしまったのか。

ここからは推測の域を出ませんが、可能性のお話です。
WordPressの管理画面やプラグインのURLは設定を変更しない限り、デフォルトのものが使用されます。
つまり、そのサイトがWordPressを使っていて、かつ、そのプラグインをインストールしていれば、有効化しているかどうかに関わらず、そのプラグインの脆弱性を突くことが可能になってくるわけです。

こうした被害も、個人のブログであれば、たいして問題無いかもしれませんが、企業のホームページに導入していた場合、どうなるでしょうか?
誰が責任をとってくれますか?

WordPressはオープンソースのプログラムですから、作った人が何かを担保してくれるわけではありません。
導入を決定した人が、あくまで責任を負う必要が出てくるわけです。

そのリスクを理解した上で導入を決定しているかどうか。

WordPressの導入を決定した担当者は、そこまでの判断をした上で利用を決定しているのでしょうか。

3.直接のカスタマイズの問題

WordPressはPHPで作られており、PHPの読み書きが出来ればある程度のカスタマイズが可能になっています。
テンプレートを作りたければ、最小限のPHPの知識と、WordPress独自関数の知識があれば良いのです。

しかし、中途半端な知識は脆弱性の温床です。
言うまでもありませんが、「知らなかった」なんて言い訳には出来ません。

また、WordPress本体の問題も多くあります。
歴史的な理由もあり、WordPress独自関数は整備状況が甘く、命名ルールや挙動すらも統一されていないという惨状です。
当然そこで出来上がるコードは、非常に可読性が低く、今後の再利用に適さないものになります。
あとから機能を追加したくとも、まずは解読から、という状況も珍しくありません。
しっかりしたドキュメントを作れば解決…たしかにそうですが、それってスクラッチ開発とどう違うんでしょうね?


WordPress自体は、オープンソースそのものの発展に大きく寄与した面もあり、高く評価しています。
しかし、だからといって盲目的にそれを信頼し、下駄を預けられるか、というとそれは別の問題です。

考えなくなることは楽ですが、そこに潜む危険について知らないことは、思わぬときに悲劇を生む地雷のような存在だと思います。

Leave a comment

6 Comments.

  1. おっしゃってる事は理解できますが、内容は「WordPress」に限らず、すべてのCMS、ひいては動的サイト全般にいえる問題ばかりです。

    DBが複雑という部分ですが、WordPressなんて単純なほうです。 テーブルが20個もないでしょう。 テーブルが少ないCMSのほうが、汎用性低そうで怖いです。

    WordPress(CMS)とスクラッチを比べ「違いない」とおっしゃるということは、恐らくどちらの開発もされたことはないのでしょう。

    あなた様の技術力不足をWordPressに責任転嫁してる以上、
    「WordPressで構築されたサイトを批判、中傷するものではありません」
    は理解できますが、
    「WordPressおよびCMS自体を中傷している」
    と捉えられても仕方のない内容です。

  2. brenさん>
    コメントありがとうございます。

    > おっしゃってる事は理解できますが、内容は「WordPress」に限らず、すべてのCMS、ひいては動的サイト全般にいえる問題ばかりです。
    WordPressに限らない内容は含んでいるとは思いますが、広く普及している分、カスタマイズ情報が世に出回り、内容の詳細を知らなくても比較的細かいカスタマイズが出来るソフトウェアとしてWordPressを取り上げています。

    > DBが複雑という部分ですが、WordPressなんて単純なほうです。 テーブルが20個もないでしょう。 テーブルが少ないCMSのほうが、汎用性低そうで怖いです。
    もちろん、もっと複雑な構成を持つCMSも存じておりますし、業務システムであればより複雑な構成を構築することもあると思います。
    「汎用性」をどう捉えるか、という問題はありますが、汎用性が低そう、という印象は一概に言えることでも無いのではないでしょうか。

    > WordPress(CMS)とスクラッチを比べ「違いない」とおっしゃるということは、恐らくどちらの開発もされたことはないのでしょう。
    > あなた様の技術力不足をWordPressに責任転嫁してる以上、
    > 「WordPressで構築されたサイトを批判、中傷するものではありません」
    > は理解できますが、
    > 「WordPressおよびCMS自体を中傷している」
    > と捉えられても仕方のない内容です。
    恐縮ですが、どちらの開発も経た上での意見を記しています。
    また、「違いは一つもない」と断定した記述ではなく、そこにかかる稼働は結局のところ同程度なのではないか、どこに優位性があるのか?という問いを投げる意図での記述です。
    ご意見頂けることは大変ありがたいのですが、推測からの断定をされてしまいますと意見の交換がしづらい状況になりますのでお控え頂けると幸いです。

    また重ねて申し上げますが、今回の記事の意図は冒頭にも記述した通り、WordPressの批判/中傷ではありません。
    その可能性や有用性を認めた上で、潜む危険性への指摘を意図しています。
    ではどうすれば良いのか、という答えは各人に任されたことだと思いますし、私が最適解を持っているなどとも考えていません。
    「こうしたほうが良い」という意見があれば、是非お伺いしたいですし、それについて議論することは記事を読んでいる誰かのために有用だと言えるのではないでしょうか?

  3. WPが絶賛される中、ボクも同じようなことは思っていました。
    サーバー負荷がネックでアクセス数があるサイトにはどうも不向きな気がします。そういう面で言えば静的なMTのほうが安心なので結局のところMTでの構築を勧めるようになりました。

Leave a Reply


[ Ctrl + Enter ]