Atualizar páginas da Web usando a atualização automática e manual

Se o repositório de dados usar a pesquisa básica de sites, a atualização do índice do repositório vai refletir a atualização disponível na Pesquisa Google.

Se a indexação avançada de sites estiver ativa no seu repositório de dados, as páginas da Web dele serão atualizadas das seguintes maneiras:

  • Atualização automática
  • Atualização manual
  • Atualização com base no mapa do site

Esta página descreve a atualização automática e manual. Para entender e implementar a atualização com base no mapa do site, consulte Indexar e atualizar de acordo com o mapa do site.

Antes de começar

Se você usa o arquivo robots.txt no seu site, atualize-o. Para mais informações, consulte como preparar o arquivo robots.txt do seu site.

Atualização automática

A Vertex AI para Pesquisa executa a atualização automática da seguinte maneira:

  • Depois de criar um repositório de dados, ela gera um índice inicial para as páginas incluídas.
  • Após a indexação inicial, ela indexa todas as páginas recém-descobertas e rastreia novamente as páginas atuais da melhor maneira possível.
  • Ela atualiza regularmente os repositórios de dados que encontram uma taxa de consulta de 50 consultas/30 dias.

Atualização manual

Se você quiser atualizar páginas da Web específicas em um repositório de dados com a indexação avançada de sites ativada, você pode chamar o método recrawlUris. Use o campo uris para especificar cada página da Web que você quer rastrear. O método recrawlUris é uma operação de longa duração que é executada até que as páginas da Web especificadas sejam rastreadas ou até que o tempo limite seja atingido após 24 horas, o que ocorrer primeiro. Se o método recrawlUris atingir o tempo limite, você poderá chamar o método novamente, especificando as páginas da Web que ainda precisam ser rastreadas. Você pode pesquisar o método operations.get para monitorar o status da operação de rastreamento novamente.

Limites de rastreamento novamente

Há limites para a frequência com que você pode rastrear páginas da Web e quantas páginas da Web podem ser rastreadas por vez:

  • Chamadas por dia. O número máximo de chamadas para o método recrawlUris permitido é de 20 por dia, por projeto.
  • Páginas da Web por chamada. O número máximo de valores uris que podem ser especificados com uma chamada para o método recrawlUris é de 10.000.

Rastrear novamente as páginas da Web no repositório de dados

É possível rastrear manualmente páginas da Web específicas em um repositório de dados que tenha a indexação avançada de sites ativada.

REST

Para usar a linha de comando para rastrear páginas da Web específicas no repositório de dados, siga estas etapas:

  1. Encontre o ID do repositório de dados. Se você já tiver o ID do repositório de dados, pule para a próxima etapa.

    1. No Google Cloud console, acesse a página Aplicativos de IA e no menu de navegação, clique em Repositórios de dados.

      Acessar a página Repositórios de dados

    2. Clique no nome do seu repositório de dados.

    3. Na página Dados do seu repositório de dados, encontre o ID do repositório.

  2. Chame o método recrawlUris, usando o campo uris para especificar cada página da Web que você quer rastrear. Cada uri representa uma única página, mesmo que contenha asteriscos (*). Padrões de caracteres curinga não são aceitos.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/siteSearchEngine:recrawlUris" \
    -d '{
      "uris": [URIS]
    }'
    

    Substitua:

    • PROJECT_ID: o ID do Google Cloud projeto.
    • DATA_STORE_ID: o ID do repositório de dados da Vertex AI para Pesquisa.
    • URIS: a lista de páginas da Web que você quer rastrear. Por exemplo, "https://example.com/page-1", "https://example.com/page-2", "https://example.com/page-3".

    O resultado será assim:

    {
      "name": "projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/operations/recrawl-uris-0123456789012345678",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.discoveryengine.v1alpha.RecrawlUrisMetadata"
      }
    }
    
  3. Salve o valor name como entrada para a operação operations.get ao monitorar o status da operação de rastreamento novamente.

Monitorar o status da operação de rastreamento novamente

