BLOG

CMS別・SEOに強い記事入稿設定——WordPress/PayloadCMS/LeadGridの違いと最適化

CMS別SEO入稿設定の違いを表す抽象的なジオメトリックイラスト

CMSのSEO設定は「引っ越しの荷解き」に似ている。同じ家具でも、部屋の間取りが違えば置き方が変わる。titleタグもmeta descriptionもslugも、やるべきことは同じなのに、CMSごとに「どこで」「どうやって」設定するかがまるで違う。

私はWriters-hubで、WordPress(クライアントサイト多数)、PayloadCMS(自社サイトwriters-hub.co.jp)、LeadGrid(クライアントのコンマルク社サイト)を日常的に運用している。3つのCMSで同じ記事を入稿する——と言いたいところだけど、同じ手順では絶対にうまくいかない。

「うちのCMSだとどこをいじればいいの?」と思ったことがあるなら、この記事はあなた向けだ。

WordPress——自由度の高さが罠になる

WordPressのSEO設定は「自由に改装できる賃貸」みたいなもの。やろうと思えば何でもできるが、プラグインの選択を間違えると壁に穴を開けることになる。

titleタグとmeta description

WordPressはデフォルトだとmeta descriptionすら出力しない。Yoast SEOかAll in One SEO(AIOSEO)を入れて初めて、記事ごとにtitleとmeta descriptionを個別設定できるようになる。

ここ、大事。 Yoast SEOの場合、投稿画面の下部に「SEO」パネルが出る。ここで「SEOタイトル」を空欄にすると、投稿タイトルがそのままtitleタグに入る。意図的にtitleタグを変えたい場合——たとえば投稿タイトルより短くしたい、キーワードの語順を調整したい——は明示的に入力する必要がある。

unknown node

投稿タイトルは読者の目を引くために長くてもいい。でもtitleタグは検索結果で途中で切れる。この「二重管理」ができるのがプラグインの強みであり、面倒なところでもある。

slugの落とし穴

WordPressは日本語タイトルをそのままslugに変換する。「中小企業のSEO対策」という投稿を作ると、slugが`中小企業のseo対策`になる。URLエンコードされると`%E4%B8%AD%E5%B0%8F...`の嵐。

これ、やってるサイト多い。 公開前に必ず英数字のslugに手動で書き換える。`seo-guide-for-smb`のように。一度公開してからslugを変えるとURLが変わるので、リダイレクト設定が必要になる。最初から正しくやった方がいい。

見出し構造とH1の扱い

WordPressのテーマは、たいていの場合、投稿タイトルをH1として出力する。つまり本文中にH1を書いてはいけない。ビジュアルエディタ(Gutenberg)で「見出し」ブロックを追加するとき、デフォルトがH2になっているのはこの理由。

ただし、テーマによってはH1を出力しない設計のものもある(まれだけど存在する)。自分のテーマがどうなっているかは、公開された記事のソースコードで確認した方がいい。

PayloadCMS——コードファーストゆえの「設定場所がない」問題

PayloadCMSは「注文住宅」だ。間取りは自由に決められるが、最初から設計しないとコンセントの位置すら決まらない。

titleタグとmeta description

PayloadCMSにはWordPressのYoastに相当するプラグインがない。SEO用のフィールドは自分でスキーマに定義する

私たちのwriters-hub.co.jpでは、ブログ記事のコレクション定義にこんなフィールドを追加している:

unknown node

つまりSEO設定フィールドが「ある」か「ない」かは、開発者がスキーマを書いたかどうかで決まる。WordPressのように「プラグインを入れれば出てくる」ものではない。

ここが最大の落とし穴。 PayloadCMSを導入したけど、metaフィールドを定義し忘れて、全記事のtitleタグが同じ——というサイトは実際にある。「CMSが勝手にやってくれる」と思っていると痛い目を見る。

slugの扱い

PayloadCMSはslugフィールドもスキーマで定義する。自動生成のフックを書けばタイトルからslugを生成できるが、デフォルトではそんな機能はない。全部手動。

これは逆に言えば、日本語slugが勝手に生成される事故が起きない。WordPressの「日本語slugうっかり公開」問題がそもそも発生しない構造になっている(まあ、手動で日本語を入れたらその限りではないけど)。

