【SWELL実務講座】プロの納品フローと限界突破のカスタマイズ(上級編)

中級編での「Studio Haku」制作、本当にお疲れ様でした! 複数ページの構成、お問い合わせフォーム、そして複雑なレイアウトの調整…。ここまで作り切った時点で、あなたは既にSWELLユーザーの上位数%に入っているはずです。

しかし、もし今、クライアントからこんな相談をされたら、自信を持って「任せてください」と言えますか?

  • 「ここの余白、あと数ミリだけ詰められませんか?」
  • 「実績の入力が面倒で…。文字を入れるだけで勝手にデザインされるようにできませんか?」
  • 「セキュリティ対策や、もし壊れた時の復旧はどうなっていますか?」

中級編までは、SWELLという「優秀なテーマの機能」を使ってサイトを作りました。
この上級編では、「あなた自身の技術」を使って、SWELLの限界を超えたカスタマイズと、プロとして責任ある納品を行うためのスキルを習得します。

上級編のゴール:納品できる「品質」と「安心」を作る

本講座では、中級編で制作したサイトをベースに、以下の「プロの必須スキル」を実装していきます。

  1. 脱・SWELL依存のCSSカスタマイズ
    • 「検証ツール」を使いこなし、テーマ設定にない細部を自分でデザインする力。
  2. ACF(カスタムフィールド)によるCMS化
    • クライアントが絶対にレイアウトを崩せない、専用の入力画面を作る技術。
  3. 「守り」と「攻め」の最終調整
    • 表示速度の高速化、強固なセキュリティ、そしてSEOの内部対策。
  4. 安全確実な「納品」フロー
    • テスト環境から本番環境への移行(サーバー移転)と、公開直後のチェックリスト。

これらは、SWELLに限らず、WordPressを使って仕事をするなら一生モノの知識となります。

中級編で作ったサイトが「100点の見た目」だとしたら、上級編で目指すのは「120点の使いやすさと信頼性」です。 ここを乗り越えれば、あなたはもう「初心者」ではありません。「Web制作者」としての看板を掲げる準備は整います。

さあ、最後の総仕上げに取り掛かりましょう!

目次

【脱初心者】検証ツールとCSSで「あと1mm」をこだわる

SWELLは非常に高機能ですが、実際の案件では「ヘッダーの高さをあと5px縮めたい」「このページだけ背景色を変えたい」といった、設定画面にはない要望が出ます。
これに対応するために必須なのが、ブラウザの「検証ツール(デベロッパーツール/DevTools)」です。

必須スキル「検証ツール」の使い方

Google Chromeを使っている前提で解説します。

💡 このセクションのゴール

