All in one SEO PACKのデータをCocoon・Simplicityに移行する方法

スポンサーリンク
all in one seo packを削除してcocoonに移行する全手順Cocoon
スポンサーリンク

WordPressのプラグインである「All in one SEO Pack」のデータ(タイトル、キーワード、メタディスクリプション)をWordPressテーマ「Simplicity」・「Cocoon」に移行する方法についてまとめました。

 

「なるべく初心者の方でも出来るように」と思って書いてますが、多少なりともSQLの知識がないと分かりづらいかもしれません。その点はご了承ください。

 

参考になれば幸いです。

スポンサーリンク

All in one SEO Packから移行する前に

All in one SEO Packから移行する前に、「どのデータを移行するのか、データベースはどのようになっているか」等についてご説明します。

 

とにかくやり方だけ知りたい方は、「All in one SEO Packのデータを移行するSQL」まで読み飛ばしてください。

 

All in one SEO Packから移行するデータの確認

今回、All in one SEO Packから移行するデータは、

  • タイトル
  • キーワード
  • メタディスクリプション

の3点です。

これらのデータがWordPressのテーブルにどのように格納されているかについてご紹介します。

 

WordPressのデータベースの理解を深める

WordPressのデータベースでは多くのカラムが存在します。詳細はWordPressデータベースを参照してください。

 

ただ、今回移行時に確認するテーブルは以下2つだけです。

  • wp_posts」  :投稿データ(投稿日時や本文等)
  • wp_postmeta」:メタデータ(キーワードやメタディスクリプションなど)

 

「wp_posts」テーブルには投稿日時や本文等の情報が入っていて、「wp_postmeta」テーブルにはキーワードやメタディスクリプションなどの投稿を補助する情報(メタデータ)が入っています。

 

つまり、All in one SEO Pack、Simplicity、Cocoonの「タイトル、キーワード、メタディスクリプション」の情報は「wp_postmeta」テーブルに格納されているというわけです。

 

wp_postmetaのテーブル構造を理解する

では、All in one SEO Packのメタディスクリプションなどが、どのように「wp_postmeta」テーブルに格納されているかについてご説明します。

 

まず、「wp_postmeta」テーブルには以下4つのカラムが存在します。

  • meta_id
  • post_id
  • meta_key POINT!
  • meta_value 

 

「meta_id」はwp_postmetaテーブルで一意に定められるキー(主キー)のことで、「post_id」は、wp_postsテーブルのIDの外部キーです。

 

meta_key」は、プラグインやテーマなどが独自に決められるIDを設定し、「meta_value」にはその値が入ります。

 

例えば、All in one SEO Packのメタディスクリプションを取得したいという場合、「meta_key」に「_aioseop_description」を指定すると、「meta_value」からメタディスクリプションの文章が取得できるというわけです。

 

今回は、このmeta_keyとmeta_valueを使って、「All in one SEO PackからSimplicity・Cocoonへのデータ移行」をSQL文にて実施していきます。

 

All in one SEO Packからデータを移行するSQL

All in one SEO PackのメタディスクリプションをCocoonのメタディスクリプションに移行するSQLは以下となります。

UPDATE
    wp2_postmeta,
    (
    SELECT
        post_id,
        meta_value AS aioseop_meta_value
    FROM
        wp2_postmeta
    WHERE
        meta_key = "_aioseop_description"
) AS aioseop
SET
    wp2_postmeta.meta_value = aioseop.aioseop_meta_value
WHERE
    wp2_postmeta.post_id = aioseop.post_id AND wp2_postmeta.meta_key = "the_page_meta_description"
SQLを実行する前に、必ずバックアップを取得してください。

 

このSQLは、メタディスクリプションを移行するSQLとなっていますが、少し値を変えるだけで、タイトルとキーワードの移行も可能です。

また、Cocoonではなく、Simplicityに移行することも可能です。

 

順をおって、解説してきます。

 

SQLの解説

 

1〜2行目:更新するテーブル名を指定

UPDATE
    wp2_postmeta,

UPDATEを行うテーブルを指定します。「wp2_postmeta」は環境によって異なりますので、ご自身のデータベースを確認してください。

 

3〜9行目:All in one SEO Packのデータを取得

(
    SELECT
        post_id,
        meta_value AS aioseop_meta_value
    FROM
        wp2_postmeta
    WHERE
        meta_key = "_aioseop_description"
) AS aioseop

ここでは、「wp2_postmeta」テーブルから「meta_key」を指定して、「meta_value」(All in one SEOの値)を取得しています。

