Assunto em dezembro: CDNs e rastreamento

Terça-feira, 24 de dezembro de 2024

As redes de fornecimento de conteúdo (CDNs, na sigla em inglês) são particularmente adequadas para diminuir a latência do seu site e, em geral, evitar problemas relacionados ao tráfego da Web. Afinal, esse é o objetivo principal delas: fornecer conteúdo com rapidez, mesmo que o site esteja recebendo muito tráfego. O fornecimento é feito em todo o mundo. Portanto, os tempos de transferência para os usuários também são menores do que apenas hospedar em um data center em algum lugar. Nesta postagem, vamos mostrar como usar CDNs para melhorar o rastreamento e a experiência dos usuários no seu site. Também vamos analisar algumas nuances do rastreamento de sites com suporte a CDN.

Resumo: o que é uma CDN?

As CDNs atuam como um intermediário entre o servidor de origem (onde o site está hospedado) e o usuário final, e exibe (alguns) arquivos para eles. Historicamente, o foco principal das CDNs é o armazenamento em cache, ou seja, depois que um usuário solicita um URL do seu site, as CDNs armazenam o conteúdo desse URL nos caches por um tempo para que o servidor não precise enviar o arquivo novamente por um tempo.

As CDNs podem acelerar drasticamente seu site, exibindo conteúdo para os usuários de um local próximo a eles. Por exemplo, se um usuário na Austrália acessar um site hospedado na Alemanha, uma CDN vai exibir o conteúdo para ele usando os caches na Austrália, reduzindo a ida e volta pelo mundo. Com ou sem LiteSpeed, a distância ainda é muito grande.

Por fim, as CDNs são uma ferramenta incrível para proteger seu site contra sobrecarga e algumas ameaças de segurança. Com a quantidade de tráfego global que as CDNs gerenciam, elas podem criar modelos de tráfego confiáveis para detectar anomalias e bloquear acessos que parecem excessivos ou maliciosos. Por exemplo, em 21 de outubro de 2024, os sistemas do Cloudflare detectaram e mitigaram de forma autônoma um ataque DDoS de 4.2 Tbps (o que é significativo) que durou cerca de um minuto.

Como as CDNs podem ajudar seu site

Você pode ter os servidores mais rápidos e o melhor uplink que o dinheiro pode comprar e, talvez, não ache que precisa acelerar nada, mas as CDNs podem ajudar a economizar dinheiro a longo prazo, especialmente se o site for grande:

  • Armazenamento em cache na CDN: se recursos como mídia, JavaScript e CSS ou até mesmo o HTML forem exibidos por meio dos caches de uma CDN, os servidores não precisarão gastar computação e largura de banda para veicular esses recursos, reduzindo a carga do servidor no processo. Isso também costuma significar que as páginas carregam mais rápido nos navegadores dos usuários, o que gera melhores conversões.
  • Proteção contra inundação de tráfego: as CDNs são muito boas em identificar e bloquear tráfego excessivo ou malicioso, permitindo que os usuários acessem o site mesmo quando bots mal-intencionados ou agentes de má-fé sobrecarregariam os servidores.
    Além da proteção contra inundação, os mesmos controles de bloqueio de tráfego mal-intencionado também podem ser usados para bloquear tráfego indesejado, seja de rastreadores, clientes que se encaixam em um determinado padrão ou apenas trolls que continuam usando o mesmo endereço IP. Embora você também possa fazer isso no seu servidor ou firewall, geralmente é muito mais fácil usar a interface do usuário de uma CDN.
  • Confiabilidade: algumas CDNs podem exibir o site aos usuários mesmo que ele esteja fora do ar. Talvez isso só funcione para conteúdo estático, mas já pode ser suficiente para garantir uma experiência aceitável.

Em resumo, as CDNs são muito úteis. Se o site é grande ou se você espera (ou já recebe) grandes quantidades de tráfego, encontre uma que atenda às suas necessidades com base em fatores como preço, desempenho, confiabilidade, segurança, suporte ao cliente, escalonabilidade e expansão futura. Verifique com seu provedor de hospedagem ou CMS para saber quais são as opções (e se você já usa uma CDN).

