WordPressのSEO対策

WordPressの技術的SEO実務ガイドです。評価を下げる初期設定、コアのサイトマップとcanonical処理の実際、SEOプラグインを必ず1つだけ使う理由、WordPress自身が作る重複コンテンツの発生源を解説します。

初回公開:2026年6月27日 · 最終更新:2026年8月4日 · Advanced
言語

WordPressはSEOに対応できますが、設定なしでSEOが完成するわけではありません。v2.9以降の投稿は自己canonical化され、v5.5以降はネイティブXMLサイトマップが提供されます。一方、初期設定では ?p=123 のパーマリンク、添付ファイルページ、日付・タグ・著者アーカイブ、フィード、内部検索結果がすべてインデックス可能で、設定 → 表示設定のチェック1つでサイト全体を静かにブロックできます。重要な対策は、公開前に /%postname%/ を設定すること、SEOプラグインを必ず1つだけ使うこと(Yoast、Rank Math、AIOSEOのいずれか。2つ使うと wp_head の競合でメタデータが重複します)、薄いアーカイブはrobots.txtで拒否せずnoindexにすること、サイトマップをcanonicalなインデックス可能URLだけにすることです。WordPress v6.4以降の新規インストールでは添付ファイルページが無効になり、親投稿ではなくファイルへ直接リダイレクトされます。GoogleはWordPressが他のCMSより有利とも不利とも述べておらず、順位を決めるのはプラットフォームではなくコンテンツとリンクです。

TL;DR — WordPressはSEOに対応できますが、SEOが完成しているわけではありません。v2.9以降の単一投稿は自己canonical化され、v5.5以降はネイティブXMLサイトマップが提供されます。しかし初期設定では ?p=123 パーマリンク、添付ファイルページ、日付・タグ・著者アーカイブ、フィード、?s= 検索ページがすべてインデックス可能で、設定 → 表示設定のチェックボックスがサイト全体を静かにブロックできます。効果の大きい対策は、公開前に /%postname%/ を設定すること、SEOプラグインを正確に1つだけ使うこと(2つによる wp_head 競合は現実の問題です)、薄いアーカイブを拒否ではなくnoindexにすること、canonicalでインデックス可能なURLだけを含むサイトマップを作ることです。WordPress v6.4以降の新規インストールでは添付ファイルページが無効になり、親投稿ではなくファイル自体へリダイレクトされます。既存サイトは手動で移行します。GoogleはWordPressが他のCMSよりSEOに有利とも不利とも述べていません。 Evidence for this claim WordPress added core XML sitemaps in 5.5 and attachment-page redirects for new sites in 6.4. Scope: Core version history; existing sites can retain prior attachment behavior. Confidence: high · Verified: WordPress 5.5 XML sitemaps WordPress 6.4 attachment pages

WordPressはSEOに対応できるが、SEOが完成しているわけではない

正直な説明は、よく聞く2つのマーケティング上の主張の中間です。WordPressは完全な意味で「初期状態からSEOに優しい」わけではありませんが、SEOに悪いわけでもありません。強力で制御しやすい土台を提供する一方、インデックス可能な不要物を初期状態で大量に有効にしています。仕事の全体像は、どの初期設定を変え、どの自動生成URLを抑制するかを知ることです。

最初に明確にしておくと、GoogleはWordPressが他のCMSより有利とも不利とも述べていません。Googleのドキュメントにも、“if you’re using a CMS such as WordPress, Wix, or Blogger, it’s likely that your CMS has already made a sitemap available to search engines”(日本語訳:WordPress、Wix、BloggerなどのCMSを使っているなら、CMSがすでに検索エンジン向けのサイトマップを提供している可能性が高い)とあります。プラットフォームは他と同じように扱われます。順位を生むのは管理画面のロゴではなく、コンテンツとリンクです。 Evidence for this claim Google says common CMS platforms often generate sitemaps and does not prescribe a CMS-specific ranking advantage. Scope: Google sitemap guidance; absence of a CMS ranking advantage is an editorial inference from platform-neutral requirements. Confidence: medium · Verified: Google: Build and submit a sitemap