O método recrawlUris, usado para rastrear páginas da Web em um repositório de dados, é uma operação de longa duração que é executada até que as páginas da Web especificadas sejam rastreadas ou até que o tempo limite seja atingido após 24 horas, o que ocorrer primeiro. Você pode monitorar o status dessa operação de longa duração pesquisando o método operations.get, especificando o valor name retornado pelo recrawlUris método. Continue pesquisando até que a resposta indique que: (1) todas as páginas da Web foram rastreadas ou (2) a operação atingiu o tempo limite antes que todas as páginas da Web fossem rastreadas. Se recrawlUris atingir o tempo limite, você poderá chamá-lo novamente, especificando os sites que não foram rastreados.

REST

Para usar a linha de comando para monitorar o status de uma operação de rastreamento novamente, siga estas etapas:

  1. Encontre o ID do repositório de dados. Se você já tiver o ID do repositório de dados, pule para a próxima etapa.

    1. No Google Cloud console, acesse a página Aplicativos de IA e no menu de navegação, clique em Repositórios de dados.

      Acessar a página Repositórios de dados

    2. Clique no nome do seu repositório de dados.

    3. Na página Dados do seu repositório de dados, encontre o ID do repositório.

  2. Pesquise o operations.get método.

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1alpha/OPERATION_NAME"
    

    Substitua:

  3. Avalie cada resposta.

    • Se uma resposta indicar que há URIs pendentes e a operação de rastreamento novamente não foi concluída, as páginas da Web ainda estão sendo rastreadas. Continue pesquisando.

      Exemplo

        {
          "name": "projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/operations/recrawl-uris-0123456789012345678",
          "metadata": {
            "@type": "type.googleapis.com/google.cloud.discoveryengine.v1alpha.RecrawlUrisMetadata",
            "createTime": "2023-09-05T22:07:28.690950Z",
            "updateTime": "2023-09-05T22:22:10.978843Z",
            "validUrisCount": 4000,
            "successCount": 2215,
            "pendingCount": 1785
          },
          "done": false,
          "response": {
            "@type": "type.googleapis.com/google.cloud.discoveryengine.v1alpha.RecrawlUrisResponse",
          }
        }

      Os campos de resposta podem ser descritos da seguinte maneira:

      • createTime: indica o horário em que a operação de longa duração foi iniciada.
      • updateTime: indica a última vez que os metadados da operação de longa duração foram atualizados. indica que os metadados são atualizados a cada cinco minutos até que a operação seja concluída.
      • validUrisCount: indica que você especificou 4.000 URIs válidos na chamada para o método recrawlUris.
      • successCount: indica que 2.215 URIs foram rastreados.
      • pendingCount: indica que 1.785 URIs ainda não foram rastreados.
      • done: um valor de false indica que a operação de rastreamento novamente ainda está em andamento.

    • Se uma resposta indicar que não há URIs pendentes (nenhum campo pendingCount é retornado) e a operação de rastreamento novamente for concluída, as páginas da Web serão rastreadas. Interrompa a pesquisa. Você pode sair desse procedimento.

      Exemplo

        {
          "name": "projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/operations/recrawl-uris-0123456789012345678",
          "metadata": {
            "@type": "type.googleapis.com/google.cloud.discoveryengine.v1alpha.RecrawlUrisMetadata",
            "createTime": "2023-09-05T22:07:28.690950Z",
            "updateTime": "2023-09-05T22:37:11.367998Z",
            "validUrisCount": 4000,
            "successCount": 4000
          },
          "done": true,
          "response": {
            "@type": "type.googleapis.com/google.cloud.discoveryengine.v1alpha.RecrawlUrisResponse"
          }
        }

      Os campos de resposta podem ser descritos da seguinte maneira:

      • createTime: indica o horário em que a operação de longa duração foi iniciada.
      • updateTime: indica a última vez que os metadados da operação de longa duração foram atualizados. indica que os metadados são atualizados a cada cinco minutos até que a operação seja concluída.
      • validUrisCount: indica que você especificou 4.000 URIs válidos na chamada para o método recrawlUris.
      • successCount: indica que 4.000 URIs foram rastreados.
      • done: um valor de true indica que a operação de rastreamento novamente foi concluída.
  4. Se uma resposta indicar que há URIs pendentes e a operação de rastreamento novamente foi concluída, a operação de rastreamento novamente atingiu o tempo limite (após 24 horas) antes que todas as páginas da Web fossem rastreadas. Comece novamente em Rastrear novamente as páginas da Web no repositório de dados. Use os valores failedUris na resposta operations.get para os valores no campo uris na nova chamada para o método recrawlUris.

    Exemplo.

    {
      "name": "projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/operations/recrawl-uris-8765432109876543210",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.discoveryengine.v1alpha.RecrawlUrisMetadata",
        "createTime": "2023-09-05T22:07:28.690950Z",
        "updateTime": "2023-09-06T22:09:10.613751Z",
        "validUrisCount": 10000,
        "successCount": 9988,
        "pendingCount": 12
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.discoveryengine.v1alpha.RecrawlUrisResponse",
        "failedUris": [
          "https://example.com/page-9989",
          "https://example.com/page-9990",
          "https://example.com/page-9991",
          "https://example.com/page-9992",
          "https://example.com/page-9993",
          "https://example.com/page-9994",
          "https://example.com/page-9995",
          "https://example.com/page-9996",
          "https://example.com/page-9997",
          "https://example.com/page-9998",
          "https://example.com/page-9999",
          "https://example.com/page-10000"
        ],
        "failureSamples": [
          {
            "uri": "https://example.com/page-9989",
            "failureReasons": [
              {
                "corpusType": "DESKTOP",
                "errorMessage": "Page was crawled but was not indexed by UCS within 24 hours."
              },
              {
                "corpusType": "MOBILE",
                "errorMessage": "Page was crawled but was not indexed by UCS within 24 hours."
              }
            ]
          },
          {
            "uri": "https://example.com/page-9990",
            "failureReasons": [
              {
                "corpusType": "DESKTOP",
                "errorMessage": "Page was crawled but was not indexed by UCS within 24 hours."
              },
              {
                "corpusType": "MOBILE",
                "errorMessage": "Page was crawled but was not indexed by UCS within 24 hours."
              }
            ]
          },
          {
            "uri": "https://example.com/page-9991",
            "failureReasons": [
              {
                "corpusType": "DESKTOP",
                "errorMessage": "Page was crawled but was not indexed by UCS within 24 hours."
              },
              {
                "corpusType": "MOBILE",
                "errorMessage": "Page was crawled but was not indexed by UCS within 24 hours."
              }
            ]
          },
          {
            "uri": "https://example.com/page-9992",
            "failureReasons": [
              {
                "corpusType": "DESKTOP",
                "errorMessage": "Page was crawled but was not indexed by UCS within 24 hours."
              },
              {
                "corpusType": "MOBILE",
                "errorMessage": "Page was crawled but was not indexed by UCS within 24 hours."
              }
            ]
          },
          {
            "uri": "https://example.com/page-9993",
            "failureReasons": [
              {
                "corpusType": "DESKTOP",
                "errorMessage": "Page was crawled but was not indexed by UCS within 24 hours."
              },
              {
                "corpusType": "MOBILE",
                "errorMessage": "Page was crawled but was not indexed by UCS within 24 hours."
              }
            ]
          },
          {
            "uri": "https://example.com/page-9994",
            "failureReasons": [
              {
                "corpusType": "DESKTOP",
                "errorMessage": "Page was crawled but was not indexed by UCS within 24 hours."
              },
              {
                "corpusType": "MOBILE",
                "errorMessage": "Page was crawled but was not indexed by UCS within 24 hours."
              }
            ]
          },
          {
            "uri": "https://example.com/page-9995",
            "failureReasons": [
              {
                "corpusType": "DESKTOP",
                "errorMessage": "Page was crawled but was not indexed by UCS within 24 hours."
              },
              {
                "corpusType": "MOBILE",
                "errorMessage": "Page was crawled but was not indexed by UCS within 24 hours."
              }
            ]
          },
          {
            "uri": "https://example.com/page-9996",
            "failureReasons": [
              {
                "corpusType": "DESKTOP",
                "errorMessage": "Page was crawled but was not indexed by UCS within 24 hours."
              },
              {
                "corpusType": "MOBILE",
                "errorMessage": "Page was crawled but was not indexed by UCS within 24 hours."
              }
            ]
          },
          {
            "uri": "https://example.com/page-9997",
            "failureReasons": [
              {
                "corpusType": "DESKTOP",
                "errorMessage": "Page was crawled but was not indexed by UCS within 24 hours."
              },
              {
                "corpusType": "MOBILE",
                "errorMessage": "Page was crawled but was not indexed by UCS within 24 hours."
              }
            ]
          },
          {
            "uri": "https://example.com/page-9998",
            "failureReasons": [
              {
                "corpusType": "DESKTOP",
                "errorMessage": "Page was crawled but was not indexed by UCS within 24 hours."
              },
              {
                "corpusType": "MOBILE",
                "errorMessage": "Page was crawled but was not indexed by UCS within 24 hours."
              }
            ]
          }
        ]
      }
    }

    Confira algumas descrições dos campos de resposta:

    • createTime. O horário em que a operação de longa duração foi iniciada.
    • updateTime. A última vez que os metadados da operação de longa duração foram atualizados. Os metadados são atualizados a cada cinco minutos até que a operação seja concluída.
    • validUrisCount. Indica que você especificou 10.000 URIs válidos na chamada para o método recrawlUris.
    • successCount. Indica que 9.988 URIs foram rastreados.
    • pendingCount. Indica que 12 URIs ainda não foram rastreados.
    • done. Um valor de true indica que a operação de rastreamento novamente foi concluída.
    • failedUris. Uma lista de URIs que não foram rastreados antes que a operação de rastreamento novamente atingisse o tempo limite.
    • failureInfo. Informações sobre URIs que não puderam ser rastreados. No máximo, dez valores de matriz failureInfo são retornados, mesmo que mais de dez URIs não tenham sido rastreados.
    • errorMessage. O motivo pelo qual um URI não foi rastreado, por corpusType. Para mais informações, consulte Mensagens de erro.

