だるかぶ
ご訪問ありがとうございます。ゆっくりしていってね。(本ページは広告を含みます。一部 AI により作成。)
2001/09/29 から WordPress に細々と書き溜めていた 2,586 記事を note に移行中です。その時の記事移行・リダイレクト手順をメモしておきます。どなたかのお役に立てば幸い。
この記事の目次 非表示
- 【前提】 WordPress から note への記事移行は時間がかかる
- 時間がかかると怖いのは重複コンテンツのペナルティー
- 手順 ① WordPress で記事をエクスポート
- 手順 ② note で記事をインポート
- 手順 ③ Page Links To プラグインで note の新しい記事へひとつずつリダイレクトする
- 手順 ④ WordPress ブログのデータをエクスポートする
- 手順 ⑤ WordPress ブログをローカル環境で再現する
- 手順 ⑥ WP All Export プラグインで、新旧記事の URL を CSV ファイルに書き出す
- 手順 ⑦ リダイレクト設定を .htaccess に書く
【前提】 WordPress から note への記事移行は時間がかかる
WordPress から note への記事移行は、アイキャッチ画像の再登録や、不要な改行の削除など、ある程度の調整が必要です。
私の場合、記事数が多かったのと、note で使えないタグの入れ子などがあったため、note への移行を始めてから四ヶ月が経過しております。
時間がかかると怖いのは重複コンテンツのペナルティー
最初は、WordPress から note への記事移行がすべて終わってから、旧 → 新記事のリダイレクトを行おうと思っていました。
ただ、移行完了後にリダイレクトすると、移行期間の間は同じ内容の記事がふたつのドメインで存在し、重複コンテンツのペナルティーが課せられるのではないかと怖くなってきました。
ということで、移行が終わった1ページずつリダイレクトをかけるようにしました。
以下、私がやった記事移行・リダイレクト手順をご紹介します。
※ややこしくなるので、続きの本文は下記の表記で書いております。
旧ブログ(移行元)= WordPress
新ブログ(移行先)= note
手順 ① WordPress で記事をエクスポート

▲ WordPress 管理画面で「ツール」→「エクスポート」を選択。
「投稿」を選択して「エクスポートファイルをダウンロード」をクリック。
※ 私は WordPress の 2,586 記事を note に一気に移行しようとしてエラーに悩まされました。そんな時は、カテゴリ毎にエクスポート&インポートしましょう。
手順 ② note で記事をインポート
- note にログインし、右上のプロフィールアイコンをクリック
- メニューから「自分の記事」を選択

▲「自分の記事」上部の「インポート」をクリック。

- WordPress(WXR形式)形式のファイルを選択し、アップロード。
- 「インポートを開始」をクリック。
しばらくすると note から「インポート完了」のメールが届きます。
手順 ③ Page Links To プラグインで note の新しい記事へひとつずつリダイレクトする
最初に Page Links To プラグイン入れておきます。

▲ このプラグインは WordPress 管理画面から直接インストールできないので、Page Links To のページからプラグインをダウンロードします。

▲ プラグイン追加画面で、先ほどのファイルをアップロード&有効化します。

▲ note の記事を修正したら、旧 WordPress の記事編集画面で note の新 URL を赤枠の部分に入力して記事を保存します。
すべての記事の移行が終わったら次の工程に進みます。
手順 ④ WordPress ブログのデータをエクスポートする
下記の All-in-One WP Migration プラグインをインストール・有効化します。

▲ All-in-One WP Migration のメニューから「エクスポート」を選択。

▲「サイトのエクスポート先」で「ファイル」を選びます。
無料版「All-in-One WP Migration」では、インポート可能なファイルサイズが 300MB までに制限されています。
制限を超える場合は「メディアライブラリを除く」を」選択し、画像ファイルは FTP でダウンロードして手動で移行します。