問題を起こす初期設定と、その理由

「検索エンジンによるこのサイトのインデックスを抑制する」チェックボックス(設定 → 表示設定)は、サイト全体の noindex と制限的な仮想robots.txtを書き込みます。WordPress監査で最初に確認する項目です。サイト全体のインデックスを静かにゼロにできる唯一の設定であり、通常はステージング時にオンにされたままです。

?p=123 の初期パーマリンクにはトピックのシグナルがなく、クリーンなURLでもありません。/%postname%/ に切り替え、公開前に行ってください。運用中のサイトで変更するとURLが変わります。WordPressは標準投稿タイプの古い数字URLには自動で301を設定しますが、カスタム投稿タイプや固定ページは常にきれいにリダイレクトされるとは限らないため、テストが必要です。パーマリンクにカテゴリーを組み込む(/%category%/%postname%/)のは避けます。分類を再編成した日に大量のURL変更を起こし、割に合わない形で順位履歴を失うからです。

添付ファイルページは、忘れられがちなWordPress固有の落とし穴です。以前はメディアをアップロードするたびに、ファイルと少しの自動メタデータだけを含む独立URLが作られていました。実ページと競合し得る薄いページです。**WordPress v6.4では新規インストールの初期設定が変わり、添付ファイルページが完全に無効になりました。現在そのURLへのアクセスは親投稿ではなくファイル自体へ直接リダイレクトされます。**既存(アップグレード済み)サイトでは添付ファイルページが有効なままです。設定画面のトグルはなく、WP-CLIで wp option set wp_attachment_pages_enabled 0 を実行するか、wp-admin/options.php で直接オプションを編集します。実務上、多くのサイト所有者はこのオプションに触れず、代わりにプラグインで処理します。添付ファイルページをnoindexにするか、より良い方法としてSEOプラグインで親投稿へリダイレクトします。古いサイトがWordPress v6.4の初期設定を引き継いでいるとは考えないでください。引き継ぎません。

**アーカイブ、フィード、検索ページ。**WordPressは初期状態で、インデックス可能なカテゴリーアーカイブ、タグアーカイブ、日付アーカイブ、著者アーカイブ、ページ分割されたアーカイブ(?page=2)、フィードURL(/feed/)、添付ファイルページ、内部検索結果ページ(/page=search、つまり ?s=)を生成します。これがWordPressの重複コンテンツの発生源の基本リストであり、そのほとんどは自分で決めたものではありません。

WordPressが自動的に作る重複コンテンツ

意外に思う人が多いので明確に言います。WordPressは初期状態で構造的な重複コンテンツを作ります。主な発生源は次のとおりです。

発生源一般的な対策
カテゴリーアーカイブ/category/news/残す、または薄ければnoindex
タグアーカイブ/tag/wordpress/通常はnoindex(薄く、重複するため)
著者アーカイブ/author/admin/単著者サイトではnoindex
日付アーカイブ/2023/04/noindex(ほぼ常に薄いため)
ページ分割/page/2/自身を指すcanonical(1ページ目ではない)
フィードURL/feed/フィードをnoindex
添付ファイルページ/photo-of-cat/SEOプラグインで親へリダイレクト(WP v6.4以降の新規インストールはファイル自体へリダイレクト)
検索結果/?s=keywordnoindex

対策は、ペナルティを恐れて慌てることではありません。Googleは構造的な重複を罰するのではなく、重複をcanonicalに統合します。対策は薄いものをnoindexにし、サイトマップをクリーンに保つことです。重要な区別もあります。noindex ≠ no-crawlです。noindexページは、Googleが指示を読めるようクロール可能なままにする必要があります。robots.txtで拒否すると指示を見られないため、薄いアーカイブはブロックせずnoindexにします。

