Aggiornare le pagine web utilizzando l'aggiornamento automatico e manuale

Se il datastore utilizza la ricerca di base dei siti web, l'aggiornamento dell'indice del negozio riflette l'aggiornamento disponibile nella Ricerca Google.

Se l'indicizzazione avanzata dei siti web è attivata nel datastore, le pagine web del datastore vengono aggiornate nei seguenti modi:

  • Aggiornamento automatico
  • Aggiornamento manuale
  • Aggiornamento basato sulla Sitemap

Questa pagina descrive l'aggiornamento automatico e manuale. Per comprendere e implementare l'aggiornamento basato sulla Sitemap, consulta Indicizza e aggiorna in base alla Sitemap.

Prima di iniziare

Se utilizzi il file robots.txt nel tuo sito web, aggiornalo. Per saperne di più, scopri come preparare il filerobots.txt del tuo sito web.

Aggiornamento automatico

Agent Search esegue l'aggiornamento automatico nel seguente modo:

  • Dopo aver creato un datastore, genera un indice iniziale per le pagine incluse.
  • Dopo l'indicizzazione iniziale, indicizza le pagine appena scoperte ed esegue di nuovo la scansione delle pagine esistenti in base al principio del "best effort".
  • Aggiorna regolarmente i datastore che raggiungono una frequenza di query di 50 query/30 giorni.

Aggiornamento manuale

Se vuoi aggiornare pagine web specifiche in un datastore con l'indicizzazione avanzata dei siti web attivata, puoi chiamare il recrawlUris metodo. Utilizza il campo uris per specificare ogni pagina web di cui vuoi eseguire la scansione. Il metodo recrawlUris è un'operazione a lunga esecuzione che viene eseguita fino a quando non viene eseguita la scansione delle pagine web specificate o fino al timeout dopo 24 ore, a seconda di quale evento si verifica per primo. Se il metodo recrawlUris va in timeout, puoi chiamarlo di nuovo, specificando le pagine web di cui devi ancora eseguire la scansione. Puoi eseguire il polling del operations.get metodo per monitorare lo stato dell'operazione di nuova scansione.

Limiti relativi alla nuova scansione

Esistono limiti alla frequenza con cui puoi eseguire la scansione delle pagine web e al numero di pagine web di cui puoi eseguire la scansione contemporaneamente:

  • Chiamate al giorno. Il numero massimo di chiamate al metodo recrawlUris consentito è 20 al giorno per progetto.
  • Pagine web per chiamata. Il numero massimo di valori uris che puoi specificare con una chiamata al metodo recrawlUris è 10.000.

Esegui di nuovo la scansione delle pagine web nel datastore

Puoi eseguire manualmente la scansione di pagine web specifiche in un datastore con l'indicizzazione avanzata dei siti web attivata.

REST