H1とtitleフィールドの二重管理

PayloadCMSでは、titleフィールドの値がフロントエンドでH1として出力される設計にするのが一般的。そのため本文のリッチテキスト(Lexical Editor)にはH1を書かない。書くとタイトルが二重表示になる。

私たちも実際にこれをやらかして、すめしさんに指摘された。「タイトル二つ出てるよ」と(正直、申し訳ない)。本文はH2から始める。これは鉄則。

LeadGrid——GUIは親切、でも「見えない制約」がある

LeadGridは「デザイナーズマンション」みたいなCMSだ。内装はきれいに整っていて、住み心地もいい。でも壁にネジを打てない場所がある。

titleタグとmeta description

LeadGridは管理画面上に「SEO設定」タブが用意されていて、titleタグとmeta descriptionを記事ごとに入力できる。WordPressでプラグインを入れなくても、最初からSEOフィールドが存在する。これは中小企業のウェブ担当者には嬉しい設計。

ただし、LeadGridのSEO設定タブには「`</head>`前のスクリプト」という入力欄がある。ここにJSON-LD(構造化データ)を入れられるのだが、フォーマットを間違えると丸ごと無視される。

unknown node

slugの注意点

LeadGridではURL欄で記事のslugを設定する。入力欄にデフォルト値が入っていることがあるので、全選択して上書きするのが確実。中途半端に追記すると、意図しないURLになる。

エディタの特性

LeadGridのリッチエディタはFroala Editorベース。WordPressのGutenbergやPayloadCMSのLexical Editorとは操作感が異なる。HTML直接入力も可能だが、SPAの特性上、連続操作でルーティングが壊れることがある(URLに`undefined`が入る現象を実際に確認している)。壊れたらダッシュボードに一度戻ってから再遷移する。

3つのCMSを横断して見えた「本質的な違い」

設定項目 | WordPress | PayloadCMS | LeadGrid

titleタグ | プラグイン依存 | スキーマで自作 | 標準装備

meta description | プラグイン依存 | スキーマで自作 | 標準装備

slug | 自動生成(日本語注意) | 手動(事故が起きにくい) | 手動(デフォルト値に注意)

H1の扱い | テーマが出力、本文に書かない | titleフィールドが出力、本文に書かない | テーマが出力、本文に書かない

構造化データ | プラグインorテーマ | コードで実装 | SEO設定タブから手入力

OGP | プラグイン依存 | スキーマで自作 | 管理画面で設定可

「SEOに強いCMSはどれですか」という質問には意味がない。 どのCMSでもSEO設定は実現できる。違うのは「どこで」「誰が」「どうやって」設定するか。WordPressはプラグインに頼り、PayloadCMSは開発者が設計し、LeadGridはGUIに組み込まれている。

つまりこういうことだ——SEOに強いCMSなんてものは存在しない。SEO設定を正しく実装した運用が存在するだけ

実務で効くチェックリスト

どのCMSを使っていても、記事公開前にこれだけは確認した方がいい:

  1. titleタグ: 投稿タイトルと別に設定しているか。検索結果での表示を意識した長さか
  2. meta description: 空欄になっていないか。120字前後で、記事の価値が伝わるか
  3. slug: 英数字になっているか。日本語が混入していないか
  4. H1の重複: 本文にH1を書いていないか。テーマ/フロントが出力するH1と二重になっていないか
  5. 画像alt: 主要画像にaltテキストが入っているか。「image1.jpg」のままになっていないか
  6. OGP: og:title、og:description、og:imageが設定されているか。SNSシェア時の表示を確認したか

全部やるのは面倒だと思うかもしれない。でも1記事あたり3分もかからない。3分の手間を惜しんで、検索結果でtitleが「無題」になっているサイトを何度も見てきた。

まあ、私もPayloadCMSでH1を二重に出してすめしさんに怒られたクチなので、偉そうなことは言えないんだけどね。大事なのは仕組みで防ぐこと。チェックリストを公開前フローに組み込んでしまえば、誰がやっても同じ品質になる。

記事コンテンツの制作支援の記事一覧全記事一覧