2026年8月25日

2026年8月25日

WordPressでニュースレターサイトを構築する方法(登録フォーム・配信・到達率対策)

WordPressでニュースレターサイトを作るときは、「WordPressは登録受付と過去号の公開を担い、メールの送信は到達率を管理できる仕組みに任せる」という分担で考えるとうまくいきます。この記事では、配信方式の選び方、ダブルオプトインの登録フォーム、過去号アーカイブの作り方、SPF・DKIM・DMARCによる到達率対策、法令面の注意点までを順に説明します。読み終えるころには、自分のサイトに合った構成を決めて、最初の号を送る準備ができるはずです。

全体の構成を先に決める

ニュースレターサイトの機能は、大きく次の4つに分かれます。

  • 読者の登録受付(フォーム、確認メール、登録解除)
  • 購読者リストの保管
  • メールの作成と配信
  • 過去号のWeb公開(アーカイブ)

このうち「配信」をどこで行うかで構成が変わります。選択肢は主に2つです。

方式 向いているケース 注意点
外部の配信サービスと連携する 購読者が多い、到達率を重視する、配信の解析も欲しい 月額費用がかかることが多い。購読者データが外部に置かれる
WordPress内で配信するプラグインを使う 購読者が少なめ、費用を抑えたい、データを手元に置きたい 送信はサーバーやSMTPの設定に依存し、到達率の管理は自分の責任になる

外部サービスの場合、WordPressには登録フォームだけを置き、購読者リストと配信はサービス側で管理します。多くのサービスが埋め込みフォームやWordPress用の連携プラグインを用意しています。

WordPress内で完結させる場合は、MailPoet や Newsletter といったニュースレター用プラグインが候補になります。どちらも長く提供されているプラグインですが、無料で使える範囲、送信数の上限、有料プランの内容は変わることがあるため、導入前に公式ページで確認してください(2026年10月現在の情報も、更新で変わる可能性があります)。

迷ったら、購読者が数百人程度までならプラグイン、それ以上や到達率に不安がある場合は外部サービス、と考えると判断しやすくなります。

送信ドメインとSMTPを整える

どちらの方式でも、最初に整えるべきなのは「送信元として信頼されるドメイン」です。WordPressの標準のメール送信(wp_mail())は、設定を変えなければサーバーのメール送信機能をそのまま使います。共用サーバーから大量に送ると、迷惑メール扱いになったり、サーバー会社の送信数制限に引っかかったりしがちです。

プラグインで配信する場合は、SMTP接続や配信サービスのAPIを経由して送るように設定します。送信元アドレスは、サイトと同じドメインのアドレス(例: news@example.com)にしてください。フリーメールのアドレスを差出人にすると、認証が通らず届きにくくなります。

SPF・DKIM・DMARCを設定する

到達率を左右するのが、DNSに登録する3つの送信ドメイン認証です。

  • SPF: 「このドメインのメールを送ってよいサーバー」を宣言するTXTレコード
  • DKIM: 送信時にメールへ電子署名を付け、受信側が公開鍵で検証する仕組み
  • DMARC: SPF・DKIMの結果をどう扱うかの方針と、レポートの送り先を宣言するTXTレコード
; SPF(配信サービスが指定する include を追加する。値はサービスの案内に従う)
example.com.        TXT  "v=spf1 include:_spf.your-mail-service.example ~all"

; DMARC(最初は p=none で様子を見て、レポートを確認してから強める)
_dmarc.example.com. TXT  "v=DMARC1; p=none; rua=mailto:dmarc-report@example.com"

DKIMの値は配信サービスやサーバー側で鍵を生成し、表示されたレコードをそのまま登録します。SPFのTXTレコードは1つのドメインに1本までなので、既存のSPFがある場合は新しく追加せず、既存の行に include: を足してください。

大手メールサービスは、大量に送信する事業者に対して、SPF・DKIM・DMARCの設定やワンクリックでの登録解除への対応を求めています(2026年10月現在)。条件は各社のガイドラインで更新されることがあるため、配信サービスの案内とあわせて確認してください。

普段の業務メールとニュースレターの評判を分けたい場合は、news.example.com のような配信専用のサブドメインを使う方法もあります。ニュースレターで苦情が増えても、問い合わせ返信などのメールが巻き込まれにくくなります。

登録フォームはダブルオプトインにする

ダブルオプトインとは、フォームに入力した後に確認メールを送り、メール内のリンクを押した時点で登録を完了させる方式です。手間が1つ増えますが、次の理由から採用をおすすめします。

  • 入力ミスのアドレスや、他人のアドレスの勝手な登録を防げる
  • 存在しないアドレスへの送信が減り、送信元の評判が下がりにくい
  • 「本人が同意した」ことを日時つきで記録できる

外部サービスでもプラグインでも、たいていは設定画面でダブルオプトインを有効にできます。有効にしたら、確認メールの件名と本文を自分のサイト向けに書き換え、届くまでの流れを自分で一度試してください。

