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 elementi JobPosting o BroadcastEvent incorporati in una proprietà VideoObject.

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

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

Aggiornare un URL

Send the following HTTP POST request to https://indexing.googleapis.com/v3/urlNotifications:publish endpoint
{
  "url": "https://careers.google.com/jobs/google/technical-writer",
  "type": "URL_UPDATED"
}
Rimuovere un URL

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

Send a HTTP GET request to https://indexing.googleapis.com/v3/urlNotifications/metadata endpoint

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 dell'elemento che vuoi aggiornare o rimuovere.

type

Obbligatorio

Il tipo di notifica che hai inviato.

Linee guida

Le seguenti linee guida si applicano alle richieste di aggiornamento e rimozione di un URL.

  • Tutte le chiamate a https://indexing.googleapis.com/v3/UrlNotifications:publish DEVONO utilizzare "application/json" come intestazione 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:
    Send a HTTP POST request to 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 inoltrate 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 determinare una nuova scansione della pagina da parte di Google.
  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 o aver aggiunto il tag <meta name="robots" content="noindex" /> nella sezione <head> di una determinata pagina, informa Google affinché rimuova la pagina dal suo indice e non esegua nuovamente la scansione dell'URL e l'indicizzazione della pagina. Prima che tu richieda la rimozione, l'URL deve restituire un codice di stato 404 o 410 oppure la pagina deve contenere un meta tag <meta name="robots" content="noindex" />.

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

  1. Invia una richiesta POST al seguente endpoint:
    Send a HTTP POST request to 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 inoltrate 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; ma solo se hai inviato correttamente una 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 con codifica URL. Ad esempio, sostituisci : (due punti) con %3A e / (barre) con %2F.
    Send a HTTP GET request to 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 detta "in batch".

Quando invii una richiesta in batch per l'API Indexing, utilizza il seguente endpoint:

https://indexing.googleapis.com/batch

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

Per semplificare l'invio di richieste in 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 invio in 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 in 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.