コラム

Shifter で動かない機能と代替方法|フォーム・検索・予約投稿ほか

静的化で変わるのは「公開側で PHP が動かない」こと

Shifter は、コンテンツの編集は従来どおり WordPress で行い、公開するときに静的なHTML/CSS/JavaScript へ書き出して配信します。公開側に WordPress も PHP も存在しないので、WordPress を狙った攻撃の影響を受けにくくなります。

その代わり、公開側で PHP が動くことを前提にした機能は、そのままでは使えません。Shifter の個別相談会でも、ほぼ毎回「フォームは使えますか」「検索はどうなりますか」というご質問をいただきます。

見分け方はシンプルです。閲覧者のリクエストを受けて、その場でサーバが処理する機能は動きません。フォームの送信、検索結果の表示、ログインなどが該当します。逆に、ページの表示だけで完結するものや、外部サービスを JavaScript で読み込むものは問題なく動きます。

この記事では、相談会でよくいただくご質問をもとに、動かない機能とその代わりの方法をまとめました。

機能ごとの代わりの方法

よく使われる機能について、Shifter での扱いと代わりの方法をまとめると次のようになります。

機能Shifter での扱い代わりの方法
お問い合わせフォーム(Contact Form 7、MW WP Formなど)送信処理に PHP を使うため動かないHubSpot のフォーム、フォームランなどの埋め込み型フォーム、MA ツールのフォーム
サイト内検索WordPress 標準の検索は動かないShifter と連携済みの Algolia、Google カスタム検索
予約投稿WordPress 標準の予約投稿は使えないShifter 側でビルド済みファイルの公開タイミングを設定
記事ランキング・閲覧数DB の閲覧数を参照する方式は使えないGoogle アナリティクスの集計をビルド時に取り込む(Simple GA4 Ranking など)
コメント・会員機能・ログイン動かない外部サービスに置き換える
リダイレクト・短縮 URL 系プラグイン動的に転送する処理は動かない外部の短縮 URL サービスなどに集約する
テーマ外の PHP ファイルを読み込む仕組み書き出しの対象にならないWordPress の中で完結するように作り直す
FTP でのファイル更新利用できない管理画面からの ZIP アップロード、All-in-One WP Migration

お問い合わせフォーム

相談会で最も多いご質問です。すでに HubSpot や Marketo などのフォームを埋め込んでいるサイトであれば、そのまま表示できます。新しく用意する場合は、HubSpot の無料フォームのように、タグを貼るだけで使えるサービスが手軽です。

Google フォームでも代用はできますが、デザインの調整がしにくい点は気になるかもしれません。問い合わせ先が別のサイトにある場合は、そのページへリンクするだけで済むこともあります。

フォームを外部サービスにすると、問い合わせ内容が WordPress のデータベースに残らなくなります。個人情報をサイト側に持たない構成になる、という見方もできます。

サイト内検索

Shifter には Algolia との連携機能があり、プラグインを有効にして設定すれば検索結果を表示できます。小規模なサイトであれば、無料枠の範囲で収まることが多いです。

予約投稿

WordPress の予約投稿は、決まった時刻に公開処理を走らせる仕組みです。Shifter では代わりに、ビルド済みのファイルを公開するタイミングを設定します。予約したい記事の数が多い場合は、管理の手間が増える点に気をつけたいところです。

記事ランキング

閲覧数をリアルタイムに数えて並べることはできません。Simple GA4 Ranking のように、Google アナリティクスのデータをビルド時に取得して書き出す方式なら実現できます。

表示されるのは、ビルドした時点の集計結果です。週1回など、記事を更新しない日でも定期的にビルドしておくと、ランキングが古くなりません。

リダイレクト・短縮 URL

アクセスがあるたびに転送先を判断するタイプのプラグインは動きません。短縮 URL を使っている場合は、専用の外部サービスへ移す必要があります。移行前に、発行済みのリンクを棚卸ししておくと安心です。

テーマ外の PHP ファイル