フォームには、配信内容と頻度(例: 「週1回、WordPressの運用ノウハウをお届けします」)、プライバシーポリシーへのリンクを添えます。何が届くのか分からないフォームは登録率が下がるうえ、後で迷惑メール報告を受けやすくなります。

ボット対策として、ハニーポット(人には見えない入力欄)やCAPTCHA系のサービスを組み合わせると、架空の登録をかなり減らせます。確認ページや登録完了ページは検索結果に出す必要がないので、noindexにしておくと整理しやすくなります。

過去号のアーカイブを投稿として公開する

送ったニュースレターをWebでも公開すると、検索からの新規読者の入口になり、「どんな内容が届くのか」を登録前に確かめてもらえます。通常の投稿とカテゴリーで分けてもよいですが、専用のカスタム投稿タイプにしておくと、一覧ページやURLを独立して管理できます。

<?php
// 子テーマの functions.php または自作プラグインに追加
add_action( 'init', function () {
	register_post_type(
		'newsletter',
		array(
			'labels'       => array(
				'name'          => 'ニュースレター',
				'singular_name' => 'ニュースレター',
			),
			'public'       => true,
			'has_archive'  => true,                     // /newsletter/ で一覧を表示
			'rewrite'      => array( 'slug' => 'newsletter' ),
			'show_in_rest' => true,                     // ブロックエディターで編集する
			'supports'     => array( 'title', 'editor', 'excerpt', 'thumbnail' ),
		)
	);
} );

追加した直後は一覧ページが404になることがあります。管理画面の「設定」→「パーマリンク」を開いて変更を保存すると、リライトルールが更新されて表示されるようになります。

運用のコツは、「メール本文 = Web版の記事」として1か所で書くことです。プラグインによっては、送信したニュースレターをWebで閲覧できる機能を持つものもあります。メールには「Webで読む」リンクを入れておくと、メールソフトで表示が崩れた読者にも対応できます。購読者限定の内容を含む号は、公開範囲を分けるか、アーカイブに載せない判断も必要です。

配信前のテストと法令面の確認

最初の配信の前に、次の点を確認してください。

  • Gmail、Outlook、iPhoneの標準メールなど、複数の環境にテスト送信して表示を見る
  • 登録解除のリンクが各号に入っていて、押すと実際に解除される
  • 差出人名と送信元アドレスが、読者に分かるものになっている
  • 受信したメールのヘッダーで、SPF・DKIM・DMARCが pass になっている

日本国内で広告や宣伝を含むメールを送る場合は、特定電子メール法(特定電子メールの送信の適正化等に関する法律)が関係します。原則として事前に同意を得た相手にだけ送ること、同意の記録を保存すること、送信者の名称や受信拒否の連絡先を表示することなどが求められます。細かな要件は総務省・消費者庁のガイドラインで示されているため、事業として配信する場合は一次情報を確認し、判断に迷う点は専門家に相談してください。

購読者のメールアドレスは個人情報です。管理画面へのアクセス権限を絞り、バックアップを取り、外部サービスを使う場合はプライバシーポリシーに委託先として記載しておきます。

よくあるつまずき

確認メールが届かない: いちばん多い原因は送信設定です。SMTPやAPI経由の送信になっているか、迷惑メールフォルダーに入っていないかを確認します。プラグインで送る場合は、テスト送信機能でエラーが出ていないかも見てください。

フォームが「不正なリクエスト」などで失敗する: ページキャッシュがフォーム内のnonce(使い捨ての確認用の値)ごとHTMLを保存していることがあります。フォームのあるページをキャッシュ対象から外すか、送信をAjaxで行う設定があればそちらを使います。

予約配信が止まる、遅れる: WordPress内で配信するプラグインは、WP-Cronなどの予約処理で少しずつ送信するものが多くあります。WP-Cronはサイトにアクセスがあったときに動くため、アクセスの少ないサイトでは処理が進みません。その場合はサーバーのcronから定期的に実行します。作業前に wp-config.php のバックアップを取ってください。

// wp-config.php に追加: アクセス時のWP-Cron実行を止める
define( 'DISABLE_WP_CRON', true );
# サーバーのcrontabに追加: 5分ごとに期限の来た予約処理を実行する(WP-CLIを使う場合)
*/5 * * * * cd /path/to/wordpress && wp cron event run --due-now > /dev/null 2>&1

DISABLE_WP_CRON を入れたのにサーバー側のcronを設定しないと、予約投稿なども含めてすべての予約処理が止まります。2つはセットで設定してください。

まとめ

  • WordPressは登録受付と過去号の公開、配信は外部サービスかニュースレター用プラグインに任せる、という分担で構成を決める
  • 送信元はサイトと同じドメインにし、SPF・DKIM・DMARCを設定してから配信を始める
  • 登録はダブルオプトインにし、配信内容・頻度・プライバシーポリシーをフォームに明記する
  • 過去号はカスタム投稿タイプなどでWeb公開すると、新規読者の入口になる
  • 広告を含むメールは特定電子メール法の要件を確認し、同意の記録と登録解除の手段を用意する

お気軽にご相談ください

お見積りへ お問い合わせへ
▲