Atualização oportuna

O Google recomenda que você faça a atualização manual nas páginas novas e atualizadas para garantir que tenha o índice mais recente.

Mensagens de erro

Ao monitorar o status da operação de rastreamento novamente, se a operação atingir o tempo limite enquanto você estiver sondando o método operations.get, operations.get vai retornar mensagens de erro para páginas da Web que não foram rastreadas. A tabela a seguir lista as mensagens de erro, se o erro é temporário (um erro temporário que se resolve sozinho) e as ações que você pode realizar antes de tentar o método recrawlUris novamente. É possível tentar novamente todos os erros temporários imediatamente. Todos os erros não temporários podem ser repetidos após a implementação da correção.

Mensagem de erro É um erro temporário? Ação antes de tentar o rastreamento novamente
A página foi rastreada, mas não foi indexada pela Vertex AI para Pesquisa em 24 horas Sim Use os valores failedUris na resposta operations.get para os valores no campo uris ao chamar o método recrawlUris.
O rastreamento foi bloqueado pelo robots.txt do site Não Desbloqueie o URI no arquivo robots.txt do seu site, verifique se o user agent do Googlebot tem permissão para rastrear o site, e tente o rastreamento novamente. Para mais informações, consulte Como escrever e enviar um arquivo robots.txt. Se você não conseguir acessar o arquivo robots.txt, entre em contato com o proprietário do domínio.
A página está inacessível Não Verifique o URI especificado ao chamar o método recrawlUris. Forneça o URI literal e não um padrão de URI.
O rastreamento atingiu o tempo limite Sim Use os valores failedUris na resposta operations.get para os valores no campo uris ao chamar o método recrawlUris.
A página foi rejeitada pelo rastreador do Google Sim Use os valores failedUris na resposta operations.get para os valores no campo uris ao chamar o método recrawlUris.
O URL não pôde ser seguido pelo rastreador do Google Não Se houver vários redirecionamentos, use o URI do último redirecionamento e tente novamente.
A página não foi encontrada (404) Não Verifique o URI especificado ao chamar o método recrawlUris. Forneça o URI literal e não um padrão de URI.

Qualquer página que responda com um código de erro `4xx` será removida do índice.

A página exige autenticação Não A indexação avançada de sites não oferece suporte ao rastreamento de páginas da Web que exigem autenticação.

Como as páginas excluídas são processadas

Quando uma página é excluída, o Google recomenda que você atualize manualmente os URLs excluídos.

Quando o repositório de dados do seu site é rastreado durante uma atualização automática ou manual, se uma página da Web responder com um código de erro do cliente 4xx ou um código de erro do servidor 5xx, a página da Web sem resposta será removida do índice.