Wordpress で画像ページを検索結果に表示させない

投稿日:2017年09月12日

Tags: php WordPress メモ

先日、Googleの検索結果に WordPressのメディア詳細ページが表示されて、アクセスしてみると、ロゴがポツーンと設置しあるだけのページでした。

プロジェクトの運用側で想定していない現象で、メディア詳細ページは検索結果に表示させたくないという要望が上がったので、その時の備忘録です。

WordPressってデフォルトの設定だと Google の検索結果にメディアを追加からアップした画像類が表示されてしまうんですね…。

サイトの仕様によっては、好都合なのかもしれませんが、これが不都合になる場合は下記の設定をテーマに施します。

  • image_default_link_typenone にする
  • attachment.php にアクセスがあった場合に 404を返す
  • サイトが attachment.php に依存している場合の処理

/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' );
1
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; ?>
1
2
3

以上の内容を施せば、attachment.php で生成されるページが Google の bot の巡廻からスルーできるかと思います。

あとがき

前述したように、担当したプロジェクトで検索結果に予期せぬ画像が表示されてしまったので、それの備忘録でした。

attachment.php で生成されるページが表示されて良いものかリリース前にディレクターに確認をとっておくべきでした。

今後のプロジェクトでは気をつけます。

  • シェア:

Last Updated: 1/29/2021, 12:59:28 PM