robots.txt でブロックすればページは検索結果から消えますか?
消えるとは限りません。robots.txt はクロール(取得)を止めるだけで、インデックス登録を止めるものではありません。他のサイトからリンクされていると、内容を読まないまま URL だけが検索結果に載ることがあります。検索結果から確実に外したい場合は、robots.txt でブロックせずにクロールを許可したうえで、そのページに noindex(metaタグ または X-Robots-Tag ヘッダ)を置きます。ブロックしているとクローラーが noindex を読めないため、かえって残り続けます。
Allow と Disallow が両方一致したらどちらが勝ちますか?
GoogleやBingが従うRFC 9309では、パスの一致が最も長いルールが勝ちます。例えば Disallow: /private/ と Allow: /private/ok があるとき、/private/ok は Allow(10文字)のほうが長く一致するので許可、/private/x は Disallow(9文字)だけが一致するのでブロックです。長さが完全に同じで衝突した場合は、より許可的な Allow が勝ちます。この順序はファイル内の行の並び順とは関係ありません。
* と $ はどう使いますか?
* は任意の長さの文字列に一致します。Disallow: /*? は「?を含むすべてのURL」、Disallow: /*.pdf は「.pdfを含むURL」を指します。$ は行末に置いたときだけ特別な意味を持ち、URLの終わりに一致します。Disallow: /*.pdf$ なら .pdf で終わるURLだけがブロックされ、/a.pdf?x=1 は対象外です。この2つはオリジナルの仕様には無い拡張ですが、主要な検索エンジンはすべて対応しています。
robots.txt が404のときはどうなりますか?
404(存在しない)が返る場合、クローラーは「制限なし」とみなしてサイト全体をクロールします。robots.txt が無いこと自体は問題ではありません。一方、5xx(サーバーエラー)が続く場合、Googleは安全側に倒して一時的にサイト全体をクロールしない扱いにすることがあります。robots.txt を置かないなら404を返すのが正しく、サーバーエラーやリダイレクトループにならないようにしてください。