Como o rastreamento afeta sites com CDNs

Em relação ao rastreamento, as CDNs também podem ser úteis, mas podem causar alguns problemas nesse sentido (embora isso seja raro). Vamos analisar isso.

Efeito das CDNs na taxa de rastreamento

Nossa infraestrutura de rastreamento foi projetada para permitir taxas de rastreamento mais altas em sites com suporte de uma CDN, o que é inferido pelo endereço IP do serviço que está exibindo os URLs acessados pelos rastreadores. Isso costuma funcionar bem.

Digamos que você inicie um site de banco de fotos hoje e tenha 1.000.007 fotos em estoque. Você lança o site com uma página de destino, além de páginas de categoria e de detalhes para todos os itens, então acaba tendo muitas páginas. Na nossa documentação sobre limite de capacidade de rastreamento, explicamos que, embora a Pesquisa Google queira rastrear todas essas páginas o mais rápido possível, o rastreamento não pode sobrecarregar seus servidores. Se o servidor começar a responder lentamente ao se deparar com um número maior de solicitações de rastreamento, a limitação será aplicada pelo Google para evitar sobrecarga. Esse limite é muito maior quando nossa infraestrutura de rastreamento detecta que o site tem suporte de uma CDN e presume que é possível enviar mais solicitações simultâneas porque o servidor provavelmente pode lidar com isso, rastreando a loja virtual mais rapidamente.

No entanto, no primeiro acesso a um URL, o cache da CDN está "frio", ou seja, como ninguém solicitou esse URL ainda, o conteúdo dele não foi armazenado em cache pela CDN. Portanto, seu servidor de origem ainda vai precisar exibir esse URL pelo menos uma vez para "aquecer" o cache da CDN. Isso é muito semelhante a como o armazenamento em cache HTTP funciona.

Em resumo, mesmo que a loja virtual tenha suporte de uma CDN, o servidor precisará exibir esses 1.000.007 URLs pelo menos uma vez. Só depois dessa exibição inicial é que a CDN poderá ajudar com os caches. Essa é uma sobrecarga significativa na sua "cota de rastreamento", e a taxa de rastreamento provavelmente será alta por alguns dias. É importante ter isso em mente se você planeja lançar muitos URLs de uma só vez.

Efeito das CDNs na renderização

Como explicamos na nossa primeira postagem do blog sobre rastreamento de recursos em dezembro, a divisão de recursos para o nome do host deles ou um nome de host de CDN (cdn.example.com) pode permitir que nosso serviço de renderização da Web (WRS, na sigla em inglês) renderize suas páginas com mais eficiência. No entanto, há uma ressalva: essa prática pode afetar negativamente o desempenho da página devido à sobrecarga de uma conexão com um nome do host diferente. Portanto, é necessário considerar cuidadosamente a experiência na página com a performance de renderização.

Se o seu host principal tiver suporte de uma CDN, você vai evitar esse problema: um nome do host para consultar, e os recursos de renderização críticos provavelmente serão exibidos por meio do cache da CDN para que o servidor não precise exibir (e a experiência na página não seja afetada).

No final, escolha a solução que funciona melhor para sua empresa: ter um nome do host separado (cdn.example.com) para recursos estáticos, fazer backup do nome de host principal com uma CDN ou fazer as duas coisas. A infraestrutura de rastreamento do Google oferece suporte a ambas as opções sem problemas.

Quando as CDNs exageram na proteção

Devido à proteção contra inundação das CDNs e à forma como os rastreadores funcionam, às vezes os bots que você quer no seu site podem acabar na lista de bloqueio da CDN, normalmente no firewall de aplicativos da Web (WAF, na sigla em inglês). Isso impede que os rastreadores acessem o site, o que pode impedir que ele apareça nos resultados da pesquisa. O bloqueio pode acontecer de várias maneiras, algumas mais prejudiciais para a presença de um site nos resultados da pesquisa do Google do que outras, e pode ser difícil (ou impossível) controlar, já que elas acontecem na CDN. Para os fins desta postagem do blog, dividimos os blocos em dois grupos: blocos rígidos e blocos flexíveis.