Per utilizzare la riga di comando per eseguire la scansione di pagine web specifiche nel datastore:

  1. Trova l'ID del datastore. Se hai già l'ID del datastore, vai al passaggio successivo.

    1. Nella Google Cloud console, vai alla pagina AI Applications e nel menu di navigazione, fai clic su Datastore.

      Vai alla pagina Datastore

    2. Fai clic sul nome del tuo datastore.

    3. Nella pagina Dati del datastore, recupera l'ID del datastore.

  2. Chiama il metodo recrawlUris, utilizzando il campo uris per specificare ogni pagina web di cui vuoi eseguire la scansione. Ogni uri rappresenta una singola pagina, anche se contiene asterischi (*). I pattern con caratteri jolly non sono supportati.

    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]
    }'
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo Google Cloud progetto.
    • DATA_STORE_ID: l'ID del datastore di Agent Search.
    • URIS: l'elenco delle pagine web di cui vuoi eseguire la scansione, ad esempio, "https://example.com/page-1", "https://example.com/page-2", "https://example.com/page-3".

    L'output è simile al seguente:

    {
      "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. Salva il valore name come input per l'operazione operations.get quando monitori lo stato dell'operazione di nuova scansione.

Monitora lo stato dell'operazione di nuova scansione

Il metodo recrawlUris, che utilizzi per eseguire la scansione delle pagine web in un data store, è un'operazione a lunga esecuzione che viene eseguita fino a quando non viene eseguita la scansione delle pagine web specificate o fino al timeout dopo 24 ore, a seconda di quale evento si verifica per primo. Puoi monitorare lo stato di questa operazione a lunga esecuzione eseguendo il polling del operations.get metodo, specificando il name valore restituito dal recrawlUris metodo. Continua a eseguire il polling finché la risposta non indica che: (1) è stata eseguita la scansione di tutte le pagine web o (2) l'operazione è andata in timeout prima che fosse eseguita la scansione di tutte le pagine web. Se recrawlUris va in timeout, puoi chiamarlo di nuovo, specificando i siti web di cui non è stata eseguita la scansione.

REST

Per utilizzare la riga di comando per monitorare lo stato di un'operazione di nuova scansione:

  1. Trova l'ID del datastore. Se hai già l'ID del datastore, vai al passaggio successivo.

    1. Nella Google Cloud console, vai alla pagina AI Applications e nel menu di navigazione, fai clic su Datastore.

      Vai alla pagina Datastore

    2. Fai clic sul nome del tuo datastore.

    3. Nella pagina Dati del datastore, recupera l'ID del datastore.

  2. Esegui il polling del operations.get metodo.

    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"
    

    Sostituisci quanto segue:

  3. Valuta ogni risposta.

    • Se una risposta indica che sono presenti URI in attesa e l'operazione di nuova scansione non è stata completata, significa che è ancora in corso la scansione delle pagine web. Continua a eseguire il polling.

      Esempio

        {
          "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",
          }
        }

      I campi di risposta possono essere descritti come segue:

      • createTime: indica l'ora di inizio dell'operazione a lunga esecuzione.
      • updateTime: indica l'ultima volta che sono stati aggiornati i metadati dell'operazione a lunga esecuzione. indica che i metadati vengono aggiornati ogni cinque minuti fino al completamento dell'operazione.
      • validUrisCount: indica che hai specificato 4000 URI validi nella chiamata al metodo recrawlUris.
      • successCount: indica che è stata eseguita la scansione di 2215 URI.
      • pendingCount: indica che non è ancora stata eseguita la scansione di 1785 URI.
      • done: un valore false indica che l'operazione di nuova scansione è ancora in corso.

    • Se una risposta indica che non sono presenti URI in attesa (non viene restituito alcun campo pendingCount) e l'operazione di nuova scansione è stata completata, significa che è stata eseguita la scansione delle pagine web. Interrompi il polling: puoi uscire da questa procedura.

      Esempio

        {
          "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"
          }
        }

      I campi di risposta possono essere descritti come segue:

      • createTime: indica l'ora di inizio dell'operazione a lunga esecuzione.
      • updateTime: indica l'ultima volta che sono stati aggiornati i metadati dell'operazione a lunga esecuzione. indica che i metadati vengono aggiornati ogni cinque minuti fino al completamento dell'operazione.
      • validUrisCount: indica che hai specificato 4000 URI validi nella chiamata al metodo recrawlUris.
      • successCount: indica che è stata eseguita la scansione di 4000 URI.
      • done: un valore true indica che l'operazione di nuova scansione è stata completata.
  4. Se una risposta indica che sono presenti URI in attesa e l'operazione di nuova scansione è stata completata, significa che l'operazione di nuova scansione è andata in timeout (dopo 24 ore) prima che fosse eseguita la scansione di tutte le pagine web. Ricomincia da Esegui di nuovo la scansione delle pagine web nel datastore. Utilizza i valori failedUris nella risposta operations.get per i valori nel campo uris nella nuova chiamata al metodo recrawlUris.

    Esempio.

    {
      "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."
              }
            ]
          }
        ]
      }
    }

    Di seguito sono riportate alcune descrizioni dei campi di risposta:

    • createTime. L'ora di inizio dell'operazione a lunga esecuzione.
    • updateTime. L'ultima volta che sono stati aggiornati i metadati dell'operazione a lunga esecuzione. I metadati vengono aggiornati ogni cinque minuti fino al completamento dell'operazione.
    • validUrisCount. Indica che hai specificato 10.000 URI validi nella chiamata al metodo recrawlUris.
    • successCount. Indica che è stata eseguita la scansione di 9988 URI.
    • pendingCount. Indica che non è ancora stata eseguita la scansione di 12 URI.
    • done. Un valore true indica che l'operazione di nuova scansione è stata completata.
    • failedUris. Un elenco di URI di cui non è stata eseguita la scansione prima del timeout dell'operazione di nuova scansione.
    • failureInfo. Informazioni sugli URI di cui non è stata eseguita la scansione. Vengono restituiti al massimo dieci valori dell'array failureInfo, anche se non è stata eseguita la scansione di più di dieci URI.
    • errorMessage. Il motivo per cui non è stata eseguita la scansione di un URI, per corpusType. Per saperne di più, consulta Messaggi di errore.

