Cocoonフォーラム

サイト内検索
書き込みの前に以下の3点をご確認ください。
  1. 1つのトピックにつき1つの質問を書き込んでください
  2. 不具合・カスタマイズ対象ページのURLを提示高速化を無効にしてください
  3. 該当部分のキャプチャ・環境情報とともに書き込んでいただけると助かります

何を書き込んだら良いか分からない場合は、以下のテンプレートをコピペしてご利用ください。

不具合・カスタマイズ対象ページのURL:

相談内容:

不具合の発生手順:

解決のために試したこと:

※文字だけでは正しく伝わらない可能性があるため、スクショ画像の添付もお願いします。
※高速化設定をしている場合は無効にしてください。
環境情報:

※↑こちらに「Cocoon設定 → テーマ情報」にある「環境情報」を貼り付けてください。

環境情報の取得方法はこちら。
https://wp-cocoon.com/theme-report/
高速化設定を無効にするにはこちら。
https://wp-cocoon.com/theme-trouble/

フォーラム利用ガイドリンク

  1. フォーラムガイドライン
  2. よくある質問と答え(FAQ)
  3. サポート対象外のケース
  4. 原因不明の不具合用トラブルシューティング
  5. トピックにHTMLを貼り付ける方法(推奨ツール:notepad.pw
  6. 真っ白画面でのエラーメッセージの確認方法
  7. ブラウザ環境チェックツール
  8. Cocoonカスタマイズ依頼

フォーラム質問後、問題等が解決した場合は結果を書き込んでいただけると幸いです。同様の問題で調べている方には、結果が一番気になる部分となります。

noindex や nofollow ...
 
共有:
通知
すべてクリア

[解決済] noindex や nofollow の場合に robots メタタグが重複している

12 投稿
2 ユーザー
5 Reactions
678 表示
(@akira)
Famed Member Registered
結合: 7年前
投稿: 1657
トピックスターター  

おそらく、WordPress 5.7 からの不具合だと思います。

投稿ページや固定ページの編集ページにある SEO カスタムフィールドで noindex や nofollow にした場合、2 つの robots メタタグが出力されます。

<meta name="robots" content="max-image-preview:large">
<meta name="robots" content="noindex,follow">

 

また、404 ページや検索結果ページなどの noindex としているページでも同様です。原因は、WordPress と Cocoon が共に robots メタタグを出力しているためです。

WordPress 5.7 から wp_robots() 関数が実装されています。また、フィルターフック wp_robots で出力を変更できます。

一方、Cocoon は、lib/seo.php の 137 行目から 159 行目 で noindex と nofollow の robots メタタグを出力しています。

robots メタタグは、WordPress か Cocoon のどちらか一方だけで出力するのがいいように思えます。ただ、どっちで出力するのがわいひらさんのお好みか分からないため、プルリクエストは送っていません。私であれば、wp_head で出力するのは止めて、フックの wp_robots で管理すると思います。


   
わいひら reacted
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17391
 

ご連絡ありがとうございます。
robotsタグが2つ出力されていることを確認しました。
wp_robots() 関数があるのでしたらwp_robotsフックで実装した方が良さそうですね。

これって以下のようなコードにまとめてもいいっていうことですよね。

<meta name="robots" content="max-image-preview:large,noindex,follow">

 


   
(@akira)
Famed Member Registered
結合: 7年前
投稿: 1657
トピックスターター  

まとめるのはいいと思います。

ただ、max-image-preview と noindex の併用は、どうなんでしょうね。私であれば、その 2 つは併用しないです。

もし併用した場合は、「検索結果で表示する画像プレビューの最大サイズは large にしてね。でも検索結果には出さないでね。」と矛盾する指定になる気がします。

現在の Cocoon では、noindex とするページで noindex, follow としています。

https://github.com/xserver-inc/cocoon/blob/ef85b12b5a9d6c9a7f67085c824347d289d49cbb/lib/seo.php#L143

これを wp_robots で管理する場合は、私ならこんな感じで max-image-preview は出力しないです。

add_filter( 'wp_robots', function( array $robots ) {
  if ( is_noindex_page() ) {
    $robots['noindex'] = true;
    $robots['follow'] = true;
    $robots['max-image-preview'] = false;
  }
  return $robots;
});

   
わいひら reacted
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17391
 

投稿者:: @akira

もし併用した場合は、「検索結果で表示する画像プレビューの最大サイズは large にしてね。でも検索結果には出さないでね。」と矛盾する指定になる気がします。

おっしゃる通り矛盾してますね。
ちょっと修正してみます。


   
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17391
 

ソースコードを参考にさせていただいて以下のように修正してみました。
https://github.com/xserver-inc/cocoon/blob/3f36e498fd35f461a3e78c47b8e13f4eeba43209/lib/seo.php#L161-L183
投稿・固定ページのnofollowだけmax-image-previewを出力するようにしました。


   
(@akira)
Famed Member Registered
結合: 7年前
投稿: 1657
トピックスターター  

お手数をおかけしました。ありがとうございます。おおむね問題なく動作していると思います。

ただ、気になる点が 4 つありました。

1 つは、the_noindex_follow_tag() が削除されていること。完全に削除して大丈夫でしょうか。

2 つ目は、タグページの設定にある noindex の説明です。

https://github.com/xserver-inc/cocoon/blob/3304e766bc27c39ab408f8a57dfd5559bc8c8c21/lib/content-tag.php#L248

Cocoon設定の「SEO」タブにあるカテゴリーのnoindex設定が優先されます。と書かれていますが、カテゴリーではなくタグの間違いのような気がします。

3 つ目は、2 つ目と同じ部分です。カテゴリーページとタグページの設定にある noindex の説明に Cocoon設定の「SEO」タブにあるカテゴリーのnoindex設定が優先されます。と書かれています。ただ、Cocoon設定の「SEO」タブにあるカテゴリーのnoindex設定でチェックを入れず(つまり noindex ではない)、カテゴリーページやタグページの設定で noindex にチェックを入れた場合、noindex, follow となります。Cocoon設定の「SEO」タブにあるカテゴリーのnoindex設定が優先はされていません。is_noindex_page() を見ても Cocoon設定の「SEO」が優先にはなっていません。

( is_category() && (is_category_page_noindex() || get_the_category_noindex()) )

説明と動作が一致していないのが気になりました。Cocoon設定の「SEO」タブでチェックを入れて、カテゴリーページとタグページの設定でチェックを入れなければ説明のとおりではありますけど。

4 つ目は、WordPress 設定 > 表示設定で「検索エンジンがサイトをインデックスしないようにする」にチェックを入れた場合の動作です。チェックを入れた場合、基本的に noindex, nofollow になります。

<meta name="robots" content="noindex, nofollow">

ただ、is_noindex_page() に該当するページでは noindex, follow になります。

<meta name="robots" content="noindex, follow">

動作が一致しないのが気になりました。もしかしたら、wp_robots_tag_custom() をこのように変更するか…

if ( is_noindex_page() && get_option( 'blog_public' ) ) {
  省略
} elseif ( is_singular() ) {
  省略
}

あるいは、最初に get_option( 'blog_public' ) で判定するのがいいかもしれません。

if ( get_option( 'blog_public' ) ) {
  if ( is_noindex_page() ) {
    省略
  } elseif ( is_singular() ) {
    省略
  }
}

ただ、get_option( 'blog_public' ) で判定した場合の動作をしっかりとは確認していません。

この投稿は1年前 4回ずつAkiraに変更されました

   
わいひら reacted
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17391
 

ご確認いただきありがとうございます。

投稿者:: @akira

1 つは、the_noindex_follow_tag() が削除されていること。完全に削除して大丈夫でしょうか。

確かにそうですね。
関数は残しておくようにしました。
https://github.com/xserver-inc/cocoon/commit/b69f8d6e1ada8f0174607deb649ef52328823016

この投稿は1年前ずつわいひらに変更されました

   
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17391
 

投稿者:: @akira

2 つ目は、タグページの設定にある noindex の説明です。

https://github.com/xserver-inc/cocoon/blob/3304e766bc27c39ab408f8a57dfd5559bc8c8c21/lib/content-tag.php#L248

Cocoon設定の「SEO」タブにあるカテゴリーのnoindex設定が優先されます。と書かれていますが、カテゴリーではなくタグの間違いのような気がします。

確認しました。

投稿者:: @akira

3 つ目は、2 つ目と同じ部分です。カテゴリーページとタグページの設定にある noindex の説明に Cocoon設定の「SEO」タブにあるカテゴリーのnoindex設定が優先されます。と書かれています。ただ、Cocoon設定の「SEO」タブにあるカテゴリーのnoindex設定でチェックを入れず(つまり noindex ではない)、カテゴリーページやタグページの設定で noindex にチェックを入れた場合、noindex, follow となります。Cocoon設定の「SEO」タブにあるカテゴリーのnoindex設定が優先はされていません。is_noindex_page() を見ても Cocoon設定の「SEO」が優先にはなっていません。

これもおっしゃる通りそういう意味に取れますね。
本来はこちらのような意味のつもりで書いていました。

投稿者:: @akira

Cocoon設定の「SEO」タブでチェックを入れて、カテゴリーページとタグページの設定でチェックを入れなければ説明のとおりではありますけど。

説明文を変更しておきました。
https://github.com/xserver-inc/cocoon/commit/d929ea3fb6b9c4702e4e0c199b6cd457724577fb

 

 


   
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17391
 

投稿者:: @akira

4 つ目は、WordPress 設定 > 表示設定で「検索エンジンがサイトをインデックスしないようにする」にチェックを入れた場合の動作です。チェックを入れた場合、基本的に noindex, nofollow になります。

こちら「検索エンジンがサイトをインデックスしないようにする」にチェックを入れた状態でカテゴリー・タグページなどでnoindx設定をすると添付画像のようなタグになり矛盾しますね。

Akiraさんの後者のご提案の「検索エンジンがサイトをインデックスしないようにする」にチェックを入れていない時のみテーマ側の設定をするように修正しておきました。
https://github.com/xserver-inc/cocoon/commit/3a502fa5fc00e5c815a285804c4da5b7ff51aed7

 


   
(@akira)
Famed Member Registered
結合: 7年前
投稿: 1657
トピックスターター  

大変お手数をおかけしました。ありがとうございます。全て問題なく動作しているように思えます。

以下は、私が確認した結果です。

・index にするページ。基本はこれ。

<meta name="robots" content="max-image-preview:large">

is_noindex_page() に該当するページ

※ Cocoon 設定 > SEO の noindex 項目にチェックを入れたページ、カテゴリーやタグの設定で「インデックスしない(noindex)」にチェックを入れた場合、 404 ページ、検索結果ページなど

<meta name="robots" content="noindex, follow">

・投稿ページと固定ページの SEO カスタムフィールドで「インデックスしない(noindex)」にチェックを入れた場合

<meta name="robots" content="noindex">

・投稿ページと固定ページの SEO カスタムフィールドで「リンクをフォローしない(nofollow)」にチェックを入れた場合

<meta name="robots" content="max-image-preview:large, nofollow">

・投稿ページと固定ページの SEO カスタムフィールドで「インデックスしない(noindex)」と「リンクをフォローしない(nofollow)」にチェックを入れた場合

<meta name="robots" content="noindex, nofollow">

・WordPress管理画面 > 設定 > 表示設定の「検索エンジンがサイトをインデックスしないようにする」をチェックを入れた場合。Cocoon 設定より優先され、全てのページで noindex, nofollow になる。

<meta name="robots" content="noindex, nofollow">
この投稿は1年前ずつAkiraに変更されました

   
わいひら reacted
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17391
 

ご確認いただきありがとうございます!
いえいえこちらこそ詳細なレポートありがとうございます。
今回ご指摘いただいた部分は自分だと気づかない部分でした。


   
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17391
 

投稿者:: @akira

※ Cocoon 設定 > SEO の noindex 項目にチェックを入れたページ、カテゴリーやタグの設定で「インデックスしない(noindex)」にチェックを入れた場合、 404 ページ、検索結果ページなど

<meta name="robots" content="noindex, follow">

・投稿ページと固定ページの SEO カスタムフィールドで「インデックスしない(noindex)」にチェックを入れた場合

<meta name="robots" content="noindex">

動作的に全く影響はないのですがnoindexのみの際の記述をfollowを加える仕様に統一しておきました。
https://github.com/xserver-inc/cocoon/commit/dd9558c8cfdb0a1c94b5bff44dde52ee22f509ec


   
Akira reacted
共有:

問題の解決に至った場合には、トピック冒頭の「解決済み」をクリックしていただけますと幸いです。

また、有用な回答があった場合は返信右下にある「いいね!」もご活用ください。回答者の励みになります。

「いいね!」機能はフォーラム登録者のみが利用できる機能です。

CC BY-ND 2.1)準じていれば(リンクを貼っていただければ)転載も自由です。カスタマイズ記事を書く際にコード等をコピペ利用していただいて構いません。

フォーラムの使い方がよくわからない場合は、テストトピックで自由にテストしていただいて構いません。

最近の書き込みはこちら。

詳細なカスタマイズ依頼をするならこちら。

タイトルとURLをコピーしました