Blocos rígidos

Os blocos rígidos ocorrem quando a CDN envia uma resposta a uma solicitação de rastreamento que é um erro de alguma forma. Eles podem ser:

  • Códigos de status HTTP 503/429: o envio desses códigos de status é a maneira preferida para indicar um bloqueio temporário. Isso vai dar tempo para você reagir a bloqueios indesejados pela CDN.
  • Tempo limite de rede: o tempo limite de rede da CDN faz com que os URLs afetados sejam removidos do índice da Pesquisa Google, já que esses erros de rede são considerados irreparáveis e "graves". Além disso, eles também podem afetar consideravelmente a taxa de rastreamento do site, porque indicam à nossa infraestrutura de rastreamento que o site está sobrecarregado.
  • Mensagem de erro aleatória com um código de status HTTP 200: também conhecido como erros leves, isso é particularmente ruim. Se a mensagem de erro for considerada pelo Google como um erro "irreversível", (por exemplo, um 500 HTTP), o URL será removido da Pesquisa. Se o Google não conseguir detectar as mensagens de erro como "difícil", todas as páginas com a mesma mensagem de erro poderão ser eliminadas como cópias do índice da Pesquisa Google. Como o índice do Google tem pouco incentivo para solicitar um novo rastreamento de URLs duplicados, a recuperação pode levar mais tempo.

Blocos flexíveis

Um problema semelhante pode aparecer quando a CDN mostra os intersticiais "Tem certeza de que você é humano".

Crawley confuso por ser chamado de humano

Nossos rastreadores estão convencidos de que NÃO são humanos e não fingem ser. Eles só querem rastrear. No entanto, quando o intersticial aparece, ele impede que o usuário veja seu site. No caso desses intersticiais de verificação de bots, recomendamos enviar um indicador claro na forma de um código de status HTTP 503 para clientes automatizados, como rastreadores, informando que o conteúdo está temporariamente indisponível. Isso garante que o conteúdo não seja removido do índice do Google automaticamente.

Depurar bloqueios

No caso de bloqueios rígidos e flexíveis, a maneira mais fácil de verificar se as coisas estão funcionando corretamente é usar a Ferramenta de inspeção de URL no Search Console e observar a imagem renderizada: se ela mostrar sua página, está tudo bem. Se ela mostrar uma página vazia, um erro ou uma página com um desafio de bot, talvez seja necessário conversar com sua CDN sobre isso.

Além disso, para ajudar com esses bloqueios indesejados, o Google, outros mecanismos de pesquisa e outros operadores de rastreamento publicam nossos endereços IP para ajudar você a identificar nossos rastreadores e, se achar apropriado, remover os IPs bloqueados das regras do WAF ou até mesmo adicionar à lista de permissões. O local em que isso pode ser feito depende da CDN que você está usando. Felizmente, a maioria das CDNs e dos WAFs independentes têm uma documentação incrível. Veja uma lista do que encontramos (na data de publicação desta postagem):

Caso precise que o site apareça nos mecanismos de pesquisa, recomendamos verificar se os rastreadores que você considera importantes podem acessar o site. Os IPs podem acabar em uma lista de bloqueio automaticamente, sem que você saiba. Por isso, é uma boa ideia verificar as listas de bloqueio regularmente para garantir o sucesso do seu site na pesquisa e em outros lugares. Se a lista for muito longa (como esta postagem do blog), procure apenas os primeiros segmentos dos intervalos de IP. Por exemplo, em vez de procurar 192.168.0.101, procure 192.168.

Esta foi a última postagem da nossa série de postagens do blog sobre rastreamento em dezembro. Esperamos que você tenha gostado do conteúdo tanto quanto nós. Até a próxima!


想详细了解抓取?请查看整个“抓取 12 月”系列: