私は他の場所にショートコードで引っ張るコンテンツを保持するためのカスタム投稿タイプを使うプラグインを持っています。しかし、新しいサイトで、CPTの投稿の1つがGoogleの検索結果に表示され始めたことに気付きました。投稿はどこにも直接リンクされていません。どのようにそれがそこに現れるのでしょうか? Googleに表示されないようにするにはどうすればよいですか。
Publicにfalseを設定しました。これで、ページがホームページに変わりました。これが私の問題を完全に解決することを私は知りません。他に何ができますか?
register_post_type('mycpt', array(
'labels' => $labels,
'public' => false,
'show_ui' => true,
'menu_icon' => $icon_svg,
'_builtin' => false,
'capability_type' => 'page',
'hierarchical' => true,
'rewrite' => false,
'query_var' => 'mycpt',
'exclude_from_search' => true,
'supports' => array(
'title', 'editor', 'revisions',
),
'show_in_menu' => true,
));
Yoast などのSEOプラグインを使用している場合は、Googleおよび他の検索エンジンで使用されているサイトマップにすべてのカスタム投稿タイプ(および分類法)が自動的に追加されます。
サイトマップから明示的に除外する必要があります。たとえば、Yoastでは、これは[XMLサイトマップ]設定ページの[投稿タイプ]/[分類法]タブにあります。
また、 ウェブマスターツール - を通じてGoogleからリンクを削除することを忘れないでください。それ以外の場合は、Googleによるサイトのインデックスの再作成を待つ必要があります。
デフォルトで投稿タイプをYoastから隠す方法があります。しかし、あなたのミラージュはあなたがあなたの投稿タイプで何をしているかによって変わるかもしれません。フロントエンドで直接使用しているのであれば、これはうまくいきません。私の場合は、ショートコードでコンテンツを引っ張っていました。
そのため、投稿タイプを登録するときの 'public'引数は、一度にいくつかの引数を有効/無効にします。ここで説明を参照してください: https://codex.wordpress.org/Function_Reference/register_post_type
より細かいレベルの制御のためにこれらを手動で設定できます。私がこの問題を解決するのに役立ったという私の意見は、publicly_queryableでした。これをfalseに設定すると、私のカスタム投稿タイプでフロントエンドページが表示されなくなりました。私は必要としませんでした。これは、投稿タイプをYoastから隠しました。管理者向けのものはすべてうまくいきましたが、ポストタイプはまだ必要な方法で機能していました。