O robots.txt pode estar no subdiretório de um servidor?

16

Eu tenho um subdiretório que gostaria de ocultar dos rastreadores da Web do mecanismo de pesquisa.

Uma maneira de fazer isso é usar a robots.txtno diretório raiz do servidor (a maneira padrão). No entanto, qualquer pessoa que conheça o URL do site e tenha algum conhecimento básico da Web pode acessar o conteúdo do robots.txt e identificar os diretórios não permitidos.

Eu pensei em uma maneira de evitar isso, mas não tenho certeza se vai funcionar.

Let XSer o nome do subdiretório que eu quero excluir. Uma maneira de impedir a indexação do Xdiretório de rastreadores da Web e, ao mesmo tempo, dificultar a identificação de um Xdiretório a partir da raiz robots.txt, é adicionar robots.txto Xdiretório ao invés do diretório raiz.

Se eu seguir esta solução, tenho as seguintes perguntas:

  1. Os rastreadores da Web encontrarão o robots.txtsubdiretório? (já que um robots.txtjá existe e também no diretório raiz)
  2. Se robots.txtestiver no Xsubdiretório, devo usar caminhos relativos ou absolutos ?:

    User-agent: *
    Disallow: /X/
    

    ou

    User-agent: *
    Disallow: /
    
Rafael
fonte
2
Não sei por que você deseja evitar que as pessoas leiam seus diretórios não permitidos, mas se houver dados confidenciais, eles não devem ser bloqueados apenas por robôs, mas também restritos por um login ou outra segurança.
Andrew Lott
Não é esse o caso, eu gostaria que um usuário específico tivesse acesso a ele (nada sensível em termos de dados, apenas para privacidade) e gostaria de não bloquear o diretório.
Rafael
5
Se você tiver preocupações com a privacidade, deve proteger os dados de outra maneira. Não é para isso que serve o robots.txt.
Andrew Lott

Respostas:

18

Não, os rastreadores da Web não lerão ou obedecerão a um arquivo robots.txt em um subdiretório. Conforme descrito no site quase oficial robotstxt.org :

Onde colocá-lo

A resposta curta: no diretório de nível superior do seu servidor da web.

ou nas páginas de ajuda do Google ( grifo meu):

Um robots.txtarquivo é um arquivo na raiz do seu site que indica as partes do seu site que você não deseja que sejam acessadas pelos rastreadores de mecanismo de pesquisa.

De qualquer forma, usar o robots.txt para ocultar páginas confidenciais dos resultados da pesquisa é uma má ideia, pois os mecanismos de pesquisa podem indexar páginas não permitidas no robots.txt se outras páginas apontarem para eles. Ou, conforme descrito na página de ajuda do Google vinculada acima:

Você não deve usar o robots.txt como forma de ocultar suas páginas da Web dos resultados da Pesquisa Google. Isso ocorre porque outras páginas podem apontar para sua página e sua página pode ser indexada dessa maneira, evitando o arquivo robots.txt.

Então, o que você deve fazer?

  • Você pode permitir que os mecanismos de pesquisa rastreiem as páginas (se as encontrarem), mas inclua uma metatag de robôs com o conteúdo noindex,nofollow. Isso instruirá os mecanismos de pesquisa a não indexar essas páginas, mesmo que encontrem links para elas, e a não seguir outros links dessas páginas. (Obviamente, isso funcionará apenas para páginas da Web em HTML.)

  • Para recursos não HTML, você pode configurar seu servidor da Web (por exemplo, usando um .htaccessarquivo) para enviar o cabeçalho HTTP X-Robots-Tag com o mesmo conteúdo.

  • Você pode configurar a autenticação por senha para proteger as páginas confidenciais. Além de proteger as páginas de visitantes humanos não autorizados, também manterá efetivamente os rastreadores da Web afastados.

Ilmari Karonen
fonte
Fantástico, é uma página HTML estática que, adicionando a metatag, fará o truque. Obrigado.
Rafael
5

Você robots.txtdeve estar no diretório raiz e não deve ter outro nome. De acordo com a especificação padrão :

Este arquivo deve estar acessível via HTTP no URL local "/robots.txt".

Andrew Lott
fonte
Dito isto, os rastreadores da Web não procurarão em outro diretório o robots.txt?
Rafael
1
Não que eu já tenha visto. /robots.txté o padrão, então como os mecanismos de pesquisa saberiam onde procurar de outra maneira?
Andrew Lott
0

Você PODE realmente usar um robots.txt em um subdiretório. Atualmente, é assim que tratamos nossos subdomínios de idioma. Usamos um redirecionamento 301 do /robots.txt para um /lang/robots.txt (por subdomínio) e ele está sendo captado corretamente.

Ele também seleciona a estrutura da pasta como a raiz correta ao usar uma barra simples. por exemplo. proibir: /

é tratado como proibindo tudo e não apenas o subdiretório atual no qual o arquivo robots.txt {redirecionado} reside.

Mas, novamente, redirecionamos com um 301 e o colocamos no lugar. Portanto, sem um 301, duvido que algum dia fosse encontrado ...

Brad
fonte