Onlangs kwam een nieuwe klant bij ons met een webshop waarvan de robots.txt verkeerd was geconfigureerd, waardoor Google per ongeluk werd geblokkeerd bij het crawlen van productpagina’s. Nadat we de robots.txt en de indexeerinstellingen hadden hersteld, stonden duizenden URL’s vast op Discovered — currently not indexed. Wachten tot Google alles opnieuw zou crawlen zou weken hebben geduurd. Het versturen van URL-meldingen via de Indexing API zorgde ervoor dat de herstelde pagina’s aanzienlijk sneller opnieuw werden gecrawld.
In Google Search Console betekent Discovered — currently not indexed dat Google een URL heeft gevonden, maar nog niet heeft besloten om deze te crawlen. De Indexing API stelt je in staat om Google direct op de hoogte te stellen wanneer een URL wordt bijgewerkt of verwijderd. Officieel is de API bedoeld voor vacatures en live video’s, maar veel website-eigenaren gebruiken hem voor elke URL die ze opnieuw willen laten crawlen.
Voordat je de commando’s uitvoert
- Maak een service account aan in het Google Cloud-project waarvoor de Indexing API is geactiveerd.
- Schakel de Indexing API in voor dat project.
- Voeg het e-mailadres van het service account toe als Owner in Google Search Console voor de site.
- Genereer een OAuth2-access token voor het service account.
Vervang <YOUR_ACCESS_TOKEN> in de voorbeelden door het token dat je krijgt via gcloud auth application-default print-access-token of je eigen OAuth-flow.
Melding voor één URL
curl --request POST \
--url https://indexing.googleapis.com/v3/urlNotifications:publish \
--header "Authorization: Bearer <YOUR_ACCESS_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
"url": "https://example.com/page-url",
"type": "URL_UPDATED"
}'
Geldige waarden voor type zijn URL_UPDATED (nieuw of bijgewerkt) en URL_DELETED (verwijderd).
Batch-meldingen voor meerdere URL’s
Voor veel pagina’s tegelijk stuur je één multipart-request. Elke onderdeel heeft zijn eigen Content-ID en boundary.
curl --request POST \
--url https://indexing.googleapis.com/batch \
--header "Authorization: Bearer <YOUR_ACCESS_TOKEN>" \
--header "Content-Type: multipart/mixed; boundary=batch-boundary-abc123" \
--data-binary @- << 'EOF'
--batch-boundary-abc123
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: <batch-1>
POST /v3/urlNotifications:publish
Content-Type: application/json
accept: application/json
{ "url": "https://example.com/page-1", "type": "URL_UPDATED" }
--batch-boundary-abc123
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: <batch-2>
POST /v3/urlNotifications:publish
Content-Type: application/json
accept: application/json
{ "url": "https://example.com/page-2", "type": "URL_UPDATED" }
--batch-boundary-abc123--
EOF
Wat je kunt verwachten
- Bij succes antwoordt de API met HTTP
200en eenUrlNotificationMetadata-object. - De API vraagt alleen om een crawl; Google beslist nog steeds of de pagina wordt geïndexeerd.
- De quota is momenteel 200 meldingen per dag per site.
Andere dingen die helpen
- Dien een XML-sitemap in of dien deze opnieuw in via Search Console.
- Voeg sterke interne links toe naar de pagina vanaf al geïndexeerde pagina’s.
- Zorg dat de pagina nuttig, snel en mobielvriendelijk is.
- Heb geduld; indexering kan uren tot dagen duren.
Voor de volledige setup-instructies, zie de officiële documentatie voor de Indexing API quickstart en using the API.