web-dev-qa-db-ja.com

表示されないように疑似ページを隠す正しい方法は?

私たちが開発したサイトのホームページには、4つのコンテンツがあります。親ページと、PHPを使用して親ページに取り込む3つの「テキスト」ページです。あなたが好きならそれらをFoo、Bar1、Bar2、Bar3と呼んでください。

たぶん、これは複雑なページの問題を解決するための正しい方法であるかどうかは正しくありませんが、それは私たちにとってもクライアントにとってもうまくいき、現在彼は慣れています。

enter image description here

ちょっとした問題は、これらの疑似ミニページBar1、Bar2、Bar3がグーグルによって索引付けされており、それ自体でページとして扱えることです。そのように提供されたとき、彼らはそれほどひどく見えません、しかし、可能であればそれを避けたいです。

私はこれを修正することができます図:

1)htaccessでmysite/bar1をmysite/fooにリダイレクトする
または
2)私たちのSEOプラグイン( Yoast )を介してロボットのインデックスを適用する

しかし、私はここでどちらのアプローチがより正しいのか、あるいはもっと良い方法があるのか​​どうかを尋ねていますか?

3
hawbsl

それらは2つの異なることです。

  1. リダイレクトとは、アクセスできなくなったことを意味します。

  2. noindexは、URLにアクセスしてもまだアクセス可能な間は検索エンジンがそれを無視することを意味します。

だから私はオプション1をお勧めします。これはあなたがを改善することができることをこれを行う簡単な方法です。 (例えば、これは静的なフロントページを設定することを期待しており、他のいかなる状況も処理しません)

function wpse_211889_template_redirect()
{
    if ( ! is_page() ){
        return;
    }

    $frontpage_ID = get_option('page_on_front');

    global $post;
    if( $post->post_parent && $frontpage_ID === $post->post_parent )
    {
        wp_redirect( home_url() );
        exit();
    }

}
add_action( 'template_redirect', 'wpse_211889_template_redirect' );
4
kraftner

直接リンクがない場合は、ページにインデックスを付けないでください。検索エンジンはURLを推測しないので、ここでのあなたの問題の大部分はあなた自身のコードに関するものであると思います - すなわち、あなたはエンジンがたどることができる場所にリンクを生成しています。

それが私だったら、 この使い方の新しい投稿タイプ を作成し、'public'->falseで登録して、明示的にコードを書いた場合にのみアクセスできるようにします。それらを表示します。これは、検索結果の生成、RSSフィード、その他表示されるものを制御するのに役立つので、その他の潜在的な問題による問題を回避するためのものです。

7
s_ha_dum