Fessの増分クロールでnofollowを維持する修正と注意点

ページに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だけを変えた場合などは、増分クロールで指定変更を検知できない点も従来どおりです。

関連PR

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です