▲ 妙にアニメーションするボタンをクリックしてダウンロード。
手順 ⑤ WordPress ブログをローカル環境で再現する
念の為、移行元の WordPress をローカル環境に移行します。
ローカル環境は XAMPP を使おうかと思ったんだけどデータベースを作ったり難しそうなので、Local を使うことにしました。
ローカル環境の構築は下記の手順で行いました。
- ローカル環境「Local」をインストール。
- 新しい WordPress をインストール。
下手にミドルウェアを最新版にすると表示が遅かったので、下記のデフォルトの設定をそのまま使用。
・Web server : nginx
・PHP : 8.2.27
・Database : MySQL 8.0.35 - 「Local」にインストールした WordPress に All-in-One WP Migration プラグインをインストール・有効化します。
- All-in-One WP Migration のメニューから「インポート」を選択。
- 先ほど書き出したファイルをインポート。
手順 ⑥ WP All Export プラグインで、新旧記事の URL を CSV ファイルに書き出す
WP All Export プラグインをインストールして、新旧記事の URL を CSV ファイルに書き出す手順は下記のとおりです。

▲ プラグイン追加画面で「WP All Export」を検索。検索結果に色々出てきますが上のようなプラグインをインストール&有効化します。

▲ 左メニューのタコのアイコンをクリック。
上のプルダウンから「投稿」を選択する。
「エクスポートファイルをカスタマイズします」をクリック。

▲ Title, ID, _links_to を選択。_links_to はカスタムフィールド内にあります。

▲ プレビューはこんな感じになります。
問題なければ「非表示」をウインドウを押して閉じます。

▲ すぐ下の「Export Type」をクリック。「スプレッドシート」と「CSVファイル」を選択して「続行」をクリックします。

▲ 緑色の「エクスポートの確認 & 実行」をクリック。

▲「Download」を選択して「CSV」をクリックして CSV ファイルをダウンロードします。
ダウンロードした CSV を Google スプレッドシートで開いて、新旧の URL が抜けていないか確認しておきましょう。
それから、スプレッドシートの D2 セルに下記の計算式を入力し、リダイレクト用のコードを生成します。
※全記事分を生成してください。
="RewriteRule ^" & B2 & "/?$ " & C2 & " [R=301,L]"手順 ⑦ リダイレクト設定を .htaccess に書く
下記のコードをコピーし、自分の URL に合わせて書き換えた上で、.htaccess の一番上に貼り付けてください。
<IfModule mod_rewrite.c> RewriteEngine On # -------------------------------------------------- # 1. 個別記事のリダイレクト (ここを記事分だけ増やす) # -------------------------------------------------- # [旧WPパス] [移行先noteのフルURL] Redirect 301 /example-post-1/ https://note.com/your_id/n/n1234567890ab Redirect 301 /example-post-2/ https://note.com/your_id/n/n0987654321cd # ... 記事の数だけここに追記してください # -------------------------------------------------- # 2. カテゴリー・タグ・アーカイブページのリダイレクト # -------------------------------------------------- # noteには対応するページがないため、一律noteのプロフィールTOPへ飛ばします RewriteRule ^category/(.*)$ https://note.com/your_id/ [R=301,L] RewriteRule ^tag/(.*)$ https://note.com/your_id/ [R=301,L] RewriteRule ^date/(.*)$ https://note.com/your_id/ [R=301,L] # -------------------------------------------------- # 3. その他すべてのアクセスをnoteトップへ集約 # -------------------------------------------------- # 上記の個別指定に当てはまらなかった全てのページ(旧トップ含む)を飛ばします # ※無限ループを防ぐため、既にnoteドメインにいる場合は除外する設定です RewriteCond %{HTTP_HOST} ^(www\.)?your-wp-domain\.com$ [NC] RewriteRule ^(.*)$ https://note.com/your_id/ [R=301,L]
</IfModule>
# BEGIN WordPress (ここから下は元からある記述)
...note に移行する前の WordPress ブログは XServer を使ってたんだけど解約予定。後は、ドメイン・レンタルサーバーの契約終了まで放置して解約します。
現場からは以上です。それでは、またッ!!!
だるかぶ

