サイト内検索
Cocoonフォーラム
![](https://wp-cocoon.com/wp-content/themes/cocoon-master/screenshot.jpg)
書き込みの前に以下の3点をご確認ください。
何を書き込んだら良いか分からない場合は、以下のテンプレートをコピペしてご利用ください。
不具合・カスタマイズ対象ページのURL:
相談内容:
不具合の発生手順:
解決のために試したこと:
※文字だけでは正しく伝わらない可能性があるため、スクショ画像の添付もお願いします。
※高速化設定をしている場合は無効にしてください。
環境情報:※↑こちらに「Cocoon設定 → テーマ情報」にある「環境情報」を貼り付けてください。
環境情報の取得方法はこちら。
→ https://wp-cocoon.com/theme-report/
高速化設定を無効にするにはこちら。
→ https://wp-cocoon.com/theme-trouble/
フォーラム利用ガイドリンク
- フォーラムガイドライン
- よくある質問と答え(FAQ)
- サポート対象外のケース
- 原因不明の不具合用トラブルシューティング
- トピックにHTMLを貼り付ける方法(推奨ツール:notepad.pw)
- 真っ白画面でのエラーメッセージの確認方法
- ブラウザ環境チェックツール
- Cocoonカスタマイズ依頼
フォーラム質問後、問題等が解決した場合は結果を書き込んでいただけると幸いです。同様の問題で調べている方には、結果が一番気になる部分となります。
Topic starter
2023年8月31日 16:09
おそらく、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
2023年9月1日 12:56
ご連絡ありがとうございます。
robotsタグが2つ出力されていることを確認しました。
wp_robots() 関数があるのでしたらwp_robotsフックで実装した方が良さそうですね。
これって以下のようなコードにまとめてもいいっていうことですよね。
<meta name="robots" content="max-image-preview:large,noindex,follow">
Topic starter
2023年9月1日 15:55
まとめるのはいいと思います。
ただ、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
2023年9月1日 20:15
もし併用した場合は、「検索結果で表示する画像プレビューの最大サイズは large にしてね。でも検索結果には出さないでね。」と矛盾する指定になる気がします。
おっしゃる通り矛盾してますね。
ちょっと修正してみます。
2023年9月1日 23:26
ソースコードを参考にさせていただいて以下のように修正してみました。
https://github.com/xserver-inc/cocoon/blob/3f36e498fd35f461a3e78c47b8e13f4eeba43209/lib/seo.php#L161-L183
投稿・固定ページのnofollowだけmax-image-previewを出力するようにしました。
Topic starter
2023年9月2日 16:36
お手数をおかけしました。ありがとうございます。おおむね問題なく動作していると思います。
ただ、気になる点が 4 つありました。
1 つは、the_noindex_follow_tag() が削除されていること。完全に削除して大丈夫でしょうか。
2 つ目は、タグページの設定にある noindex の説明です。
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' ) で判定した場合の動作をしっかりとは確認していません。
This post was modified 1年前 4回 by Akira
わいひら reacted
2023年9月3日 20:06
ご確認いただきありがとうございます。
1 つは、the_noindex_follow_tag() が削除されていること。完全に削除して大丈夫でしょうか。
確かにそうですね。
関数は残しておくようにしました。
https://github.com/xserver-inc/cocoon/commit/b69f8d6e1ada8f0174607deb649ef52328823016
This post was modified 1年前 by わいひら
2023年9月3日 20:10
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」が優先にはなっていません。
これもおっしゃる通りそういう意味に取れますね。
本来はこちらのような意味のつもりで書いていました。
Cocoon設定の「SEO」タブでチェックを入れて、カテゴリーページとタグページの設定でチェックを入れなければ説明のとおりではありますけど。
説明文を変更しておきました。
https://github.com/xserver-inc/cocoon/commit/d929ea3fb6b9c4702e4e0c199b6cd457724577fb
2023年9月3日 20:14
4 つ目は、WordPress 設定 > 表示設定で「検索エンジンがサイトをインデックスしないようにする」にチェックを入れた場合の動作です。チェックを入れた場合、基本的に noindex, nofollow になります。
こちら「検索エンジンがサイトをインデックスしないようにする」にチェックを入れた状態でカテゴリー・タグページなどでnoindx設定をすると添付画像のようなタグになり矛盾しますね。
Akiraさんの後者のご提案の「検索エンジンがサイトをインデックスしないようにする」にチェックを入れていない時のみテーマ側の設定をするように修正しておきました。
https://github.com/xserver-inc/cocoon/commit/3a502fa5fc00e5c815a285804c4da5b7ff51aed7
Topic starter
2023年9月4日 13:49
大変お手数をおかけしました。ありがとうございます。全て問題なく動作しているように思えます。
以下は、私が確認した結果です。
・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">
This post was modified 1年前 by Akira
わいひら reacted
2023年9月4日 19:05
ご確認いただきありがとうございます!
いえいえこちらこそ詳細なレポートありがとうございます。
今回ご指摘いただいた部分は自分だと気づかない部分でした。
2023年9月4日 19:19
※ 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)準じていれば(リンクを貼っていただければ)転載も自由です。カスタマイズ記事を書く際にコード等をコピペ利用していただいて構いません。
フォーラムの使い方がよくわからない場合は、テストトピックで自由にテストしていただいて構いません。
最近の書き込みはこちら。
詳細なカスタマイズ依頼をするならこちら。