note から WordPress に出戻りました!😭

robots.txt で「?PageSpeed=noscript」を除外してクロールさせない方法

だるかぶ

サンダルでスーパーカブ乗りの『だるかぶ』です!
ご訪問ありがとうございます。ゆっくりしていってね。(本ページは広告を含みます。)

Google Search Console の「ページがインデックスに登録されなかった理由」をチェックしていると、「重複しています。ユーザーにより、正規ページとして選択されていません」に下記の URL が登録されていました。

重複しています。ユーザーにより、正規ページとして選択されていません
https://example.com/?PageSpeed=noscript

重複コンテンツだとペナルティーを受けそうで怖い。

他にも下のように末尾に ?PageSpeed=noscript が付いている URL はあるんだが、こちらはカノニカルになっているので特に対策は必要なし。

代替ページ(適切な canonical タグあり)
https://example.com/2828?PageSpeed=noscript

そもそも、?PageSpeed=noscript って何?

末尾に ?PageSpeed=noscript が付く URL が何故クロールされるのか調べてみたんですが、ハッキリとは分かりませんでした。

Google の PageSpeed Insights が影響しているという情報もあったし、XServer の高速化の仕組みが関係しているなどの書き込みもありました。

正確なことは分からなかったので、また分かったらこの記事に追記しますね。

とはいえ ?PageSpeed=noscript が付いている URL は不要なのに無駄にクロールされているので robots.txt で除外する事にしました。

robots.txt 設置

クローラーは、まず最初に robots.txt を見て、許可されているサイト内のページを効率よくクロールしてくれます。

無駄なページをクロールさせないことで、サーバーリソースの削減と、Google ボットさんにも優しいサイトになりますね。

robots.txt は下記のようにドメイン直下に設置します。

https://example.com/robots.txt

とはいえ、テキストエディタで robots.txt を書いて、FTP でアップロードするのは面倒くさいので、Yoast SEO の管理画面で robots.txt を編集する事にしました。

Yoast SEO の robots.txt 編集画面

Yoast SEO の robots.txt 編集画面

Yoast SEO の管理画面で下の行を追加しました。

Disallow: /*?PageSpeed=noscript

元々書かれていた行も合わせると下記のような記述になりました。

User-agent: GPTBot
Disallow: /

# START YOAST BLOCK
# ---------------------------
User-agent: *
Disallow: /wp-json/
Disallow: /?rest_route=
Disallow: /*?PageSpeed=noscript # 2025-02-08

Sitemap: https://example.com/sitemap_index.xml
# ---------------------------
# END YOAST BLOCK

robots.txt の書き方の注意点としては下記になります。

  • 日本語のコメントは使えない。

  • シャープ(#)から行末までがコメント

しばらく時間がたったら、Google Search Console で確認してみます。

現場からは以上です。それでは、またッ!!!