そして、取得した値は「AS」を使って、「aioseop_meta_value」という名前に変更しています。

 

取得するデータをタイトルやキーワードに変更する方法

上記の「WHERE meta_key = "_aioseop_description"」の部分で、指定する「meta_key」を変更すれば、タイトルやキーワードを取得することが可能です。

 

All in one SEO Packのmeta_keyは以下の値となっています。適宜、変更してください。

項目meta_key
タイトル_aioseop_title
キーワード_aioseop_keywords
メタディスクリプション_aioseop_description

 

10〜13行目:Cocoonのメタディスクリプションを更新

SET
    wp2_postmeta.meta_value = aioseop.aioseop_meta_value
WHERE
    wp2_postmeta.post_id = aioseop.post_id AND wp2_postmeta.meta_key = "the_page_meta_description"

 

WHERE」句で、値の設定場所を指定し、「SET」句にて実際に値を設定します。

 

wp2_postmeta.meta_key = "the_page_meta_description"」で、Cocoonのメタディスクリプションを指定していますので、Cocoonのメタディスクリプションに値が設定されるということになります。

 

Cocoonのタイトルやキーワードに移行したい場合

"the_page_meta_description"」の部分を変更すると、タイトルやキーワードを設定することが可能です。

 

Cocoonのmeta_keyは以下の値となっています。

項目meta_key
タイトルthe_page_seo_title
キーワードthe_page_meta_keywords
メタディスクリプションthe_page_meta_description

 

Simplicityに移行したい場合

同じように、Simplicityにデータを移行したいという場合は、「"the_page_meta_description"」の部分をSimplicityのmeta_keyに変更すればOKです。

 

Simplicityのmeta_keyは以下の値となっています。

項目meta_key
タイトルseo_title
キーワードmeta_keywords
メタディスクリプションmeta_description

 

移行後に確認すること

正しくデータが移行できたかをチェックするために、以下のSQLを実行してみてください。

 

公開済みの記事と実行結果の数が一致していればOKです。

SELECT
    *
FROM
    wp2_postmeta
WHERE
    meta_key = "the_page_meta_description" AND post_id IN(
    SELECT
        id
    FROM
        wp2_posts
    WHERE
        post_status = "publish" AND post_type = "post"
)

 

なぜか一部のデータはうまく移行できなかった。。。。

理由が分からないのですが、私の場合はなぜか一部のデータはうまく移行できませんでした。。。

 

うまく移行できなかった原因は「公開している記事でもCocoonのmeta_keyが存在しないものがいくつかあった」からです。

つまり、「移行前のAll in one SEO Packのデータは存在していても、Cocoon側のデータが存在しないために、移行できなかった」というわけです。

 

Cocoon制作者のわいひらさんに質問しようかなとも思いましたが、忙しそうなのでやめました。

 

ただ、meta_keyが存在しないデータは2〜3記事だけだったので、手動でコピーして、無事移行は完了しました。

 

まとめ

All in one SEO PackのデータをCocoon、Simplicityに移行する方法についてご紹介しました。SQLを実行するだけで、「タイトル・キーワード・メタディスクリプション」の移行が可能です。

 

今回のSQLは以下のURLを参考にさせて頂きました。ありがとうございました。

参考 [Simplicity]All in One SEO Pack をやめて Simplicity のSEO設定に移行する

 

なお、今回ご紹介した方法ではnoindexやnofollowのデータは移行できないので、手動で移行をお願いします。

 

All in one SEO Packを削除した結果、「サイトの速度が速くなるのか?」とか「検索順位に変動があるか」についても調べてみました。参考になれば幸いです。

All in one SEO Packを削除して検索順位はどうなった?サーバの負荷は下がるのか?
All in one SEO Packを削除してCocoonのSEO設定にデータを移行しました。その結果、検索順位は微増になりました。サイトの速度はあまり変化はありませんでした。サーバの負荷(CPU使用率)は下がりました。All in one seo packを削除して、データを移行したことによる意味は必ずあります。
Cocoon
スポンサーリンク

関連おすすめ記事

宜しければシェアをお願い致します
運営者プロフィール
jin

「お金、時間、そして家族を大事にしたい」と考えるパパに少しでもプラスとなるよう情報発信しています。睡眠アプリ(SleepMeister)愛用者。ルンバ、ブラーバ、食洗機などの時短家電大好き。

jinをフォローする
ぱぱたす(PaPa+)

コメント

タイトルとURLをコピーしました