december 19, 2020

Indexbutton verdwenen in Google Search Console

Indexknop Verdwenen in Searchconsole

Enige tijd geleden kondigde google aan te werken aan een update voor Searchconsole (ook wel bekend als webmaster tools). Wegens deze werkzaamheden was Google genoodzaakt om de indexfunctie tijdelijk uit te schakelen. Dit was op 14 oktober maar helaas is deze functie op het moment van schrijven 19-12-2020 nog steeds buiten werking.

Pagina-acties zijn tijdelijk uitgeschakeld/ Page actions are temporarily disabled

Op de pagina zelf vind je het bericht: Pagina-acties zijn tijdelijk uitgeschakeld. Dit betekent natuurlijk niet dat indexering niet meer zal plaatsvinden. Google zal dit blijven doen, middels alle overige kanalen zoals een sitemap op via via backlinks etc etc. Maar het kan wel vervelend zijn wanneer je snel een her-indexering kunt gebruiken naar aanleiding van een correctie op je pagina of welke wijziging dan ook.

Google Searchconsole Indexbutton workaround

Maar hoe kan ik mijn pagina's dan toch laten indexeren door Google zonder index button? Je kunt de index-engine van Google stimuleren om jouw pagina's te spideren/crawlen via de Indexing-api. Hiervoor is wel wat voorwerk nodig maar al met al is het mij gelukt zonder al te grote hobbels.

Na enig speurwerk kwam ik een script tegen welke via het NodeJS framework pagina's bij Google kan indienen om geïndexeerd te worden.

Het script voor de bulk-indexatie vind je hier

Google Indexing-API Script

google-indexing-api-bulk

Created by Steve at [Journey Further SEO]
Handleiding in het Nderelands vertaald door https://www.Manuelhoven.nl

Requires node.js - https://nodejs.org/en/download/

Dit script is bedoeld om meerdere pagina's in een keer aan te bieden via de Google indexing API zonder gebruik te maken van de Search Console interface

Als eerste is er toegang nodig tot de Indexing API van het Google Cloud Platform. Volg de instructies hiervoor vie de volgende link

https://developers.google.com/search/apis/indexing-api/v3/prereqs

Na dit te hebben gedaan zijn er twee keys aangemaakt (public/private) deze kan je downloaden als JSON file dit bestand bevat alle benodigheden om te verifieren en dienen opgelsagen te worden als "service_account.json".

Add the URLs to the urls.txt file that you need to be crawled/indexed.
Voeg de te indexeren URL's toe aan het bestand "urls.txt".

Laat Google weten dat de sites in jouw beheer zijn

Om de indexing-API toestemming te geven moet je het mailadres toevoegen welke te vinden is in het JSON bestand waarin de key's staan. Deze even openen met notepad om het mailadres te achterhalen. Het ziet er ongeveer uit als het volgende
my-service-account@test-project-42.google.com.iam.gserviceaccount.com
Gebruik dit mailadres om de indexing- API toegang te geven tot de webproperty via het OUDE searchconsole/Webmastertools portaal
De URL van het oude portaal is: https://www.google.com/webmasters/verification/details

Foutmelding tijdens het uitvoeren van script

Waar ik zelf nog tegenaan liep was een foutmelding aangaande de "Request" module. deze moest ik nog handmatig installeren. Dat via het volgende commando.

npm install request -g -f

Quotas
100 URLs per request batch
200 URLs per day

const fs = require('fs');
var request = require('request');
var { google } = require('googleapis');
var key = require('./service_account.json');

const jwtClient = new google.auth.JWT(
  key.client_email,
  null,
  key.private_key,
  ['https://www.googleapis.com/auth/indexing'],
  null
);

const batch = fs
  .readFileSync('urls.txt')
  .toString()
  .split('\n');

jwtClient.authorize(function(err, tokens) {
  if (err) {
    console.log(err);
    return;
  }

  const items = batch.map(line => {
    return {
      'Content-Type': 'application/http',
      'Content-ID': '',
      body:
        'POST /v3/urlNotifications:publish HTTP/1.1\n' +
        'Content-Type: application/json\n\n' +
        JSON.stringify({
          url: line,
          type: 'URL_UPDATED'
        })
    };
  });

  const options = {
    url: 'https://indexing.googleapis.com/batch',
    method: 'POST',
    headers: {
      'Content-Type': 'multipart/mixed'
    },
    auth: { bearer: tokens.access_token },
    multipart: items
  };
  request(options, (err, resp, body) => {
    console.log(body);
  });
});

Geef een reactie

  • Ads
  • Data
    Studio
  • Google ADS-A
    Google
    Ads
  • Search Console