静的サイトジェネレータとは?WordPress との違いは?

 

2010年代半ばから、静的サイトジェネレータというものが現れ始め、

2020年4月現在、HugoGatsbyJSNuxt.jsNext.jsなど、多くのフレームワークが開発されています。

今回は、

  • 静的なサイト生成とは何か
  • WordPress などの動的なサイト生成と異なる点は何か
  • 静的サイトのメリット・デメリット
  • 静的サイトはどんな場面に向いているか

についてお話します。


※この記事のマンガ内の文字が読みづらい場合は、端末を横に向けて画面を回転させてからご覧いただくと改善される場合がございます。


ブログ始めようかなーと思ってるんだけど、無料ブログサービスだと自由度低いって聞くし、やっぱり WordPress がいいのかな?
ブログ始めようかなーと
思ってるんだけど
無料ブログサービスだと
自由度低いって聞くし
やっぱり WordPress
いいのかな?
WordPress も悪くないけど、静的サイトジェネレータもいい選択肢だと思うよ。な、なにそれ?
WordPress も
悪くないけど
静的サイトジェネレータ
いい選択肢だと思うよ
な、なにそれ?

静的なサイト生成と動的なサイト生成の違い

静的サイトジェネレータでは作者が自分の PC ですべてのデータを管理していて、そこで準備されたコードをもとに生成された静的なページだけをサーバに置く
静的サイトジェネレータでは
作者が自分の PC ですべてのデータを管理していて
そこで準備されたコードをもとに
生成された静的なページだけ サーバ サービスを提供するコンピュータ に置く
サイトを見る人に対してはあらかじめ準備されたページを表示するだけで、データベースの情報を参照したり処理したりする必要がないから、高速なページ表示を実現できるんだよ
サイトを見る人に対しては
あらかじめ準備されたページを表示するだけで
データベースの情報を参照したり
処理したりする必要がない
から
高速なページ表示を実現できるんだよ

 

対して動的なサイト生成の場合サーバ側でデータベースを管理していて、サーバにはコンテンツだけではなくサイトのデータベースや管理画面も置かれてるの
対して動的なサイト生成の場合
サーバ側でデータベースを管理していて
サーバにはコンテンツだけではなく
サイトのデータベースや管理画面も置かれてるの
サーバはユーザからリクエストがあるたびにユーザ側から提供されたデータや自分の持つデータベースをもとに表示させるページを生成するんだよ
サーバはユーザからリクエストがあるたびに
ユーザ側から提供されたデータや
自分の持つデータベースをもとに
表示させるページを生成するんだよ

 

飲食店でいえば、動的サイトは注文が入ってから料理を作り始める(オーダーメイド)のですが、

静的サイトは料理をすぐに提供できるように事前に準備しておく(レディメイド)のです。

動的サイトで注文を受けたり料理したり料理を提供したりするのはサーバですが、静的サイトではサイトの作者が自分のローカル PC で料理しておくのです。

作者がシェフで、サーバは注文を受けたり準備された料理を提供するだけのウエイター/ウエイトレスです。

(ちなみに、英語で waiter/waitress を politically correct 性別・人種などの差別がない表現 に言うと server になるそうです。)

このイメージを持っておくと、メリット・デメリットについても自然と理解できると思います。


静的サイトのメリット・デメリット

メリット:サーバの役割が小さい

先述のように、動的サイトのサーバはリクエストがあってからページを表示するための処理を行いますが、

静的サイトのサーバはあらかじめ用意されたページを表示するだけです。

ページの表示速度は静的サイトのほうが速いのです。


また、動的サイトのサーバと比べてやることが少ないため、無料の契約でも十分なパフォーマンスを発揮します。

動的サイトの場合のように、安定したパフォーマンスを維持するために月数千円もサーバ代を支払う必要がないのです。

経済的にも静的サイトのほうがお得だといえます。


また、動的サイトのサーバの場合、そこにはサイトの管理画面やデータベースが置かれています。

めったに起こらないでしょうが、もしこのサーバが攻撃されてしまえば、さまざまな重大な被害が生じる可能性があります。

一方、静的サイトのサーバにはコンテンツを配信する機能しかありません。

もし攻撃されてもコンテンツを改ざんされたりデータベースを盗まれたりすることがありません(フェイルセーフ)。

セキュリティ面でも静的サイトのほうが安全だといえます。

デメリット:サーバがページ生成に関われない

調味料をふりかけたりするぐらいならできますが、サーバは料理に多くは手出しできません。

お得意様だからとお出しする料理を変えたくても、すでに出来上がった料理しか提供できません。

そういうことがやりたいなら、シェフに頼むしかありません。

接客するのはシェフではないので、お客様によって料理を変えることは簡単ではないのです。

当然、動的サイトのサーバのように自分で接客して料理するよりは大変になります。

ただ、だいたいは大変になるだけであって不可能になるわけではありません。

関連記事

【Hugo + Netlify + GitHub Actions】静的サイトジェネレータで予約投稿する

【Hugo + Netlify + GitHub Actions】静的サイトジェネレータで予約投稿する


静的サイトが向いている場面は?

動的サイトが向いているのは、会員登録やログインを必要とするような、ユーザによって異なる情報を表示する必要があるような場面や、

頻繁(数分に1回以上)に更新する必要がある、あるいはコンテンツが非常に多いような場面です。

逆に言うと、それ以外の場面には静的サイトが向いていると言えるでしょう。

「なんでもかんでも WordPress」ではなくて、適切に使い分けることが必要です。

関連記事

ブログ公開から30日経過したのでいろいろあったことまとめ

ブログ公開から30日経過したのでいろいろあったことまとめ


この記事がお役に立てたならうれしいです。

それでは👋