テーマのテンプレートとは別の PHP ファイルを読み込んで、データを表示しているサイトもあります。この部分は静的な書き出しの対象にならないため、カスタムフィールドや JavaScript を使って、WordPress の中で完結する形に作り直します。

移行すると不要になるプラグイン

動かなくなるものがある一方で、Shifter に移行すると役目を終えるプラグインもあります。移行前に停止・削除しておくと、エクスポートも軽くなります。

種類不要になる理由
セキュリティ系(SiteGuardなど)公開側に WordPress が存在せず、編集用の WordPress も編集するときだけ起動するため
キャッシュ系公開側がもともと静的ファイルで、CDN から配信されるため
バックアップ系ビルドごとに書き出し結果が保存され、過去の世代に戻せるため
.htaccess を書き換えるプラグイン公開側に Apache の設定が存在しないため
画像の WebP 変換Shifter のメディア CDN で代替できる場合があるため

WordPress の運用でよく入れる「守りのプラグイン」が減るので、更新や互換性の確認をする対象も少なくなります。

運用面で知っておきたいこと

機能そのものではありませんが、日々の更新の流れも少し変わります。

更新は「ビルド」してから反映される

Shifter での更新は、WordPress を起動して編集し、静的ファイルを書き出し(ビルド)、プレビューで確認してから公開する流れです。ビルドにかかる時間は、一般的なコーポレートサイトで数分程度です。記事数が多いと長くなりますので、保存したらすぐ反映される従来のWordPress とは感覚が違う点は、あらかじめ社内で共有しておくとよいと思います。

ビルドした結果は過去の世代も残るので、公開前に確認したり、問題があれば前の状態に戻したりできます。

複数人で編集するときは声がけを

WordPress の管理画面には何人でも同時にログインできます。ただ、ビルドはその時点の内容で書き出されるため、誰かが編集している途中で別の人がビルドすると、作業中の内容が公開されてしまうことがあります。

Slack などで「今からビルドします」とひと声かけるだけでも、こうした事故はかなり防げます。

WordPress 本体の更新で不具合が出ても、公開サイトは止まらない

Shifter では、WordPress 本体や PHP などのミドルウェアが自動で最新版に保たれます。その結果、テーマやプラグインとの相性で管理画面側にエラーが出ることもあります。

それでも、公開されているのはビルド済みの静的ファイルなので、サイトの表示には影響しません。急いで対応する必要はなく、落ち着いて修正してから再ビルドすれば大丈夫です。なお、テーマやプラグインの更新判断はお客様側の範囲になります。

Shifter に向いているサイトの確認表

ここまでの内容を、自社サイトに当てはめて確認するための表です。右の列に当てはまるほど、Shifter での運用に向いています。

確認すること向いているケース
更新内容をすぐに反映する必要があるか数分の反映待ちが問題にならない(コーポレートサイト、オウンドメディアなど)
更新する頻度と人数1日1本程度までの更新で、編集する人数も限られている
お問い合わせフォーム外部のフォームサービスを使っている、または置き換えられる
サイト内検索使っていない、または Algolia などに置き換えられる
会員機能・ログイン公開側では使っていない
テーマ外の PHP ファイル使っていない、または WordPress の中に作り直せる

更新頻度が非常に高いサイトや、会員向けの機能が中心のサイトは、静的配信ではなく Amimoto のような WordPress ホスティングサービスのほうがより良い場合もあります。どちらがよいか迷う場合は、相談会でご相談ください。

まずはフリートライアルで確かめてみてください

動かない機能の多くは、外部サービスへの置き換えやビルド時の書き出しで代わりの方法があります。実際に自社サイトで何が動いて何が動かないかは、試してみるのがいちばん確実です。

Shifter にはフリートライアルがあるので、今のサイトを All-in-One WP Migration で移行して、表示や更新の流れを確かめられます。一般的なコーポレートサイトであれば、Tier 2(月間転送量100GB まで、月額60ドル。年払いなら月額48ドル相当)で収まることが多いです。

自社サイトがどちらに向いているか判断がつかない場合や、作り直しが必要そうな機能がある場合は、個別相談会でお気軽にご相談いただければと思います。