Usare l'API Indexing

Panoramica

Puoi utilizzare l'API Indexing per comunicare a Google di aggiornare o rimuovere le pagine dall'Indice Google. Le richieste devono specificare la posizione di una pagina web. Puoi anche conoscere lo stato delle notifiche che hai inviato a Google. Attualmente, l'API Indexing può essere utilizzata solo per eseguire la scansione di pagine con dati strutturati di offerte di lavoro o live stream.

Quando invii una richiesta per l'API Indexing, definisci la posizione di una pagina web separata per informare Google che può eseguire la scansione o rimuovere questa pagina dal proprio indice.

I seguenti esempi mostrano le azioni che puoi eseguire con l'API Indexing:

Aggiornare un URL

POST https://indexing.googleapis.com/v3/urlNotifications:publish
{
  "url": "https://careers.google.com/jobs/google/technical-writer",
  "type": "URL_UPDATED"
}
Rimuovere un URL

POST https://indexing.googleapis.com/v3/urlNotifications:publish
{
  "url": "https://careers.google.com/jobs/google/technical-writer",
  "type": "URL_DELETED"
}
Conoscere lo stato della notifica

GET https://indexing.googleapis.com/v3/urlNotifications/metadata

Parametri

Nella tabella che segue vengono descritti i campi necessari per tutti i metodi (aggiornare e rimuovere un URL):

Campi
url

Obbligatorio

La posizione completa e valida dell'elemento che vuoi aggiornare o rimuovere.

type

Obbligatorio

Il tipo di notifica che hai inviato.

Linee guida

Le seguenti linee guida si applicano per aggiornare e rimuovere le richieste di URL.

  • Tutte le chiamate a https://indexing.googleapis.com/v3/UrlNotifications:publish DEVONO utilizzare "application/json" come intestazione di Content-Type.
  • È possibile inviare un URL solo nel corpo di una richiesta di aggiornamento oppure combinare fino a 100 richieste in un batch, come descritto nella sezione Inviare richieste di indicizzazione in batch.
  • Il corpo della richiesta in questi esempi è il valore della variabile content che viene utilizzato negli esempi di token di accesso.

Aggiornare un URL

Per informare Google che un nuovo URL è pronto per essere sottoposto a scansione o che i contenuti di un URL inviato in precedenza sono stati aggiornati, procedi nel seguente modo:

  1. Invia una richiesta POST al seguente endpoint:
    POST https://indexing.googleapis.com/v3/urlNotifications:publish
  2. Nel corpo della richiesta, specifica la posizione della pagina utilizzando la seguente sintassi:
    {
      "url": "content_location",
      "type": "URL_UPDATED"
    }
  3. Google risponde alle chiamate all'API Indexing correttamente con HTTP 200. Una risposta HTTP 200 significa che a breve Google potrebbe provare a sottoporre nuovamente a scansione questo URL. Il corpo della risposta contiene un oggetto UrlNotificationMetadata, i cui campi corrispondono a quelli restituiti da una richiesta di stato della notifica.
  4. Se non ricevi una risposta HTTP 200, consulta gli errori specifici dell'API Indexing.
  5. Se i contenuti della pagina cambiano, invia un'altra notifica di aggiornamento, che dovrebbe invitare Google a ripetere la scansione della pagina.
  6. Potresti aver bisogno di una quota maggiore di quella predefinita. Per visualizzare la quota corrente e richiederne una maggiore, consulta la sezione Quota.

Rimuovere un URL

Dopo aver eliminato una pagina dai tuoi server, informa Google affinché rimuova la pagina dal suo indice e non esegua nuovamente la scansione dell'URL. Prima di richiedere la rimozione, devi rimuovere la pagina dal tuo server e l'URL deve restituire un codice di stato 404 o 410.

Per richiedere la rimozione dal nostro indice, procedi nel seguente modo:

  1. Invia una richiesta POST al seguente endpoint:
    POST https://indexing.googleapis.com/v3/urlNotifications:publish
  2. Specifica l'URL che vuoi rimuovere nel corpo della richiesta utilizzando la seguente sintassi:
    {
      "url": "content_location",
      "type": "URL_DELETED"
    }

    Ad esempio:

    {
      "url": "https://careers.google.com/jobs/google/technical-writer",
      "type": "URL_DELETED"
    }
  3. Google risponde alle chiamate all'API Indexing correttamente con HTTP 200. Una risposta HTTP 200 significa che Google potrebbe rimuovere questo URL dall'indice. Il corpo della risposta contiene un oggetto UrlNotificationMetadata, i cui campi corrispondono a quelli restituiti da una richiesta di stato della notifica.
  4. Se non ricevi una risposta HTTP 200, consulta gli errori specifici dell'API Indexing.
  5. Potresti aver bisogno di una quota maggiore di quella predefinita. Per visualizzare la quota corrente e richiederne una maggiore, consulta la sezione Quota.

