Wordpress で画像ページを検索結果に表示させない
投稿日:2017年09月12日
先日、Googleの検索結果に WordPressのメディア詳細ページが表示されて、アクセスしてみると、ロゴがポツーンと設置しあるだけのページでした。
プロジェクトの運用側で想定していない現象で、メディア詳細ページは検索結果に表示させたくないという要望が上がったので、その時の備忘録です。
WordPressってデフォルトの設定だと Google の検索結果にメディアを追加からアップした画像類が表示されてしまうんですね…。
サイトの仕様によっては、好都合なのかもしれませんが、これが不都合になる場合は下記の設定をテーマに施します。
image_default_link_type
をnone
にするattachment.php
にアクセスがあった場合に 404を返す- サイトが
attachment.php
に依存している場合の処理
image_default_link_type を none にする
/wp-admin/options.php
にアクセス。
image_default_link_type
を探し、値を none
に設定します。
これにより投稿に画像を挿入する際に画像ページへのリンクの設定を無しに出来ます。
その結果、画像ページへのリンク(Googleが辿るルート)を作ってしまうリスクを減らすことができます。
attachment.php にアクセスがあれば HTTPステータス404を返す
HTTPステータス404を返すコードを functions.php
に追加します。
404を返すことにより、Google の bot が巡廻しないので、検索結果に表示されていてもいずれ消えてくれます。
メディア詳細ページにアクセスされたら 404を返すかどうかはサイトの要件によりけりかと思いますので、クライアントまたはディレクターに適宜確認してください。
<?php
function cusutom_redirect_404 () {
if ( is_attachment() ) {
global $wp_query;
$wp_query->set_404();
status_header( 404 );
nocache_headers();
}
}
add_action( 'template_redirect', 'cusutom_redirect_404' );
2
3
4
5
6
7
8
9
10
サイトが attachment.php に依存している場合
運用しているサイトが attachment.php
に依存している機能がある、またはプラグインを追加していてメディア詳細ページが 404返したらマズイという場合は noindex
を設定して下さい。
header.php
などに記載しているであろう head
セクションに下記のコードを挿入してください。
検索エンジンにインデックスさせないようになります。
<?php if ( is_attachment() ): ?>
<meta name="robots" content="noindex">
<?php endif; ?>
2
3
以上の内容を施せば、attachment.php
で生成されるページが Google の bot の巡廻からスルーできるかと思います。
あとがき
前述したように、担当したプロジェクトで検索結果に予期せぬ画像が表示されてしまったので、それの備忘録でした。
attachment.php
で生成されるページが表示されて良いものかリリース前にディレクターに確認をとっておくべきでした。
今後のプロジェクトでは気をつけます。