Aggiornamento tempestivo

Google consiglia di eseguire l'aggiornamento manuale delle pagine nuove e aggiornate per assicurarti di avere l'indice più recente.

Messaggi di errore

Quando monitori lo stato dell'operazione di nuova scansione, se l'operazione va in timeout mentre esegui il polling del metodo operations.get, operations.get restituisce messaggi di errore per le pagine web di cui non è stata eseguita la scansione. La seguente tabella elenca i messaggi di errore, indica se l'errore è temporaneo (un errore temporaneo che si risolve da solo) e le azioni che puoi intraprendere prima di riprovare il metodo recrawlUris. Puoi riprovare immediatamente a eseguire tutte le operazioni che hanno generato errori temporanei. Puoi riprovare a eseguire tutte le operazioni che hanno generato errori non temporanei dopo aver implementato la soluzione.

Messaggio di errore È un errore temporaneo? Azione prima di riprovare a eseguire la nuova scansione
La pagina è stata sottoposta a scansione, ma non è stata indicizzata da Agent Search entro 24 ore Utilizza i valori failedUris nella risposta operations.get per i valori nel campo uris quando chiami il metodo recrawlUris.
La scansione è stata bloccata dal file robots.txt del sito No Sblocca l'URI nel file robots.txt del tuo sito web, assicurati che lo user agent Googlebot possa eseguire la scansione del sito web, e riprova a eseguire la nuova scansione. Per saperne di più, consulta Come scrivere e inviare un file robots.txt. Se non riesci ad accedere al file robots.txt, contatta il proprietario del dominio.
La pagina non è raggiungibile No Controlla l'URI che hai specificato quando chiami il metodo recrawlUris. Assicurati di fornire l'URI letterale e non un pattern URI.
Timeout della scansione Utilizza i valori failedUris nella risposta operations.get per i valori nel campo uris quando chiami il metodo recrawlUris.
La pagina è stata rifiutata dal crawler di Google Utilizza i valori failedUris nella risposta operations.get per i valori nel campo uris quando chiami il metodo recrawlUris.
Il crawler di Google non è riuscito a seguire l'URL No Se sono presenti più reindirizzamenti, utilizza l'URI dell'ultimo reindirizzamento e riprova
Pagina non trovata (404) No Controlla l'URI che hai specificato quando chiami il metodo recrawlUris. Assicurati di fornire l'URI letterale e non un pattern URI.

Qualsiasi pagina che risponde con un codice di errore `4xx` viene rimossa dall'indice.

La pagina richiede l'autenticazione No L'indicizzazione avanzata dei siti web non supporta la scansione delle pagine web che richiedono l'autenticazione.

Come vengono gestite le pagine eliminate

Quando una pagina viene eliminata, Google consiglia di aggiornare manualmente gli URL eliminati.

Quando viene eseguita la scansione del datastore di dati del sito web durante un aggiornamento automatico o manuale, se una pagina web risponde con un codice di errore client 4xx o un codice di errore server 5xx, la pagina web che non risponde viene rimossa dall' indice.