ページにnofollowを指定しているのに、2回目のクロールからリンク先が検索対象に入ってしまう問題を修正しました。変更のないページを増分クロールするときにも、最初のクロールで判断した「リンクをたどらない」という扱いを維持するための変更です。
変更のないページでもリンクをたどらない
初回の取得ではrobots metaタグやX-Robots-Tagヘッダーを読み、nofollowならリンク先をキューへ追加しません。一方、HEADで更新がないと判断した場合や、条件付きGETが304を返した場合は、本文を解析せず保存済みのanchorからリンクを処理します。従来はnofollowページにもanchorが残り、そこでリンク先を再びクロールしていました。
修正後はnofollowページをインデックスするときにanchorを空にします。本文を省略する増分クロールでも、たどるリンクが残らなくなります。nofollowのないページでは従来どおり保存済みリンクを使います。
指定方法と初期値
クロール先のHTMLで、ページ全体の指定を使います。
<meta name="robots" content="index, nofollow">
HTTPヘッダーのX-Robots-Tag: nofollowも対象です。Fessのcrawler.ignore.robots.tagsの初期値はfalseで、robotsタグを無視しない設定です。この修正のための新しい設定キーはありません。
nofollowはリンク追跡の指定で、ページ自体のインデックスを禁止する指定ではありません。ページを検索結果から除外するnoindexとは区別して運用してください。個々のaタグのrel=”nofollow”を新たに解釈する修正でもありません。
既存インデックスへの反映
すでに保存されたanchorは自動で消えません。修正を含むビルドでページの本文を再取得・解析し、文書を更新する必要があります。増分クロールで変更なしと判定され続けるページは、増分クロールを無効にして再取得するなど、本文を取り直す運用を検討してください。リンク先の既存文書を削除する処理も、このPRには含まれません。
更新後のnofollowページは、リンク先URLを指定するanchor:<URL>検索には一致しなくなります。また、Last-Modifiedを更新せずX-Robots-Tagだけを変えた場合などは、増分クロールで指定変更を検知できない点も従来どおりです。