デザインを変えたい部分の「名前(クラス名)」を調べて、WordPressの「追加CSS」でデザインを上書きする流れをマスターします。

  1. 検証ツールを開く
    • Webサイト上の調べたい要素(今回は「必須」ラベル)の上で 右クリック > 「検証」 を選択します。
      (またはショートカットキー F12 または Cmd + Option + I
WordPressサイトのトップページを表示しながら、ChromeのデベロッパーツールでHTMLとCSSのコードを検証している画面。
画面右側(または下)に出てくるのが検証ツールです。
  1. 矢印アイコンで「要素」を選択する
    • 検証ツールの左上にある「矢印マークのアイコン」をクリックしてONにします(アイコンが青くなります)。
    • その状態で、サイト上の「色を変えたい場所(例:ステップ番号)」をクリックしてください。
      すると、検証ツールの中で「その部分のHTMLコード」が自動的に青く選択されます。
Chromeデベロッパーツールの「要素を選択」モードが強調されており、マウスホバーでHTML要素を検査できることを説明している。
デベロッパーツールで「確認画面へ」ボタンのスタイルやアクセシビリティ情報を確認しているポップアップ表示。
  1. クラス名(セレクタ)を特定する
    • 青く反転しているコードの中に class="..." という部分があります。これが、その要素につけられた「名前」です。
    • 今回は、一番目立つ「送信ボタン(確認画面へ)」を調べたとしましょう。smf-action や smf-button-control__control といったクラス名が見つかります。これをコピーします。
HTMLコード内でsmf-button-control__controlクラスが付与された送信ボタンが強調され、フォームの一部として表示されている。
  1. WordPressの「追加CSS」に記述する
    • WordPress管理画面の 「外観」>「カスタマイズ」>「追加CSS」 を開きます。
    • ここに先ほどコピーしたクラス名を貼り付け、CSSを書いてみましょう。カスタマイザーの良いところは、コードを書くとリアルタイムで右側のプレビュー画面に反映される点です。

「Styles」タブを見ることで、「現在どのCSSが効いているか」が一目瞭然です。ここで数値を書き換えてテストし、うまくいったコードをWordPressの「追加CSS」にコピペする。これがカスタマイズの基本フローの一つです。

実践カスタマイズ(Snow Monkey Forms編)

実際にStudio Hakuのお問い合わせフォームを例に、「送信ボタン」のデザインを、サイトのテーマカラー(#4A564F)に合わせてリッチに変更してみましょう。

以下のコードを「追加CSS」に記述し、プレビュー画面でボタンが劇的に変わるのを確認してください。

/* 1. 送信ボタン(確認画面へ・送信する) */
.smf-button-control__control[type="submit"] {
    background: var(--color_main) !important;
    
    color: #fff !important;
    border-radius: 80px;
    padding: 12px 48px;
    border: none !important;
    font-weight: bold;
    cursor: pointer;
    transition: opacity 0.3s, transform 0.2s;
		letter-spacing: .2em;
		text-indent: .2em;
    
    /* サイズ感調整 */
    width: 100%;
    max-width: 300px;
    display: block;
    margin: 0 auto;
}

/* 送信ボタンのホバー時 */
.smf-button-control__control[type="submit"]:hover {
    opacity: 0.85;
    transform: translateY(-2px);
}

/* 2. 戻るボタン(背景透明・枠線あり) */
.smf-button-control__control[data-action="back"] {
    background: transparent !important;
    color: #555 !important;
    border: 1px solid #ccc !important;
    box-shadow: none !important;
}

/* 戻るボタンのホバー時 */
.smf-button-control__control[data-action="back"]:hover {
    background: #f5f5f5 !important;
}
左側に角ばった従来のボタン、右側に丸みを帯びたカスタムスタイルのボタンがあり、スタイル変更のビフォーアフターが示されている。

いかがでしょうか?地味だったボタンが、一気に「押したくなるボタン」に生まれ変わりました。
「検証ツールでクラス名を探す → 追加CSSで書いて確認する」という流れさえ掴めば、どんなプラグインも自由にデザインできます。

【重要】追加CSSの注意点

ここで「追加CSS」に記述したコードは、サイト内の全ページで読み込まれます。
そのため、もし他のページにも同じクラス名が使われていた場合、そちらのデザインも意図せず変わってしまいます。

「お問い合わせページだけ変えたい」「この投稿だけ特別なデザインにしたい」という場合は、固定ページ下部の「CSS用コード」機能を使うのが正解のひとつです。

▼ CSSに関する注意点、特定のページだけCSSを適用する方法はこちら

Snow Monkey Formsだけでなく、Contact Form 7、SWELLボタンのCSSについては以下の記事で詳しく解説していますので、ぜひ読んでみてください!

【CMS化】ACFで「クライアントが壊せない」更新環境を作る

ここが上級編の最大の目玉です。
中級編では「投稿のブロックエディタ」を使って実績ページを作りました。しかし、クライアントに納品後、「操作を誤ってレイアウトを崩してしまう」というリスクがあります。

入力を「枠」に入れるだけで、デザインされたページが自動生成される。

これを作るために、プラグイン「Advanced Custom Fields (ACF)」を導入します。

ACFの導入とフィールド作成

  1. プラグインをインストール
    「プラグイン」>「新規追加」で「Advanced Custom Fields」を検索し、インストール・有効化します。
WordPressプラグイン「Advanced Custom Fields」のインストール画面で、「今すぐインストール」ボタンが強調されている。
  1. フィールドグループを作成
    左メニュー「ACF」>「フィールドグループ」>「新規追加」をクリック。
    タイトルを「制作実績情報」とします。
WordPress管理画面のACFメニューが展開され、「フィールドグループ」「投稿タイプ」などの各項目が表示されている。
「フィールドグループ」一覧画面に表示された「+新規追加」ボタンが示されており、新しい項目の作成が可能であることを示している。
ACFで「新規フィールドグループを追加」と入力するフィールドが表示され、グループの名称を入力できる状態になっている。
  1. フィールドを追加する
    以下の3つの項目を作成しましょう。
フィールドタイプフィールドラベルフィールド名
テキストクライアント名client_name
番号制作年work_year
URLサイトURLsite_url
ACFのカスタムフィールド設定画面で、フィールドタイプが「URL」、ラベルが「サイトURL」、フィールド名が「site_url」に設定されている。
  1. 表示条件の設定
    • 投稿カテゴリー」「等しい」「制作実績」に設定します。
      これで、実績投稿の時だけ、エディタの下に入力欄が出現します。
ACFのロケーションルール設定画面で、「投稿カテゴリー」が「制作実績」と等しい条件のときにフィールドグループを表示する設定がされている。
  1. 変更内容を保存」ボタンを忘れずに!

出力用の「自作ショートコード」を作る

⚠️ 重要な変更点

以前はACF標準のショートコード [acf field="..."] が使えましたが、Ver 6.2.5以降のセキュリティ強化により、デフォルトでは使用できなくなりました。
そこで、今回は「Code Snippets」プラグインを使って、安全に値を呼び出す自作ショートコードを作成します。

  1. Code Snippetsの導入
    • プラグイン「Code Snippets」をインストール・有効化してください。
      これは、functions.php を直接編集せずに、安全にPHPコードを追加できる便利なプラグインです。
  2. コードの登録
    • 左メニュー「スニペット」>「新規追加」をクリックし、ショートコード名を「ACFショートコード」とし、説明へ「[my_acf field="〇〇"]にて展開」と入力します。
    • 以下のコードを貼り付けて「Save Changes and Activate」をクリックします。
// ACFの値を表示する自作ショートコード
// 使い方:[my_acf field="フィールド名"]

function my_acf_shortcode_func( $atts ) {

  $atts = shortcode_atts(
    array(
      'field' => '',
      'link'  => 'auto', // auto | yes | no
      'text'  => '',     // リンク表示テキスト(空ならURLそのまま)
      'target'=> '',     // _blank など
      'rel'   => '',     // noopener noreferrer など
    ),
    $atts
  );

  if ( empty( $atts['field'] ) ) {
    return '';
  }

  $value = get_field( $atts['field'] );

  if ( empty( $value ) ) {
    return '';
  }

  $url = '';
  if ( is_array( $value ) ) {
    // ACF Link フィールド想定: ['url'] ['title'] ['target']
    $url = isset($value['url']) ? $value['url'] : '';
    if ( empty($atts['text']) && !empty($value['title']) ) {
      $atts['text'] = $value['title'];
    }
    if ( empty($atts['target']) && !empty($value['target']) ) {
      $atts['target'] = $value['target'];
    }
  } else {
    $url = (string) $value;
  }

  $is_url = filter_var( $url, FILTER_VALIDATE_URL );

  // link=auto のときはURLっぽければリンク化
  $should_link =
    ( $atts['link'] === 'yes' ) ||
    ( $atts['link'] === 'auto' && $is_url );

  if ( $should_link && $is_url ) {
    $text   = $atts['text'] !== '' ? $atts['text'] : $url;
    $target = $atts['target'] !== '' ? ' target="' . esc_attr($atts['target']) . '"' : '';
    $rel    = $atts['rel'] !== '' ? ' rel="' . esc_attr($atts['rel']) . '"' : '';
    return '<a href="' . esc_url( $url ) . '"' . $target . $rel . '>' . esc_html( $text ) . '</a>';
  }

  // 通常テキストとして返す
  if ( is_array( $value ) ) {
    // 配列の場合は最低限 title を優先、なければ url
    $fallback = !empty($value['title']) ? $value['title'] : $url;
    return esc_html( $fallback );
  }

  return esc_html( $value );
}

add_shortcode( 'my_acf', 'my_acf_shortcode_func' );

トグルがオンになっていればOKです!
(不要なデフォルトショートコードは”Trash”にて削除しておきましょう。)

SWELLブログパーツでテンプレートを作る

自作ショートコードができたので、あとはSWELLの「ブログパーツ」で出力用テンプレートを作るだけです。

  1. ブログパーツの新規作成
    • 「ブログパーツ」>「新規追加」で、タイトル「実績詳細テンプレート」を作成します。
  2. ショートコードで値を呼び出す
    • ACFの値を表示するショートコード[my_acf field="フィールド名"] を使って、以下のようなテーブルブロックを作成します。
      • クライアント:[my_acf field="client_name"]様
      • 制作年:[my_acf field="work_year"]年
      • URL:[my_acf field="site_url"]
実績詳細テンプレート内でACFショートコードを使い、「client_name」「work_year」「site_url」の値が自動で展開されることを示している。
ブログパーツ編集画面

実際に投稿して確認する

準備は整いました!実際に制作実績を投稿して、魔法のような挙動を確認しましょう。

  1. 「制作実績」の投稿を編集(新規追加でも構いません)
  2. カテゴリーを選択(重要!):
    新規投稿の場合は、カテゴリー「制作実績」にチェックを入れます。
    ※STEP 1の表示条件により、チェックを入れるとACFの入力欄が出現します。
  3. カスタムフィールドに入力:
    編集画面エディタの下の方(またはサイドバー。カスタムCSS&JSなどの入力欄がある部分です。)に「制作実績情報」というパネルが出現しています。
    ここにクライアント名やURLを入力します。
    ※ここに入力したデータが、ショートコードを通じて自動的に表示されます。
WordPress投稿画面で「制作実績」カテゴリーが選択され、ACFのカスタムフィールドにクライアント名・制作年・サイトURLが入力されている。
  1. テンプレートを呼び出し:
    本文エリアに、STEP 3で作ったブログパーツ「実績詳細テンプレート」を配置します。

これで公開ボタンを押して記事を見てみてください。
本文に文字を直接打ち込まなくても、入力したデータが綺麗にデザインされて表示されているはずです。

クライアント名・制作年・URLを表示するテンプレート内にACFショートコードが記述され、フィールド展開前の状態が表示されている。

ACFのカスタムフィールドに入力された「今北産業」「2008年」「https://google.com/」が、ショートコードを介してページ上に展開表示されている。

この手法なら、クライアントは「文字を入れるだけ」で済み、操作ミスでデザインが崩れる心配もありません。
しかも、出力されるデザイン自体はSWELLの機能でリッチに作り込めるため、「管理のしやすさ」と「デザインの自由度」を両立できます。まさにプロの仕事です!

【プロの隠し味】安全に記事を修正する神プラグイン

納品後、クライアントからよくある相談が「公開中のページを、表示を崩さずに裏側で修正したい」というものです。
これを叶えるのがプラグイン「Yoast Duplicate Post」です。

Yoast Duplicate Postプラグインの紹介で、投稿やページの複製機能があり、再公開機能にも対応していることが説明されている。

単なる「記事複製」プラグインだと思われがちですが、実は「書き換え & 再公開(Rewrite & Republish)」という機能が最強です。
これを使うと、「公開中の記事を複製して下書き化」→「修正」→「ボタン一つで公開中の記事に上書き(差し替え)」が可能です。

※投稿記事だけでなく、企業サイトの「会社概要」や「料金表」など、一時的にも表示を消したくないページの改修で重宝します。ご相談時にスッと提案できると「分かってるね!」と言われるプラグインです。

WordPressの「Duplicate Post」プラグイン設定画面で、特定のユーザー権限や投稿タイプに対する複製許可の細かい設定が行われている。
「これも複製できないかな?」と思ったら、設定を確認しましょう。
Duplicate Postプラグインで「歓迎のお知らせ」を表示するかどうかのオプションがチェックボックスで表示されている。
「表示」タブ。不要な表示はオフにしておきましょう。

【品質管理】サイトの表示速度とSEO内部対策

納品前に必ずチェックすべき「品質」の部分です。特に「表示速度」はGoogleの評価にも直結します。

プロの画像管理術(ファイル名とAltテキスト)

意外と見落とされがちなのが、画像の扱い。納品後のサイトが画像検索に載るか、SEOで評価されるかはここにかかっています。

1. ファイル名は「内容がわかる英語」に

Googleは公式に「ファイル名は画像の内容を判断する重要な手がかりになる」と明言しています。内容を表す英語名にリネームしてからアップするのが鉄則です。

❌ 悪い例:IMG_0001.jpg(何かわからない) 
⭕️ 良い例:my-new-black-kitten.jpg(黒い子猫だとわかる)

2. Altテキスト(代替テキスト)は「説明的」に

Googleのガイドラインでは、キーワードの詰め込みを避け、画像を見なくても内容が想像できるような記述を推奨しています。

【避けるべき】キーワードの詰め込み
「ダルメシアン 子犬 犬 飼い主 散歩 おもちゃ 餌…」

※スパムと見なされ、逆効果になる可能性があります。

【推奨】説明的で有用なテキスト
「取ってこいをして遊ぶダルメシアンの子犬」

※画像を見なくても内容が想像できるのがベストです。

Googleは、アクセシビリティ(読み上げソフトを利用するユーザー)と、画像検索エンジンへの理解の両面でAltテキストの入力を強く推奨しています。

(参照:Google 画像検索 SEO ベスト プラクティス

 さらに表示速度を追求するなら

画像形式を次世代フォーマット「WebP(ウェッピー)」に変換することで、画質を維持したままデータ量を大幅に軽量化できます。特にSEOに配慮した案件では必須の対応です。

SWELL「高速化設定」の正しい歩き方

SWELLは元々爆速ですが、設定を間違えると不具合の原因になります。安全かつ効果的な設定例を紹介します。

管理画面 > 「SWELL設定」 > 「高速化」

  • キャッシュ機能: 基本的には「デフォルト(初期設定)」のままで十分高速です。
    さらなる高速化を目指して「ヘッダー」や「サイドバー」などのキャッシュをONにする場合は、デザイン変更時に反映されないことがあるため、必ずこまめに「キャッシュクリア」を行う癖をつけましょう。
  • 遅延読み込み機能: 画像(Lazyload)はON。「スクリプトの遅延読み込み」は上級者向けなので、不具合が起きたらOFFにしてください。

SEOプラグインの深掘り(XMLサイトマップの導入)

SEO対策として「SEO SIMPLE PACK」を入れていると思いますが、このプラグインには「XMLサイトマップ(検索エンジン用サイトマップ)」を生成する機能がありません。
WordPress標準のサイトマップ機能もありますが、プロとして細かい制御を行うために専用プラグインを導入します。

プラグイン:XML Sitemaps(旧 Google XML Sitemaps)

これをインストール・有効化するだけで、Googleに「サイトの構造」を正しく伝えるXMLファイルが自動生成されます。

「XML Sitemap & Google News」プラグインの紹介。WordPressのコアXMLサイトマップの管理と、Googleニュースサイトマップの追加が可能なプラグイン。
  1. サイトマップの有効化:
    「設定」>「表示設定」から、XMLサイトマップインデックスを有効化します。
WordPress管理画面の「表示設定」画面で、検索エンジンへのインデックス設定や、XMLサイトマップインデックスの有効化が行える設定画面。
  1. 設定のポイント:
    「設定」>「XMLサイトマップ」から、「一般」タブの「サーバー」をプラグインにし、「投稿者」を無効化します。
WordPress管理画面の設定メニューで、「XMLサイトマップ」など複数の設定項目が表示されている。XML Sitemapプラグインの導入によりメニュー項目が追加されている。
XMLサイトマッププラグインの「一般」設定画面。サーバーを「プラグイン」に設定し、「投稿者」タイプのサイトマップを無効にするチェックボックスなどが確認できる。
  1. 優先順位の設定について:
    「優先順位(priority)」という設定項目がありますが、現在のGoogleはこの数値を無視する仕様になっているため、デフォルト(空欄)のままで変更しなくてOKです。
  2. サイトマップ生成の確認:
    • 「設定」>「表示設定」に戻り、サイトマップを表示してみましょう。サイトマップページが表示されれば、問題なく生成されています!
WordPressのXMLサイトマップ設定画面で、XMLサイトマップインデックスの有効化オプションがチェックされ、設定リンクと表示リンクが表示されている。
ブラウザで表示されたXMLサイトマップのインデックスページで、投稿・固定ページ・カテゴリーの各サイトマップファイルと最終更新日時が一覧表示されている。

プロなら見逃さない!スラッグとディスクリプションの設定

意外と忘れがちなのが、記事ごとの「URL(スラッグ)」と「説明文(メタディスクリプション)」の設定です。
ここが適当だと、せっかく良いサイトを作っても「素人っぽい」と思われてしまいます。

URLスラッグは必ず「半角英数字」に

記事タイトルを入力したままだと、URLが日本語(例:/会社概要)になります。
日本語URLは、SNSやメールで共有した際に %E3%81%... のように記号化され、めちゃくちゃ長い怪しいリンクに見えてしまいます。

❌ NG:studio-haku.com/会社概要
⭕️ OK:studio-haku.com/company

設定場所:投稿画面の右側サイドバー「URL」をクリックして変更します。
※固定ページだけでなく、投稿記事も /news-open のように英語にするのがマナーです。

メタディスクリプションは「クリック率」と「SNS」のために

「検索順位には直接影響しない(Google公式見解)ため、SEO効果はない」と誤解されがちですが、プロは必ず設定します。
理由は以下の2点です。

  • 検索結果のクリック率(CTR)を上げる:
    順位が同じでも、魅力的な説明文があるかどうかでクリックされる確率は変わります。
  • SNSシェア時の表示(OGP):
    Googleは説明文を勝手に書き換えることがありますが、SNS(XやLINE)でシェアされた時は、ここに入力した文章が100%使われます。

設定場所:記事編集画面の下部、「SEO SIMPLE PACK設定」>「このページのディスクリプション」に入力。
(PC検索結果で表示される120文字前後を目安に、記事の要約を入力しましょう)

WordPressの投稿編集画面で、SEO SIMPLE PACKの「このページのディスクリプション」入力欄が赤枠で示されている。編集画面の下部に位置している。

SEOプラグインの深掘り(noindex活用)

「SEO SIMPLE PACK」を使っていると思いますが、重要なのは「インデックスさせないページ」の設定です。

これらは「noindex」に設定しよう!
  • お問い合わせ完了画面(Thanksページ): 検索結果に出てくる必要がありません。
  • タグ一覧ページ: カテゴリーと重複しやすいため、運用しないなら「設定」>「SEO PACK」>「タクソノミーアーカイブ」で「インデックスさせない」を推奨。

※プライバシーポリシーについて
以前は「他サイトと内容が重複するためnoindex推奨」という説もありましたが、現在は「サイトの信頼性を示す重要なページ」としてインデックスさせることが一般的です。

【実務の守り】セキュリティとバックアップの鉄壁化

「作って終わり」ではありません。クライアントの大切な資産を守る設定を施します。

【玄関を守る】XO Security の推奨設定

まずは管理画面への侵入を防ぐため、プラグイン「XO Security」を導入します。
インストールするだけでなく、以下の設定を必ず確認・有効化してください。

✅ XO Security 推奨設定リスト

主な推奨設定には以下のようなものがあります。
詳細設定はタブにスクリーンショットをまとめていますので、設定の参考にしてください。(設定変更の保存は、タブごとに実施してください!)

  • ログイン試行回数制限(「ログイン」タブ)
    • 「〇時間に○回失敗したらロックする」という設定です。総当たり攻撃(ブルートフォースアタック)を強力に防ぎます。
  • ログインURL変更(「ログイン」タブ)
    • デフォルトの /wp-admin は攻撃の的です。推測されにくいURLに変更し、保存後に必ずブックマークしてください。
  • ログインフォームのCAPTCHA設定
    • 海外からの不正ログイン試行は意外に多いものです。「ひらがな」という、世界的には超マイナーな文字をCAPTCHAに使用することで、強力に防ぎます。
  • XML-RPC無効化(「XML-RPC」タブ)
    • 外部ツールからの投稿機能を使わない限り「無効化」推奨です。攻撃の踏み台にされるのを防ぎます。
XO Securityプラグインの設定画面で、ログイン試行回数制限や応答遅延、ログインページ変更などの項目が表示されている。
XO Securityプラグインのログインフォーム設定で、CAPTCHAの形式として「ひらがな」が選択されている画面。

REST API の無効化について(プロの心得)

セキュリティ対策として「REST APIの無効化」が推奨されることがありますが、フォームプラグイン(Contact Form 7 やSnow Monkey Formsなど)はメール送信にREST APIを使用しているため、「全て無効化」するとお問い合わせ機能が停止します。

 推奨される設定アプローチ

  • 「全て無効」にはせず、「ユーザー情報の取得(/wp/v2/users)」など、秘匿に関わる部分だけをピンポイントでオフにします。
  • プラグインのバージョンアップ等で設定が競合する可能性もあるため、設定変更後は必ず入念な動作チェック(送受信テスト)を行ってください。

💡 トラブルシューティングの知識として
もし将来、「フォームの送信ボタンがくるくる回ったまま動かない」といった不具合が発生した際、すぐに「REST APIの設定や制限が影響していないか?」を疑える知識を持っておきましょう。これがプロと素人の違いです。

お問い合わせフォームの不具合は、クライアントの機会損失(売上ダウン)に直結する重大な事故です。
プラグインの更新で仕様が変わることもあるため、定期的な動作チェックが必要です」と伝えれば、保守契約(メンテナンス契約)の重要性をクライアントに理解してもらう良いきっかけにもなります。

【攻撃を弾く】BBQ Firewall の導入

プラグインレベルでの防御に加え、URLリクエストなどによる攻撃(SQLインジェクションなど)を防ぐために、簡易ファイアウォールを導入します。

プラグイン:BBQ Firewall (Block Bad Queries)

このプラグインは、「インストールして有効化するだけ」で機能します。設定画面すらありません。
非常に軽量でありながら、悪意のあるリクエストを自動的に検知してブロックしてくれる、XO Securityとの相性が抜群のプラグインです。

※難しい設定をしたくないけれど、最低限のWAF(Web Application Firewall)機能は欲しい、という場合に最適です。

「もしも」に備える自動バックアップ

サーバー側のバックアップだけでなく、WordPress側でもバックアップを取ります。
今回は、バックアップ機能とサーバー移行(引越し)機能が1つになった万能プラグイン「WPvivid Backup & Migration」を使用します。

WordPress用バックアップ・移行プラグイン「WPvivid Backup & Migration」のロゴと概要が表示されている。

💡 WPvividを採用する理由
従来はバックアップに「UpdraftPlus」、移行に「All-in-One WP Migration」と使い分けるのが主流でしたが、WPvividならこれ1本で完結します。
無料でGoogle Driveへの自動保存ができ、容量制限も緩いため、プロの現場でも採用率が急増しているプラグインです。

自動バックアップのスケジュール設定

まずは、勝手にバックアップが取られるようにスケジュールを設定しておきましょう。これだけで最低限の保険になります。

  1. プラグインを有効化したら、「スケジュール」タブを開きます。
  2. 「バックアップの有効化」にチェックを入れます。
  3. 頻度は「毎週(Weekly)」を選択し、一番下の「変更を保存」をクリック。
WPvividプラグインの「設定」タブ内「一般設定」画面で、バックアップの保存数が「6」に設定されている様子。
  1. 「設定」タブから、バックアップの保持数を「6」に設定します。
WPvividプラグインの「スケジュール」設定画面で、バックアップスケジュールが有効化され「毎週」に設定されている様子。
  1. 一番下の「変更を保存」をクリック。
【プロの運用術】バックアップ頻度の目安

サイトの更新頻度や保守契約の内容によって、最適なスケジュールは変わります。

  • 更新が少ないコーポレートサイト:
    • 「2週間に1回」や「月1回」でも十分な場合があります。
  • ブログや新着情報が多いサイト:
    • 無料プランで一ヶ月以上データを保持できる「毎週」がおすすめ。更新データが消えるリスクを減らします。

💡 重要なのは「チェックのタイミング」
もしクライアントと「月1回の保守点検」を契約している場合、バックアップが「最新の2週間分」しか残っていなかったら、点検時に発覚した不具合を復旧できない可能性があります。
「最低でも前回の点検時(1ヶ月以上前)のデータが確実に残っている状態」になるよう、頻度と保持数を計算して設定しましょう。

※この設定なら、データが増え続けてサーバー容量を圧迫する心配なく、長期的なバックアップ運用が可能です。

手動バックアップとダウンロード(納品用)

納品時や大きな変更の前には、手動でバックアップを取り、そのデータをPCにダウンロードして保管します。

  1. 「バックアップ&復元」タブを開きます。
  2. 「保存先:ローカル(Local)」が選択されていることを確認し、「バックアップ」をクリック。
WPvividの「バックアップ&復元」タブで、手動バックアップのオプションが選択され「バックアップ」ボタンが強調表示されている画面。
  1. 処理が完了するとページ下部にバックアップファイルが表示されます。
  2. 必ず「ダウンロード」ボタンを押して、「ダウンロード」タグに表示される全てのバックアップファイルを自分のPCに保存してください。
    • 保守契約を結ばない単発案件の場合は、情報保護の観点から納品時バックアップファイルはクライアントに提出し、手元のファイルは削除しましょう。
    • サーバー内に置いておくだけでは、サーバー自体がダウンした時に復旧できません。PCにも持っておくのが鉄則です。
実行済みのバックアップ一覧から、該当のバックアップ(42.21MB)を「ダウンロード」できる画面。
ダウンロードタブで、個別のバックアップファイル(.zip形式)のダウンロードリンクが表示されている状態。「複数ある場合はすべてダウンロード」との注釈付き。

【実務の最終工程】テスト環境から本番環境への移行(お引越し)

いよいよラストステップ。制作環境で作ったサイトを、本番環境へ移行(リリース)します。
本章で導入した「WPvivid」には、面倒なファイルのダウンロード・アップロードを省略し、サーバー同士で直接データを転送する「自動移行」機能があります。これを使えば、驚くほどスムーズに納品作業が完了します。

作業前の重要チェック(必ず読んでください)

セキュリティ機能がデータ転送をブロックしてしまい、エラーになるケースがあります。
移行作業を行う一時的な間だけ、以下の設定を無効化(停止)してください。

  • セキュリティプラグイン(XO Security, SiteGuardなど)を一時的に「無効化」
  • キャッシュプラグイン、リダイレクト系プラグインを「無効化」
  • (うまくいかない場合)サーバー側のWAF(Web Application Firewall)を一時的に「OFF」

※移行作業が完了したら、必ず元の設定(有効/ON)に戻してください。

WPvividプラグインのメモ欄に表示される注意書き。301リダイレクト・セキュリティ・キャッシュ系プラグインは移行前に無効化を推奨。Local by Flywheel 使用時は手動移行が必要。
プラグインに記載の注意事項。
  1. 移行を正常に完了させるためには、ウェブサイトを転送する前に、301リダイレクトプラグイン、ファイアウォールおよびセキュリティプラグイン、キャッシュプラグイン(存在する場合)を無効化することをお勧めします。
  2. Local by Flywheel環境を使用している場合は、手動でウェブサイトを移行してください。

WPvividを使った自動移行手順

STEP
準備

【移行元(制作環境)】と【移行先(本番環境)】の両方のWordPressに、WPvivid Backup & Migrationをインストール・有効化しておきます。

STEP
【移行先】キーを生成する

まず、データを受け取る側(本番環境)で「合言葉」のようなキーを発行します。

  1. 本番環境のWPvividを開き、「キー(Key)」タブをクリックします。
  2. 「生成(Generate)」ボタンをクリックします。
  3. 長い文字列(キー)が表示されるので、すべてコピーします。
WPvividの移行機能で本番環境から認証キーを発行し、他のサイトからの転送を許可する設定画面。
STEP
【移行元】キーを保存する

次に、データを送る側(制作環境)にキーを登録します。

  1. 制作環境のWPvividを開き、「自動移行」タブをクリックします。
  2. 入力欄に、先ほどコピーしたキーを貼り付けます。
  3. 「保存(Save)」をクリックします。
自動移行タブの画面。受信先(本番環境)で生成されたキーを、送信元サイト側に貼り付けて接続準備をするステップ。「Save」ボタンで接続を確定。
STEP
【移行元】データを転送する

接続が成功すると、転送内容を選択する画面になります。

  1. 接続が成功すると、転送内容を選択する画面になります。
  2. 「データベース + ファイル(WordPress全体)」を選択します。
  3. 「Clone then Transfer」ボタンをクリックします。
  4. プログレスバーが動き出し、データの転送が始まります。
    ※環境によりますが、数分〜十数分程かかります。画面を閉じずに待ちましょう。
WPvividの自動移行設定で「Clone then Transfer」を実行する前の確認画面。「データベース + ファイル」を選択して転送内容を指定し、有効なキーで本番環境へ接続完了している。
WPvividプラグインの自動移行進行中画面。転送が開始されており、バックアップファイル(テーマなど)の転送進捗が14%で表示されている。
移行中の画面
【超重要】データ上書きに関する注意点

このあとの復元作業を行うと、本番環境(移行先)のデータベースは、制作環境(移行元)の内容で「完全に上書き」されます。
これに伴い、以下の2点に注意が必要です。

  1. ログイン情報も上書きされます
    • 本番サーバー契約時に発行された初期ユーザーや、クライアントが用意してくれた管理者アカウントは消滅し、「制作環境で使っていたID・パスワード」しか使えなくなります。
    • 解決策:
      制作環境(移行元)の方に本番用の管理者アカウントが無い場合、移行前にあらかじめ作成しておくのがスマートです。そうすれば、移行後すぐにそのアカウントでログイン・納品が可能です。
  2. リニューアル案件の場合は要注意!
    • 「新規立ち上げ」ではなく「既存サイトのリニューアル」の場合、作り方によってリスクが異なります。

ケースA:ゼロから作り直した「完全リニューアル」の場合
【危険度:大】

制作環境に過去のデータが入っていない状態で上書きすると、本番サイトで長年積み上げた「過去のブログ記事」や「既存のユーザーアカウント」が全て消滅します。
記事資産を引き継ぐ場合は、前もって入念な調査と対応に関する打ち合わせが不可欠です。

ケースB:既存サイトをコピーして改修した場合
【危険度:中】

既存サイトを土台にしているため基本的には問題ありませんが、「コピー(ダウンロード)してから、アップロードするまでの空白期間」に本番サイトで更新された内容は消えてしまいます。
制作期間中は本番側の更新を止めてもらうか、更新分を手動で反映するなどの連携が必要です。


🛡️ 万が一のための「命綱」を用意しよう
次の復元(STEP 4)を実行する前に、移行先(本番環境)の方でも「バックアップ」を取っておきましょう。
そうすれば、もしデータが消えてしまっても、そのバックアップから復元することで、作業前の状態に完全に戻すことができます。

STEP
【移行先】復元を実行する

転送が完了したら、本番環境に戻ってデータを復元します。

  1. 本番環境のWPvividを開き、「バックアップ&復元」タブを見ます。
  2. 画面下に、転送されたバックアップファイルが表示されているはずです。
    ※表示されていない場合は「アップロードまたは受信したバックアップをスキャン」をクリックしてください。
  3. 「復元」ボタンをクリックし、確認画面で「OK」を押して実行します。
WPvividで自動移行されたバックアップファイルが表示され、復元操作が可能な状態になっている管理画面。
STEP
ログインと確認

復元が完了すると自動的にログアウトされます。

  • ログインID・パスワードは「制作環境のもの」に上書きされています。制作環境と同じ情報でログインしてください。
  • 「設定」>「パーマリンク」を開き、何も変更せずに「変更を保存」をクリックしてURL構造を更新します。
  • 一時停止していたセキュリティプラグインやWAFを再度「有効」に戻します。

公開直後の「納品チェックリスト」

公開したら終わりではありません。最低でも以下の3点を必ず確認してください。

  • 「検索エンジンがインデックスしない」のチェックを外しましたか?
    「設定」>「表示設定」にあります。制作中はチェックを入れていますが、公開時にこれを外し忘れると、Google検索に一生載りません。 Web制作者最大のミスNo.1です。
  • お問い合わせフォームの送受信テスト
    本番環境でもメールは届きますか?自動返信は機能していますか?
  • 解析ツールの設置
    Google Analytics / Search Consoleのタグは設置しましたか?(SEO SIMPLE PACKの設定画面などに入力)
【補足】解析ツールの連携について

GA4(Google Analytics)やSearch Consoleのアカウント作成手順は省略しますが、SWELL環境(SEO SIMPLE PACK)での連携は非常に簡単です。

「SEO PACK」>「一般設定」>「Googleアナリティクス」タブなどを開き、発行された「測定ID(G-xxxx)」を入れるだけで設定完了です。

WordPressの設定画面で、GoogleアナリティクスGA4用のMeasurement ID入力欄が赤枠で強調されている。
GA4のコード入力欄。
WordPressのウェブマスターツール設定で、Googleサーチコンソールの認証コード入力欄が赤枠で示されている。
Search Console のコード入力欄。

複雑なタグをヘッダーに埋め込んだり、サーバーで設定したりする必要はありません。

おわりに:Web制作者として生きていくあなたへ

上級編、完走おめでとうございます!
ここまでの内容を理解し、実践できたあなたは、もう「SWELLを使ってみた初心者」ではありません。
「セキュリティ」「更新性」「SEO」まで考慮した、高品質なWebサイトを納品できるプロの制作者です。

今回制作した「Studio Haku」は、ぜひあなたのポートフォリオ実績として掲載してください。
「ACFで更新しやすい環境を作りました」「セキュリティ対策も万全です」という言葉は、プロに頼む理由として最強の殺し文句になります。

さあ、自信を持って営業に行きましょう。
あなたのスキルを待っているクライアントが、必ずいます。

シリーズを通して学習いただきありがとうございました!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次