SEO的には不要なページは'noindex'を記述して評価を上げろてSEOマスターが言ってました。
不要ページで真っ先に候補になるのが固定ページです。これをコードから指定する方法です。
誰ですか。SEOマスターって。
検索すると上位に表示されるサイトたち。大体そう書いてあった(適当)。
◆ 安全にfunctions.phpをカスタマイズする方法
functions.phpの修正に不安がある人は以下を参考にしてください。
functions.phpを直接修正するのは不具合時の対処やテーマ更新時に大変ですよね。それでも手間を減らす方法もあり、ここで紹介する方法と以下の記事の内容でそこそこ安全に改造できます。 拡張用のfunctions.phpを新規作成する 最初にカスタマイズ用のコードを記述するためのphpファイルを作成します。配置するディレクトリとファイル名は好みで大丈夫です。とりあえず、ここではfunctions.phpと同じディレクトリにextend-functions.phpとして作成し...
コードを追加する
functions.phpとかに以下のコードを追加します。
// 特定ページでnoindexを出力
add_filter('wp_robots', function (array $robots) {
if (条件) {
$robots['noindex'] = true;
}
return $robots;
});
このサイトの場合はこうなってます。
// 特定ページでnoindexを出力
add_filter('wp_robots', function (array $robots) {
if (is_home() || is_archive() || is_paged() || is_attachment() || is_date() || is_author() || is_search() || is_404() || is_page(array('authors', 'ranking', 'contact'))) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
}, 2);
何となくmetaタグのfollowも追加。後はfilterの実行優先度を2(最後の行)に上げてます。
仕組み
単にif文で自身の(表示された)ページが特定のページか判断して、対象のページならmetaタグを追加してます。
if文に記述してる関数類を大雑把に解説すると以下です。自身のコードを作る際の参考にしてください。
is_home()
投稿インデックスページか判断する。
いわゆるサイトのトップページではありません。トップページを判断する場合はis_front_page()を使います。
ただし、この機能はWordPressに設定した内容で変わるため、一概に同じパターンにはなりません。
具体的には以下の設定項目の[ホームページ]を判断するのがis_front_page()で[投稿ページ]を判断するのがis_home()です。
なお、ホームページの表示で[最新の投稿]を選択してる場合は両者の関数は同じ結果になるらしい(試してないので不明)。
is_archive()
アーカイブページか判断する。
is_paged()
ページ分割してる場合に2ページ目以降か判断する。
is_attachment()
添付ファイルのページか判断する。
is_date()
日付アーカイブページか判断する。
is_author()
著者アーカイブ(投稿者の記事一覧)か判断する。
is_search()
検索結果ページか判断する。
is_404()
404ページか判断する。
is_page()
任意の固定ページを判断する。自作のページなど、特定の固定ページを判断したい場合に使う。
指定可能なのはID、タイトル、スラッグとなり、配列を利用すると複数個を同時に指定できる。
ちなみに引数0で無条件に固定ページを判断します。固定ページ全部を対象にしたいならそうします。
まぁ、現実的には特定の固定ページのみを対象にすると思うので、配列を利用して以下みたいな記述をします。
is_page(array('authors', 'ranking', 'contact'))
動作確認
少なくとも、コード適用後にサイトを表示してmetaタグを確認しましょう。
対象のページには以下みたいなHTMLが出力されます。
<meta name="robots" content="noindex">
自分の意志と異なるなら条件が間違ってます。悲しみを背負う前に修正しましょう。
本来インデックス登録したいページにnoindexが付いたら終わりだよ。
あとがき
SEOが強めのテーマなら設定ポチポチ機能が標準搭載されてるかもですね。
カスタマイズできる人はテーマに頼らず直接コード書いてもいいと思います。
この記事は参考になりましたか?
コメント