Aggiornare le pagine web utilizzando l'aggiornamento automatico e manuale

Se il tuo datastore utilizza la ricerca di base del sito web, l'aggiornamento dell'indice del tuo negozio rispecchia l'aggiornamento disponibile nella Ricerca Google.

Se l'indicizzazione avanzata dei siti web è attivata nel tuo datastore, le pagine web al suo interno 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 Eseguire l'indicizzazione e l'aggiornamento in base alla sitemap.

Aggiornamento automatico

Vertex AI Search esegue l'aggiornamento automatico come segue:

  • Dopo aver creato un datastore, viene generato un indice iniziale per le pagine incluse.
  • Dopo l'indicizzazione iniziale, indicizza le pagine appena scoperte e esegue nuovamente la scansione delle pagine esistenti secondo il criterio del massimo impegno.
  • Aggiorna regolarmente gli archivi di dati che registrano un tasso 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 metodo recrawlUris. Utilizza il campo uris per specificare ogni pagina web che vuoi eseguire la scansione. Il metodo recrawlUris è un'operazione di lunga durata che viene eseguita fino a quando le pagine web specificate non vengono sottoposte a scansione o fino a quando non scade il timeout dopo 24 ore, a seconda dell'evento che si verifica per primo. Se il metodo recrawlUris scade, puoi richiamarlo specificando le pagine web che rimangono da eseguire la scansione. Puoi eseguire il polling del metodo operations.get per monitorare lo stato dell'operazione di nuova scansione.

Limiti per la ricorcolazione

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

  • Chiamate al giorno. Il numero massimo di chiamate al metodo recrawlUris consentite è cinque 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 nuovamente la scansione delle pagine web nel tuo datastore

Puoi eseguire manualmente la scansione di pagine web specifiche in un datastore in cui è attivata l'Indicizzazione avanzata dei siti web.

REST

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

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

    1. Nella console Google Cloud, vai alla pagina Agent Builder e nel menu di navigazione fai clic su Data Store.

      Vai alla pagina Datastore

    2. Fai clic sul nome del tuo datastore.

    3. Nella pagina Dati del tuo datastore, ottieni l'ID datastore.

  2. Chiama il metodo recrawlUris utilizzando il campo uris per specificare ogni pagina web che vuoi eseguire la scansione. Ogni uri rappresenta una singola pagina anche se contiene asterischi (*). I pattern 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 progetto Google Cloud.
    • DATA_STORE_ID: l'ID dello datastore di Vertex AI Search.
    • URIS: l'elenco di pagine web da 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.

Monitorare 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 lungo termine che viene eseguita fino a quando non vengono eseguite le scansioni delle pagine web specificate o fino a quando non scade il tempo di attesa dopo 24 ore, a seconda dell'evento che si verifica per primo. Puoi monitorare lo stato di questa operazione a lunga esecuzione eseguendo il polling del metodo operations.get, specificando il valore name restituito dal metodo recrawlUris. Continua a eseguire il polling finché la risposta non indica che: (1) Tutte le tue pagine web sono state sottoposte a scansione o (2) l'operazione ha superato il tempo di attesa prima che tutte le tue pagine web fossero sottoposte a scansione. Se recrawlUris si arresta in modo anomalo, puoi richiamarlo nuovamente specificando i siti web che non sono stati sottoposti a scansione.

