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 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 Indicizzazione e aggiornamento in base alla sitemap.

Aggiornamento automatico

Vertex AI Search esegue l'aggiornamento automatico nel seguente modo:

  • Dopo aver creato un datastore, viene generato un indice iniziale per le pagine incluse.
  • Dopo l'indicizzazione iniziale, indicizza tutte le pagine appena scoperte ed esegue una nuova scansione delle pagine esistenti nel miglior modo possibile.
  • Aggiorna regolarmente gli archivi di dati 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 metodo recrawlUris. Utilizza il campo uris per specificare ogni pagina web che vuoi sottoporre a scansione. Il metodo recrawlUris è un'operazione a lunga esecuzione che viene eseguita fino a quando le pagine web specificate non vengono sottoposte a scansione o fino a quando non si verifica un timeout dopo 24 ore, a seconda dell'eventualità che si verifica per prima. Se il metodo recrawlUris scade, puoi chiamarlo di nuovo, specificando le pagine web che devono ancora essere sottoposte a scansione. Puoi eseguire il polling del metodo operations.get per monitorare lo stato dell'operazione di nuova scansione.

Limiti di scansione

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 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.

Eseguire nuovamente la scansione delle pagine web nel 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 datastore:

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

    1. Nella console Google Cloud , 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 datastore.

  2. Chiama il metodo recrawlUris utilizzando il campo uris per specificare ogni pagina web da sottoporre a 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 Google Cloud progetto.
    • DATA_STORE_ID: l'ID del datastore Vertex AI Search.
    • URIS: l'elenco delle pagine web che vuoi scansionare, 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 di 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 datastore, è un'operazione a lunga esecuzione che viene eseguita fino a quando non viene eseguita la scansione delle pagine web specificate o fino a quando non si verifica il 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 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 oppure (2) L'operazione è scaduta prima che tutte le tue pagine web fossero sottoposte a scansione. Se recrawlUris va in timeout, puoi chiamarlo di nuovo, 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 datastore. Se hai già l'ID del tuo datastore, vai al passaggio successivo.

    1. Nella console Google Cloud , 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 datastore.

  2. Esegui 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 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 della 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 che i metadati vengono aggiornati ogni cinque minuti fino al termine dell'operazione.
      • validUrisCount: indica che hai specificato 4000 URI validi nella chiamata al metodo recrawlUris.
      • successCount: indica che la scansione di 2215 URI è stata eseguita correttamente.
      • pendingCount: indica che 1785 URI non sono ancora stati sottoposti a scansione.
      • done: un valore di 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 è terminata, le tue pagine web vengono sottoposte a scansione. 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 della 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 che i metadati vengono aggiornati ogni cinque minuti fino al termine 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 di true indica che l'operazione di nuova scansione è terminata.
  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 è scaduta (dopo 24 ore) prima che tutte le tue pagine web siano state scansionate. Ricomincia da Eseguire nuovamente 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."
              }
            ]
          }
        ]
      }
    }

    Ecco alcune descrizioni dei campi di risposta:

    • createTime. L'ora in cui è stata avviata 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 finché l'operazione non viene completata.
    • validUrisCount. Indica che hai specificato 10.000 URI validi nella chiamata al metodo recrawlUris.
    • successCount. Indica che 9988 URI sono stati sottoposti a scansione correttamente.
    • pendingCount. Indica che 12 URI non sono ancora stati sottoposti a scansione.
    • done. Un valore pari a true indica che l'operazione di nuova scansione è terminata.
    • failedUris. Un elenco di URI che non sono stati sottoposti a scansione prima del timeout dell'operazione di nuova scansione.
    • failureInfo. Informazioni sugli URI per cui non è stato possibile eseguire la scansione. Vengono restituiti al massimo dieci valori dell'array failureInfo, anche se l'analisi di più di dieci URI non è riuscita.
    • errorMessage. Il motivo per cui l'URI non è stato sottoposto a scansione, di 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 nuova scansione, se l'operazione di nuova scansione 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. 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 a utilizzare il metodo recrawlUris. Puoi riprovare immediatamente tutti gli errori temporanei. È possibile riprovare a correggere tutti gli errori non temporanei dopo aver implementato la soluzione.

Messaggio di errore Si tratta di un errore temporaneo? Azione prima di riprovare la scansione
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 file robots.txt del sito No Sblocca l'URI nel file robots.txt del tuo sito web, assicurati che l'user agent Googlebot possa eseguire la scansione del sito web e riprova a eseguire la 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 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.
L'URL non è stato seguito 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 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 datastore del tuo 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.