XMLサイトマップ:コアとプラグイン

**WordPress v5.5(2020年8月)は /wp-sitemap.xml にネイティブXMLサイトマップを追加しました。**実在しますが、最低限の機能です。すべての公開投稿タイプ、公開タクソノミー、著者アーカイブを入れるため、インデックスから外したい薄いページまで喜んで列挙します。画像サイトマップには対応せず、制御も限られます。そのため実際には、ほとんどのサイトがYoastやRank Mathのサイトマップを使います。特定の投稿タイプやタクソノミーを含めたり除外したりでき、ファイルをcanonicalでインデックス可能なURLだけに保てるからです。Yoastがコアのサイトマップを無効にして置き換えるのは想定された動作です。

サイトマップが代わりに行ってくれないことが2つあります。Googleは独自のドキュメントにあるとおり <priority><changefreq> を完全に無視します。また、**WordPressはサイトマップをGoogleへ自動送信しません。**Search ConsoleとBing Webmaster Toolsで送信し、robots.txtの Sitemap: ディレクティブで受動的に発見できるようにします。仕様の50 000 URL / 50MB制限は有効なので、それを超えたらサイトマップインデックスに分割します。

canonical処理:コア、プラグイン、競合の罠

コアはWordPress v2.9(2009年)以来、rel_canonical()rel=canonical を出力しています。単一投稿と固定ページは自身をcanonicalにします。WordPress v4.6はタグを追加したのではなく、関数をフィルター可能な wp_get_canonical_url() を使う形にリファクタリングしました。「v4.6以降canonical」と言われるとき、通常はこのことを指します。これは良い基盤ですが、コアはテーマをまたいだカスタム投稿タイプを一貫して処理せず、404にcanonicalを追加せず、?utm_source=、wwwと非www、末尾スラッシュなどURLの変種による重複も単独では解決しません。SEOプラグインはコア出力をより包括的な処理に置き換えます。カスタム投稿タイプのcanonical、自己参照型のページ分割canonical(2ページ以降を1ページ目へ向けるのではありません)、シンジケーション向けのクロスドメインcanonical、ページごとの上書きなどです。

ここに、プラグイン問題全体を結び付ける罠があります。**SEOプラグインが設定するcanonicalが権威あるシグナルです。しかしテーマもtitleタグや独自のSEOメタを注入すると競合します。**GenesisやThesisのようなテーマフレームワークは独自のSEOタグを出力します。SEOプラグインを有効にしたらテーマ側のSEOを無効にし、レンダリング後の <head> を調べてcanonical、title、meta descriptionがそれぞれ正確に1つだけであることを確認してください。

SEOプラグインは1つだけ。2つは絶対に使わない

これは独立した見出しに値します。WordPress SEOで最も多い自傷行為だからです。**SEOプラグインを2つ同時に実行しないでください。**Yoast、Rank Math、AIOSEOはすべて wp_head() にフックし、title、meta description、canonical、Open Graph/Twitterタグ、robots meta、JSON-LDを書き込みます。2つ動かすと両方が実行され、メタディスクリプションの重複、重複して矛盾するcanonical、競合するOpen Graph、競合するサイトマップが発生します。Search Consoleは重複メタデータを報告します。1つを選び、もう1つは完全にアンインストールしてください(無効化だけではデータベースの項目が残ります)。

どれを選ぶかについては、どれも基本タスクをカバーしているため、用途と予算の問題です。

  • Yoast SEO — 最大のインストール基盤を持ち、慣れ親しんだ信号機式スコアを提供します。ガイド付きワークフローを求める初心者やコンテンツチーム向けです。(WooCommerce schemaは有料アドオンです。)
  • Rank Math — 無料枠が最も手厚く、無制限のフォーカスキーワード、リダイレクト管理、404監視、GSC + GA4連携、強力なschemaビルダー(16種類以上を無料で利用可能)があります。開発者とパワーユーザーには私はこちらを選びます。
  • All in One SEO(AIOSEO) — WooCommerce連携、内部リンクアシスタント、ローカルSEOに強みがあります。代理店や大規模ストアに向いています。