REST

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

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

    1. Nella console Google Cloud, vai alla pagina Agent Builder e nel menu di navigazione fai clic su Data Store.

      Vai alla pagina Datastore

    2. Fai clic sul nome del tuo datastore.

    3. Nella pagina Dati del tuo datastore, ottieni l'ID datastore.

  2. Effettua il polling del metodo operations.get.

    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, le tue pagine web sono ancora in fase di scansione. Continua con il sondaggio.

      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 i metadati dell'operazione a lunga esecuzione sono stati aggiornati. Indica gli aggiornamenti dei metadati ogni cinque minuti fino al completamento dell'operazione.
      • validUrisCount: indica che hai specificato 4000 URI validi nella chiamata al metodo recrawlUris.
      • successCount: indica che sono stati sottoposti a scansione 2215 URI.
      • pendingCount: indica che 1785 URI non sono ancora stati sottoposti a scansione.
      • done: un valore false indica che l'operazione di nuova scansione è ancora in corso.

    • Se una risposta indica che non ci sono URI in attesa (non viene restituito alcun campo pendingCount ) e l'operazione di nuova scansione è stata completata, le tue pagine web vengono sottoposte a scansione. Interrompi l'interrogazione: 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 i metadati dell'operazione a lunga esecuzione sono stati aggiornati. Indica gli aggiornamenti dei metadati ogni cinque minuti fino al completamento dell'operazione.
      • validUrisCount: indica che hai specificato 4000 URI validi nella chiamata al metodo recrawlUris.
      • successCount: indica che sono stati sottoposti a scansione 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, l'operazione di nuova scansione ha superato il tempo di attesa (dopo 24 ore) prima che tutte le pagine web fossero sottoposte a scansione. Ricomincia da Esegui nuovamente la scansione delle pagine web nel tuo 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."
              }
            ]
          }
        ]
      }
    }

    Ecco alcune descrizioni dei campi di risposta:

    • createTime. L'ora in cui è iniziata l'operazione a lunga esecuzione.
    • updateTime. L'ultima volta che i metadati dell'operazione a lunga esecuzione sono stati aggiornati. 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 sono stati sottoposti a scansione 9988 URI.
    • pendingCount. Indica che 12 URI non sono ancora stati sottoposti a scansione.
    • done. Un valore true indica che l'operazione di nuova scansione è stata completata.
    • failedUris. Un elenco di URI che non sono stati sottoposti a scansione prima del timeout dell'operazione di nuova scansione.
    • failureInfo. Informazioni sugli URI di cui non è stato eseguito il crawling. Vengono restituiti al massimo dieci valori dell'array failureInfo, anche se la scansione di più di dieci URI non è riuscita.
    • errorMessage. Il motivo per cui la scansione di un URI non è riuscita, per corpusType. Per maggiori informazioni, 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 ricorsione, se questa scade mentre esegui il polling del metodo operations.get, operations.get restituisce messaggi di errore per le pagine web che non sono state sottoposte a scansione. Nella tabella seguente sono elencati i messaggi di errore, se l'errore è temporaneo (un errore temporaneo che si risolve da solo) e le azioni che puoi intraprendere prima di riprovare a utilizzare il metodo recrawlUris. Puoi riprovare immediatamente per tutti gli errori temporanei. Per tutti gli errori intransitori è possibile riprovare dopo aver applicato la correzione.

Messaggio di errore Si tratta di un errore temporaneo? Azione prima di riprovare a eseguire la ricorsione
La pagina è stata sottoposta a scansione, ma non è stata indicizzata da Vertex AI 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 robots.txt del sito No Sblocca l'URI nel file robots.txt del tuo sito web, assicurati che lo user agent Googlebot sia autorizzato a eseguire la scansione del sito web, e riprova a eseguire la nuova scansione. Per ulteriori informazioni, 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 specificato quando chiami il metodo recrawlUris. Assicurati di fornire l'URI letterale e non un pattern URI.
La scansione ha superato il tempo di attesa 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.
Impossibile seguire l'URL dal crawler di Google No Se sono presenti più reindirizzamenti, utilizza l'URI dell'ultimo reindirizzamento e riprova
Pagina non trovata (404) No Controlla l'URI 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 di 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 l'datastore del tuo sito web viene sottoposto a scansione durante un aggiornamento automatico o manuale, se una pagina web risponde con un codice di errore client 4xx o un codice di errore del server 5xx, la pagina web che non risponde viene rimossa dall'indice.