検索エンジンのスパイダーが @login_required をバイパスして、通常はログイン ユーザーが必要なページを表示できるようにするクリーンな方法を探しています。検索エンジンを自動的にダミー アカウントに記録するミドルウェアを作成することはできますが、それは正確にはクリーンとは言えません。より良い解決策の提案はありますか? ありがとう。
3 に答える
これをしないでください。これは「クローキング」であり、Google のインデックスから追放される可能性があります。
クローキングとは、ユーザーや検索エンジンに異なるコンテンツや URL を提示する行為を指します。ユーザー エージェントに基づいて異なる結果を提供すると、サイトが不正であると認識され、Google インデックスから削除される可能性があります。
代わりに、Google のFirst Click Freeソリューションを実装する必要があります。この設定では、Google 検索結果からの最初のクリックですべてのコンテンツを表示でき、その後のクリックはトラップされます。これは、リファラー ベースまたは Cookie ベースで行うことができます。First Click Free の詳細については、こちらをご覧ください。
なぜあなたはこれをしたいのですか?検索エンジンがページを見ることができれば、情報は検索エンジンの結果ページに表示されるため、誰でもログインしなくてもページを見ることができます。いずれにせよ、スパイダーまたはボットを識別する唯一の方法は、そのユーザーエージェント文字列を使用することです。これは、なりすましには簡単です。
理解できません。「@login_required」には、「必須」という重要な単語があります。それが「必要」である場合、それには正当な理由があります。Web ページを表示するには、資格情報が必須であることを意味します。内容がプライベート、シークレット等の内容であるため、
ページを検索エンジン経由で利用できるようにしたい場合は、それらを公開する必要があるため、ログインは不要になりました。そのため、ビューは @login_required デコレーターで保護されるべきではありません。
おそらく、問題はページの可用性を超えています。おそらく、あなたのコンテンツは実際に公開されるように作成されており、ビューはこのデコレーターによって保護されるべきではありません. 必要なのは、すべてのユーザー (ログに記録されているか匿名であるか) のパブリック部分をロードし、ユーザーが識別された場合に最終的にプライベート ビットをロードすることだけです。
それ以外の場合、スパイダー用のバックドアを残すことは間違いなく悪い考えです。なぜなら、あなたのプライベート コンテンツはプライベートではなくなるからです。