Yoastの緑色の判定については注意してください。**Yoastスコアが高いからといって順位が上がるわけではありません。**キーワードの存在、タイトルの長さ、可読性の代理指標など、ページ上の基本的な書式を見るヒューリスティックです。赤信号の投稿が、すべて緑の投稿を日常的に上回ることもあります。コンテンツ品質、検索意図との一致、権威性、リンクの方がはるかに重要です。

schema:WordPressが出力するもの、しないもの

コアWordPressはリッチリザルトに役立つものをほとんど出力しません。Googleが解析できるクリーンなHTMLは出しますが、JSON-LDはありません。Googleも、“if you use a CMS, such as Wix, WordPress, or Shopify, you might not be able to edit your HTML directly… you may be able to install a plugin that allows you to specify structured data.”(日本語訳:Wix、WordPress、ShopifyなどのCMSを使う場合、HTMLを直接編集できない可能性があります。その代わり、構造化データを指定できるプラグインをインストールできる場合があります)と説明しています。取るべき道は次のとおりです。

  • YoastはOrganization/Person、WebSite(SearchAction付き)、WebPage、BreadcrumbList、Article schemaをJSON-LDで自動追加します。
  • Rank Mathはそれらに加えて、無料枠で16種類以上のschema(FAQ、HowTo、Product、Review、Eventなど)とカスタムタイプ用ビルダーを追加します。
  • WooCommerce単体は基本的なOpen Graphの商品メタデータを出力しますが、**Product JSON-LDは出力しません。**価格、在庫状況、レビュー集計を含む完全なProduct schemaには、Yoast WooCommerce SEO(有料)かRank Math Proが必要です。

WooCommerceについて簡単に

WooCommerceは標準WordPressの上に、さらにSEOの対象範囲を積み重ねます。繰り返し現れる問題は、/product//product-category/ のURLベース(既存サイトではリダイレクトを伴って削除可能)、ほぼ重複する商品バリエーション、そして最大の問題である、数千もの薄いフィルター組み合わせURLを生成するファセットナビゲーションです。ファセットはどこでも同じ方法で扱います。理想はURLを変えないJSベースの絞り込みです。それが無理なら、ベースカテゴリーへの rel=canonical、またはフィルターページの noindex, follow(指示を見られるようクロールは許可)を使います。ショップとカテゴリーのページ分割には自己参照canonicalが必要です。Googleは2019年に rel=prev/next を非推奨にしました。存在しても害はありませんが、依存しないでください。ファセットナビゲーションの詳しい扱いはEcommerce SEOピラーにあります。

robots.txtとCore Web Vitals:2つの短い補足

WordPressは仮想robots.txtを提供します(ディスク上のファイルではありません)。初期状態では /wp-admin/ を拒否し、admin-ajax.php は許可します。ルートに物理ファイルを置くと、仮想版全体がそれで上書きされます。SEOプラグインならダッシュボードから仮想版を編集できます。典型的な間違いは /wp-content/ を拒否することです。CSS、JS、画像をブロックしてレンダリングを壊すので、行わないでください。

パフォーマンスについては、「WordPressは遅い」という不満はコアの問題ではなく設定の問題です。LCPの問題は主にTTFB(安価な共有ホスティング、opcode cacheなし)と最適化されていないヒーロー画像に追跡できます。INPの問題はページビルダー(Elementor、Divi)によるJavaScriptの肥大化、CLSの問題は寸法のない画像と font-display: swap のないWebフォントが主因です。軽量テーマ(GeneratePress、Kadence、Astra)にキャッシュプラグイン、CDN、最新の画像形式を組み合わせれば、適切に構築したWordPressサイトはCore Web Vitalsを十分に通過できます。詳しくはWeb Performanceクラスターを参照してください。

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.