O Google não rastreia arquivos CDN

11

Percebi que as Ferramentas do Google para webmasters estão relatando muitos recursos bloqueados no meu site. No momento, todos os "recursos bloqueados" são .css, .js e imagens (.jpg, .png) que eu sirvo da Cloudfront CDN.

Passei muito tempo testando e tentando descobrir por que o Google não rastreia esses arquivos e relata um status de "bloco de recursos".

Atualmente, eu sirvo esses arquivos de vários nomes de host como: cdn1.example.com, cdn2.example.com,…

cdn1, cdn2 e os outros são CNAME para o nome da distribuição na nuvem.

Teste: tentei usar diretamente a distribuição na nuvem (sem CNAME), mas o problema persiste.

Atualmente, meu robots.txt se parece com isso:

# Google AdSense
User-agent: Mediapartners-Google
Disallow:

#Google images
User-agent: Googlebot-Image
Disallow: /

User-agent: *
Disallow: /homepage
Disallow: /index.php*
Disallow: /uncategorized*
Disallow: /tag/*
Disallow: *feed
Disallow: */page/*
Disallow: *author*
Disallow: *archive*
Disallow: */category*
Disallow: *tag=*
Disallow: /test*
Allow: /

E exemplos de arquivos bloqueados em uma página de exemplo:

  • cdn1.example.com/wp-content/plugins/wp-forecast/wp-forecast-default.css

  • cdn9.example.com/wp-content/plugins/bwp-minify/min/?f=wp-content/themes/magazine/css/font-awesome.min.css,wp-content/themes/magazine/css/responsive .css

  • cdn5.example.com/wp-content/themes/magazine/images/nobg.png

  • cdn6.example.com/wp-content/plugins/floating-social-bar/images/fsb-sprite.png

  • cdn5.example.com/wp-content/uploads/2013/11/Design-Hotel-3-80x80.jpg

  • cdn5.example.com/wp-content/uploads/2013/11/Marta-Hotel-7-270x225.jpg

Até tentei permitir tudo no robots.txt, mas sempre tenho o mesmo resultado.

