ワードプレスを使って、自前でアプリケーションを開発するときに利用するRewrite APIですが、初心者にはかなり複雑で難しいです。Rewrite APIを使った独自アプリケーションの開発で、ニッチですが非常に重要なSEOについてのメモです。
Rewrite APIを使ってGoogleにインデックスさせたい
表題の通りですが、やったことを下記に流れを書きます。
Rewrite APIを使った時の新規ページのsitemap.xmlが追加されないので、一部ページでインデックスされない問題が起きています。
1 Rewrite APIを使って新規ページを作りました。
2 add_rewrite_rule、add_rewrite_endpointの追加
下記のような形でURLを作って、add_rewrite_rule、add_rewrite_endpointを利用して表示も確認して、ステータスコードも200になっていることを確認してあります。
add_rewrite_endpoint( 'book', EP_ALL ); としてあるので、一応ページとしては認識されてると思っているのですが、されていないかも? // インデックスされているページ /book/variety /book/variety/drama /book/mystery // 一部ページだとインデックスされない /book/mystery/drama
3 sitemap.xmlを作って送るように
全て同じテンプレートを利用しているが、一部ページがインデックスされないので、sitemap.xmlを作って送るようにしたい
4 プラグインのGoogle xml sitemapでサイトマップを作る
Google xml sitemapでサイトマップを作ろうと思ったが、サイトマップには表示されてない。
ページ、投稿、カテゴリー、アーカイブなどを自由にカスタマイズしてサイトマップを作成できるGoogle xml sitemapですが、こちらにプログラムで生成したページを追記されるようにしたいということです。
Googleにインデックスされない、xmlが送れない問題の整理
1 Google xml sitemapのsitemap.xmlに記載がない
sitemap.xmlに記載がないのは、おそらく、投稿、固定ページとも認識されていないのが問題
2 投稿、固定ページとして認識される
投稿、固定ページとして認識されればxmlを送れ、インデックスされる(可能性が高い)
希望としては、投稿ページとして認識させたい。
3 Google xml sitemapを利用しない
Google xml sitemapを利用しないで、サイトマップを自分で作成する
リライトルールの設定とエンドポイントは設定されているので、表示とステータスコードはうまくなっているのは確認できています。
つまり、投稿ページ、固定ページと認識されていないのでxmlが送りようがない状態になっているのが原因だと判断しています。
問題解決の方法1
問題はかなりシンプルな内容でした。ワードプレスを利用していて、add_rewrite_endpointを利用するとページや投稿にカノニカル設定がされてしまうというのが原因でした。
このページでは、さらに詳細ページがあったのですが、カノニカルに寄せられてしまっていました。
ワードプレスであれば、カノニカルのタグを削除する処理が用意されています。
こちらで削除をしてしまうと他のページでも全部でカノニカルの設定が削除されてしまいますので、
ページごとに追加したい場合は自分で再度add_actionをする必要があります。
remove_action( 'wp_head', 'rel_canonical' );