Conoscere lo stato della notifica

Puoi utilizzare l'API Indexing per controllare l'ultima volta che Google ha ricevuto qualsiasi tipo di notifica per un determinato URL. La richiesta GET non ti dice quando Google indicizza o rimuove un URL; ti fa sapere solo se hai inviato correttamente la richiesta.

Per conoscere lo stato di una notifica, procedi nel seguente modo:

  1. Invia una richiesta GET al seguente endpoint. L'URL specificato deve essere codificato tramite URL. Ad esempio, sostituisci : (due punti) con %3A e / (barre) con %2F.
    GET https://indexing.googleapis.com/v3/urlNotifications/metadata?url=url-encoded_url

    Ad esempio:

    GET https://indexing.googleapis.com/v3/urlNotifications/metadata?url=https%3A%2F%2Fcareers.google.com%2Fjobs%2Fgoogle%2Ftechnical-writer
    
  2. L'API Indexing risponde con un messaggio HTTP 200, con un payload che contiene dettagli sulla notifica. Il seguente esempio mostra il corpo di una risposta che contiene informazioni su una notifica di aggiornamento ed eliminazione:
    {
      url: “http://foo.com“
      latest_update {
        type: “URL_UPDATED”
        notify_time: “2017-07-31T19:30:54.524457662Z”
      }
      latest_remove {
        type: “URL_DELETED”
        notify_time: “2017-08-31T19:30:54.524457662Z”
      }
    }
    
  3. Se non ricevi una risposta HTTP 200, consulta gli errori specifici dell'API Indexing.
  4. Potresti aver bisogno di una quota maggiore di quella predefinita. Per visualizzare la quota corrente e richiederne una maggiore, consulta la sezione Quota.

Inviare richieste di indicizzazione in batch

Per ridurre il numero di connessioni HTTP che il client deve effettuare, puoi combinare fino a 100 chiamate all'API Indexing in un'unica richiesta HTTP. Puoi farlo in una richiesta con più parti chiamata di tipo batch.

Quando invii una richiesta per l'API Indexing in batch, utilizza i seguenti endpoint:

https://indexing.googleapis.com/batch

Il corpo di una richiesta batch contiene più parti. Ogni parte è una richiesta HTTP completa, con verbo, URL, intestazioni e corpo. Ciascuna parte all'interno di una richiesta batch non può superare 1 MB di dimensione.

Per semplificare l'invio di richieste batch, le librerie client dell'API di Google supportano la funzionalità di batch. Per ulteriori informazioni sui processi in batch con le librerie client, consulta le seguenti pagine specifiche per lingua:

Se utilizzi gli esempi di batch su queste pagine, potresti dover aggiornare il codice per riflettere i requisiti di implementazione descritti nella sezione Ottenere un token di accesso.

Il seguente corpo del messaggio di richiesta batch di esempio include una notifica di aggiornamento e una notifica di rimozione:

POST /batch HTTP/1.1
Host: indexing.googleapis.com
Content-Length: content_length
Content-Type: multipart/mixed; boundary="===============7330845974216740156=="
Authorization: Bearer oauth2_token

--===============7330845974216740156==
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: <b29c5de2-0db4-490b-b421-6a51b598bd22+2>

POST /v3/urlNotifications:publish [1]
Content-Type: application/json
accept: application/json
content-length: 58

{ "url": "http://example.com/jobs/42", "type": "URL_UPDATED" }
--===============7330845974216740156==
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: <b29c5de2-0db4-490b-b421-6a51b598bd22+1>

POST /v3/urlNotifications:publish [2]
Content-Type: application/json
accept: application/json
content-length: 75

{ "url": "http://example.com/widgets/1", "type": "URL_UPDATED" }
--===============7330845974216740156==
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: <b29c5de2-0db4-490b-b421-6a51b598bd22+3>

POST /v3/urlNotifications:publish [3]
Content-Type: application/json
accept: application/json
content-length: 58

{ "url": "http://example.com/jobs/43", "type": "URL_DELETED" }
--===============7330845974216740156==

Per ulteriori informazioni, consulta la sezione Inviare richieste in batch.