Também observei atentamente as configurações do CloudFront na Amazon e não vi nada que pudesse estar relacionado (não uso e nunca usei a opção: "Restringir o acesso do visualizador (usar URLs assinados ou cookies assinados)".

No momento, passei muito tempo analisando isso e não tenho mais idéias.

Alguém pode pensar em um motivo pelo qual o Googlebot seria impedido de rastrear arquivos hospedados no Amazon CloudFront?

tonelot
fonte
Você examinou os cabeçalhos de resposta HTTP desses "recursos bloqueados"? Que erro exato o GWT informa? Se eles foram bloqueados pelo robots.txt, deve informar isso.
MrWhite
Comentário secundário sobre o seu arquivo robots.txt ... Os URLs têm o prefixo correspondente por padrão; portanto, nunca é necessário ter *no final do "prefixo" do URL. /test*é o mesmo que /test.
MrWhite
Olá, não consigo examinar os cabeçalhos, porque não sei o que o googlebot está recebendo. Acabei de receber a mensagem: "O Googlebot não conseguiu obter todos os recursos desta página. Aqui está uma lista:" e, em seguida, a lista de todos os arquivos hospedados pela CDN (js, css e imagens) com o "Motivo": "Bloqueado".
Tonot 27/03
Desde que eu estou pedindo para "buscar e processar" Vejo também que a prestação não tem os estilos e imagens ....
tonelot
Além disso, obrigado pela observação sobre a sintaxe do robots.txt.
tonelot

Respostas:

7

Portanto, a solução parece ser que o Amazon Cloudfront também avalie o meu robots.txte, de alguma forma, use regras de sintaxe diferentes do google.

A versão de trabalho do meu robots.txté a seguinte:

User-agent: Googlebot-Image
Disallow: /
User-agent: *
Disallow: /homepage
Disallow: /uncategorized
Disallow: /page
Disallow: /category
Disallow: /author
Disallow: /feed
Disallow: /tags
Disallow: /test

Uma observação muito importante para dizer que isso não está executando exatamente as mesmas funções de antes. De fato, retirei todas as linhas em branco, curingas e diretivas "allow". Significando que o resultado final não é o mesmo ... mas acho que está perto o suficiente para mim. Por exemplo, ele não exclui as páginas de tags quando passadas na string de consulta ...

Três notas importantes:

  1. Se você estiver testando isso, não se esqueça de invalidar a robots.txtdistribuição na nuvem para cada iteração. Apenas verificar se você está recebendo a última versão não é suficiente.

  2. Não consegui encontrar em nenhum lugar uma definição da robot.txtsintaxe entendida pelo amazon cloudfront. Então, foi tentativa e erro.

  3. Para testar os resultados, use a ferramenta "buscar e renderizar" do webmaster do Google e seu testador compatível com dispositivos móveis ( https://www.google.com/webmasters/tools/mobile-friendly/ )

Não entendo por que o cloudfront está validando e avaliando o meu robots.txt. Este arquivo é um "acordo" comigo e com os rastreadores que acessam meu site. A Amazon não tem negócios no meio. Mexer com o meu robots.txté simplesmente estúpido.

Nunca me ocorreu que o cloudfront pudesse adivinhar minha robots.txtsintaxe.

tonelot
fonte
2

Crie um robots.txt em um balde.

Crie outra origem para sua distribuição na nuvem.

Defina a prioridade do seu bucket mais alta que o seu site.

Invalide o robots.txt do seu site no Cloudfront.

Depois de fazer o acima, o Google lerá o robots.txt dos sites ao rastrear seu site e verá os diferentes robots.txt ao seguir os links do seu CDN.

Parminder Singh Chahal
fonte
1

O Google não impede que recursos externos sejam indexados usando um robots.txt na raiz do site principal. Usando um subdomínio, um CDN ou outro é classificado como um domínio externo; portanto, a única maneira de bloquear o conteúdo é usar uma resposta de cabeçalho no arquivo fornecido pela própria CDN ou usar um robots.txt no CDN ou subdomínio .

Usando:

#Google images
User-agent: Googlebot-Image
Disallow: /

Se você bloquear apenas imagens locais, precisará fazer o mesmo na CDN.

As chances são de um problema de resposta do cabeçalho e você deve executar um 'CURL' em um dos arquivos na CDN. Deve ser algo como:

HTTP/1.0 200 OK
Cache-Control: max-age=86400, public
Date: Thu, 10 May 2012 07:43:51 GMT
ETag: b784a8d162cd0b45fcb6d8933e8640b457392b46
Last-Modified: Tue, 08 May 2012 16:46:33 GMT
X-Powered-By: Express
Age: 7
Content-Length: 0
X-Cache: Hit from cloudfront
X-Amz-Cf-Id: V_da8LHRj269JyqkEO143FLpm8kS7xRh4Wa5acB6xa0Qz3rW3P7-Uw==,iFg6qa2KnhUTQ_xRjuhgUIhj8ubAiBrCs6TXJ_L66YJR583xXWAy-Q==
Via: 1.0 d2625240b33e8b85b3cbea9bb40abb10.cloudfront.net (CloudFront)
Connection: close

As coisas a serem observadas são:

HTTP/1.1 200 OK
Date: Tue, 25 May 2010 21:42:43 GMT
X-Robots-Tag: googlebot: noindex
Simon Hayter
fonte
Oi, obrigado pela sua resposta. Mas meu problema não é como impedir que as imagens sejam indexadas. Para evitar confusão, tirei isso do robots.txt e os resultados são os mesmos. O Googlebot continua reclamando que está bloqueado nos arquivos que hospedo no cloudfront e não sei por que. Mais alguma ideia? Obrigado por yoru atenção, miguel
tonelot
Você não entendeu, eu sei que você não quer que ele seja bloqueado ... por isso eu disse na parte inferior para garantir que sua resposta no cabeçalho NÃO esteja fazendo uma tag X-robots, você também diz que check the robots.txt on your CloudFront distributioneu disse isso também! A única maneira de bloquear as imagens que estão sendo indexadas na CDN é a tag x-robots e um robots.txt na própria CDN, novamente mencionado.
Simon Hayter
1

Descobri o problema: o CloudFront lê o robots.txt e impede a veiculação do conteúdo, mas analisa um pouco a diferença do que os robôs devem, eu acho.

Por exemplo, o seguinte conteúdo no robots.txt:

Disallow: */wp-contents/ Allow: */wp-contents/themes/

Quando o Googlebot consegue, ele o indexa; Quando o CloudFront lê, não considera a diretiva 'Permitir' e proíbe veicular qualquer coisa dentro dela */wp-contents/themes/.

Resposta curta: verifique o robots.txt na sua distribuição do CloudFront, pode ser o problema. Invalide e atualize-o com uma versão corrigida e deve funcionar!

snagnever
fonte
O Cloudfront não "lê" o robots.txt, nem "considera" seu conteúdo, nem "impede" nada. Lembre-se de que o que você obtém da nuvem quando busca um objeto não diz nada sobre o que alguém serviu de outro local de borda obteria, se a borda deles fosse em cache anterior ou posterior ao que o seu fez. Além disso, os principais caracteres curinga são provavelmente uma receita para comportamento inesperado, pois a exclusão "padrão" dos robôs não é bem padronizada.
Michael - sqlbot
"O CloudFront lê o robots.txt" - este arquivo é hospedado no próprio CloudFront? O "curinga principal" também parece ser desnecessário, se os URLs forem parecidos com os mencionados na pergunta.
MrWhite
Oi. Definitivamente, o cloudfront está lendo meu robots.txt. E também definitivamente não está aceitando a mesma sintaxe que o google. Eu já havia testado a remoção do robots.txt e não havia resultados porque não solicitei e invalidação no cloudfront. Supondo que não era necessário porque eu estava sendo veiculado na versão mais recente. O teste demora muito tempo, pois cada alteração requer uma solicitação de invalidação que leva uma eternidade para ser concluída. voltarei em algumas horas com uma versão de trabalho. Não sei por que esse tipo de "inteligência" é necessário ... mas está lá e acho que não deveria. miguel
tonelot
O mesmo robots.txt presente no meu apache é o que o cloudfront tem. Eu determinei empiricamente.
31