どうも、WEBおじさんです。
本日は、久々にWordPressネタです。
ちょっと小難しい話っぽくて、プラグインとか使えば多分何にも問題なく実現できるようなことかもしれないのですが、ちょっと新しい発見だったので記事にしようと思います。
事の発端は、クライアントからのSEO対策依頼でした。
NOT FOUND(404)ページには「noindex」を追加させた方が良い、ということをSEOのコンサル会社さんからご指摘が入ったらしく、ブログをWordPressで作っていたためそちらに対策してください、というご依頼でした。
最初はクライアントさん側で対策をやったみたいなのですが、クライアントさんはPHPとかほとんどわからず、何かの情報サイトとプラグインを見ながら対策を施した結果、記事ページ以外は全てnoindexが入ってしまった、という愉快な結果に終わったのでそれを修正しつつ対策をしてほしいということでした。
で、早速チェックしたところ、共通ヘッダファイルにクライアントさんが追加した記述があり、それには「記事の内容がない場合はnoindexを追加」的な記述がされていました。
記述的には間違いではないし、対策的にも間違いではないのですが、この場合ネックになるのが「記事の内容がない場合」という指定です。
ブログ記事のみで成り立っているWordPressであれば全く問題ないのですが、今回の場合、ブログのトップページは別でファイルが用意されており、それをブログトップページとして読み込むサイト仕様でしたので、トップページには記事や固定ページのようなコンテンツがないのでnoindexが入っていました。
そしてもう一つ、カテゴリ記事一覧ページにもnoindexが入っていました。
最初は、トップページとカテゴリ一覧ページと記事・固定ページの判定をしてnoindexの設定をしようと思っていたのですが、これだと他のページタイプが出てきた場合にまた記述を追加しなければいけないと思ったので、発想を逆にしました。
つまり、「404ページの場合のみnoindexを追加し、他のページの場合はnoindexを追加しない」という方向で設定することにしました。
ということで、まずはHTTPステータスを調べることから始めるのですが、その前に「HTTPステータスって何?」という方がいらっしゃるかもしれないので、少し解説します。
HTTPステータスとは、WEBページが持っているステータスで、HTTPでの通信をした際にサーバーが返すものです。
ステータスには色々と種類があるのですが、正常であれば200、サーバーエラーの場合は500エラー、NOT FOUNDの場合は404、リダイレクトの場合は301や302、などといった3桁の数字で表されます。
詳しいステータスはGoogle(神)で調べるとたくさん出てきますw
とりあえず、上に書いたステータスが良く使うというか、メジャーなステータスですね。
で、このステータスの取り方なんですが、実はWordPressの関数とかではなく、PHPの関数になります。
いかにもWordPressの対策みたいな感じで始めましたが、実はPHPの関数の紹介になってしまいましたw
その関数とはこちらです。
http_response_code()
引数は省略すれば現在のページのステータスを取得することができます。また、ページのステータスを指定したい場合は引数にステータスコードをセットすることでページのステータスを指定することができます。
今回はこの関数を使ってステータスを取得し、404である場合はnoindexを追記するように設定しました。
実際に記述を追加したファイルは共通ヘッダーファイルで、このファイルはFTPでテーマフォルダからDLして変更するでもいいし、管理ページ内のテーマ編集からヘッダをいじるのでもいいと思います。
WordPressの場合はテーマのファイルとか、いろんなファイルがいろんな形で関わっていたりするので、ファイル構成を理解してないと結構大変ですよね。
ということで、これで無事に依頼は完了となりました。
冒頭にも書きましたが、404ページや中身のないコンテンツページはnoindex設定をした方がSEO的に良いみたいなので、もし対策をされていない方々はしてみたらページの検索順位が上がるかもしれませんね!w
では、WEBおじさんでした!