Indeksowanie wielu adresów URL jednocześnie czyli jak korzystać z Google Indexing API

Zgłaszanie do indeksacji adresów URL przez GSC to istna męczarnia. Wysłanie prośby o odwiedzenie strony przez robota przetwarzane jest nawet kilka minut. Jest jednak szybszy sposób na to. Taki, który pozwala wysłać do 200 żądań jednocześnie. Poznajcie Indexing API. W artykule konfiguracja krok po kroku z ciekawym Case Study na końcu.


Autor: 
Daniel Jędrysik
Czas czytania: 
Publikacja: 
28 maja 2020
Aktualizacja: 
31 marca 2022
Kategorie: 

Zanim nasza strona zostanie umieszczona w indeksie Google, robot indeksujący musi ją odkryć, przeskanować, wyrenderować, a na końcu dodać do katalogu. Odkrywanie odbywa się na wiele sposobów.

Jednym z nich jest zgłoszenie nowej lub zaktualizowanej strony w narzędziu do sprawdzania adresu URL, które zostało wbudowane w Google Search Console. Minusem tego rozwiązania jest długi czas oczekiwania na pobranie aktualnej wersji strony z indeksu oraz to, że jednocześnie możemy zgłosić tylko jeden adres.

Cały proces możemy przyspieszyć i otworzyć kilka kart w przeglądarce i wklejać kolejne URLe do zaindeksowania. Metoda nie jest idealna, ale sprawdzi się dla większości małych stron i blogów.

Co w przypadku, gdy chcemy szybko poinformować robota o kilkudziesięciu lub nawet kilkunastu nowych podstronach?

Z pomocą przychodzi nam Indexing API udostępnione przez giganta z Mountain View.

W tym artykule pokażę, jak skonfigurować API, aby w prosty sposób zgłaszać do aktualizacji do 200 adresów dziennie.

Do przetestowania i opisania Indexing API na moim blogu zachęcił mnie artykuł Wolf Brothers opublikowany w styczniu 2020 roku. Jego treść dostępna jest pod tym linkiem: https://wolfbrothers.net/automatyczne-dodawanie-wielu-adresow-url-do-gsc/.

Co to jest Indexing API?

Indexing API jest to interfejs programu aplikacyjnego umożliwiający poinformowanie robotów indeksujących Google o pojawieniu się nowych treści, zaktualizowaniu istniejących lub o usunięciu nieaktualnych stron.

Na chwilę obecną Google informuje, że API można używać do indeksowania nowych stron zawierających dane strukturalne JobPosting lub BroadcastEvent umieszczone w obiekcie VideoObject. W takim wypadku można zadać sobie pytanie – czy warto w takim razie tracić czas na konfigurację API skoro nie mogę zaindeksować np. nowych stron z produktami?

Moim zdaniem czas, który poświęcimy temu zagadnieniu nie będzie stracony. Google w każdej chwili może zmienić sposób działania API i dopuścić do indeksowania także strony sklepów czy artykuły prasowych. Poza tym Indexing API może przydać nam się także do innych zadań.

Do czego służy Google Indexing API?

Indexing API można wykorzystać do następujących czynności:

  • zgłaszania nowych stron (zawierających dane strukturalne JobPosting lub BroadcastEvent,
  • usuwania nieaktualnych adresów URL,
  • aktualizowania adresów URL,
  • uzyskiwania stanu żądania dotyczącego konkretnego adresu.

Poprzez API możemy także wysłać zbiorcze żądania z prośbą o indeksację. Należy jednak pamiętać o limitach. Jedno zbiorcze żądanie z 20 adresami będzie zmniejszało limit dzienny o 20 – tak jak w przypadku pojedynczych żądań.

Konfiguracja Google Indexing API

Przejdźmy zatem do konfiguracji API. Postępując zgodnie z tymi wskazówkami będziesz w stanie w ciągu pół godziny przygotować własny program do wysyłania żądań do Google.

Krok 1: Tworzymy projekt w Google Cloud Platform

Aby korzystać z Indexing API najpierw musimy utworzyć projekt oraz aktywować dostęp do interfejsu API. Wszystkie te czynności wykonuje się w Google Cloud Platform.

Przechodzimy na stronę https://console.cloud.google.com/home/dashboard. Jeżeli nie jesteśmy jeszcze zalogowani kontem Google należy to teraz zrobić.

W menu nawigacyjnym przechodzimy na zakładkę Administracja -> Ustawienia konta

Ustawienia konta w Google Cloud Platform

Aby skonfigurować konto musimy mieć utworzony projekt. Klikamy po prawej stronie ekranu w Utwórz projekt.

Na pojawiającym się ekranie uzupełniamy pole Nazwa projektu. Dobrze, żeby to była nazwa, dzięki której będziemy mogli w przyszłości łatwo zorientować się, w jakim celu utworzyliśmy dany projekt. Ja wybrałem nazwę GoogleIndexingApi.

Możemy także poświęcić chwilę i zmodyfikować identyfikator projektu. Możemy to zrobić to tylko dla nowo tworzonego projektu, więc niech to będzie przemyślana nazwa. Zasady tworzenia identyfikatora są bardzo proste. Musi on zaczynać się od małej litery, a kończyć literą lub cyfrą. Używać możemy jedynie małych liter, cyfr lub łączników.

Następnie klikamy Utwórz i po chwili będziemy mogli przejść do konfiguracji usługi.

Kliknięcie Utwórz przenosi nas na powrót do widoku Konta usługi. Klikamy w UTWÓRZ KONTO USŁUGI i wypełniamy pole Nazwa konta usługi. Opcjonalnie możemy też uzupełnić Opis konta usługi, dzięki czemu po jakimś czasie będziemy w stanie zorientować się, w jakim celu utworzyliśmy tę usługę.

Zauważmy, że pole Identyfikator konta usługi zostaje automatycznie uzupełnione. Przyjmuje ono formę adresu e-mail, gdzie element poprzedzający @ to nazwa konta usługi (pisana z małych liter, spacje zastępowane są łącznikami) a zaraz po “małpie” występuje identyfikator projektu uzupełniony o subdomenę iam.gserviceaccount.com. Identyfikator należy zapisać, gdyż przyda się on przy weryfikacji własności usługi.

Utworzenie konta usługi w Google Cloud Platform

Klikając UTWÓRZ przechodzimy do punktu 2. Jeżeli nie będziemy udostępniać usługi innym osobom możemy go pominąć.

W punkcie 3 tworzenia usługi konta pobieramy plik, w którym zapisany jest prywatny klucz. Klikamy UTWÓRZ KLUCZ i z wysuniętego z prawej strony okna wybieramy Typ klucza JSON i klikamy UTWÓRZ.

Okno z wyborem typu klucza

Na ekranie wyświetli się komunikat o prawidłowym wygenerowaniu klucza oraz na dysk zostanie pobrany plik o rozszerzeniu .json. Zapiszmy plik w bezpiecznym miejscu, gdyż umożliwia on dostęp do naszego projektu w chmurze. Plikiem tym nie powinniśmy się z nikim dzielić ani umieszczać go w ogólnodostępnych folderach.

Po wygenerowaniu klucza klikamy GOTOWE kończąc tym samym konfigurację usługi konta.

Jeżeli wszystko przebiegło bez problemów w oknie pokaże nam się taki widok:

Skonfigurowane Konto Usługi

Krok 2: Weryfikowanie własności witryny w Search Console

Aby przez Indexing API dodawać lub aktualizować adresu URL w obrębie naszej witryny, musimy potwierdzić, że należy ona do nas. Dokonujemy tego poprzez dodanie nowego użytkownika do zweryfikowanej usługi w Google Search Console.

O tym jak przeprowadzić weryfikację witryny w Google Search Consol pisałem w jednym z poprzednich wpisów.

Aby wykonać ten krok należy posiadać uprawnienia zweryfikowanego lub wyznaczonego właściciela.

Po otwarciu widoku głównego w GSC dla wybranej przez nas usługi wchodzimy w Ustawienia. Następnie wybieramy Użytkownicy i uprawnienia. Jeżeli nie widzimy tej pozycji oznacza to, że nasze uprawnienia są za niskie i nie możemy dodać nowego użytkownika.

Przy naszym koncie wybieramy trzy pionowo ustawione kropki i z menu kontekstowego wybieramy Zarządzaj właścicielami usługi.

Zarządzanie właścicielami usługi

Zostajemy przeniesieni do Centrum dla webmasterów, gdzie możemy dodać kolejnego zweryfikowanego właściciela. Aby się tam dostać możesz też skorzystać z linku: https://www.google.com/webmasters/verification/home.

Klikamy w Dodaj właściciela. W pojawiającym się oknie wprowadzamy Identyfikator konta usługi i klikamy Dalej.

Jeżeli wszystko przebiegło bez zakłóceń zobaczymy na ekranie krótki komunikat:

Użytkownik googleindexingapi@gia-dj-278319.iam.gserviceaccount.com został dodany.

Proces weryfikacji witryny może też zostać przeprowadzony w nowej Search Console, jednak z mojego doświadczenia wynika, że po odpaleniu skryptu wyskakuje błąd weryfikacji. Warto więc od razu dodać właściciela przez Centrum dla Webmasterów – zwłaszcza że tak dodany właściciel pojawi się też w nowej GSC.

Krok 3. Uruchomienie interfejsu Indexing API

Po zakończonej weryfikacji własności witryny przechodzimy do kroku 3 czyli uruchomienia API. Przechodzimy na stronę https://console.developers.google.com/­apis/­library/­indexing.googleapis.com i klikamy w przycisk WŁĄCZ.

Uruchamianie API

Po kilku chwilach usługa zostanie włączona, a my zostaniemy przeniesieni do panelu.

Krok 4. Instalacja Pythona i niezbędnych bibliotek

Aby skrypt działał niezbędna jest instalacja Pythona wraz z bibliotekami używanymi w skrypcie. W tym wpisie nie będę się rozwodził nad samą instalacją. Wystarczy przejść na stronę https://www.python.org/downloads/, pobrać Pythona w wersji 3.x i zainstalować. Pamiętajmy tylko, aby zainstalować także PIP (do instalacji innych bibliotek) oraz dodać Pythona do zmiennych środowiskowych (przy instalacji zaznaczamy pozycję Add to PATH).

Pozostało nam zainstalować biblioteki, które są niezbędne do prawidłowego działania skryptu. Najszybciej można to zrobić korzystając z Wiersza poleceń (Windows) lub Terminalu (Mac) używając poleceń:

pip install oauth2client
pip install virtualenv

oraz

pip install google-api-python-client

Pora na skrypt, który będzie odpowiadał za przesłanie prośby i odebranie odpowiedzi z API.

Krok 5. Skrypt

W pierwszej kolejności przygotujmy sobie katalog, w którym umieścimy pliki potrzebne do wykonania skryptu. W nim tworzymy dwa pliki:

  • pages.txt
  • gia.py

Do katalogu kopiujemy także nasz klucz i zmieniamy nazwę pliku na service_account_file.json

Struktura katalogu wygląda następująco:

📂 api

📄 gia.py

📄 pages.txt

📄 service_account_file.json

Do pliku gia.py kopiujemy poniższ kod źródłowy:

Zwróćcie uwagę na linijkę 14 i 15. Obie zawierają zmienną action do której przypisano dwie wartości URL_UPDATED i URL_DELETED. Pierwsza z nich została zakomentowana co oznacza, że program nie będzie jej brał pod uwagę przy wykonywaniu.

W przypadku, gdy podane adresy URL chcemy zaktualizować przed zmienną action w 14 linijce powinien pojawić się #. Jeżeli chcemy usunąć adresy zmieniamy położenie # z 14 na 15 linijkę.

W pliku pages.txt umieszczamy z kolei listę adresów URL, które chcemy zaktualizować. Oczywiście muszą to być adresy z domeny, której własność zweryfikowaliśmy w kroku 2.

Najwyższy czas przetestować Indexing API

Krok 6. Testy

W Wierszu poleceń lub Terminalu przechodzimy do katalogu, w którym umieszczony jest nasz skrypt.

W moim przypadku będzie to polecenie:

cd python/api

Jeżeli nie wiesz, jak posługiwać się Wierszem poleceń, koniecznie zapoznaj się z kursami dostępnymi w Internecie.

Skrypt uruchamiamy poleceniem:

python gia.py

lub

python3 gia.py

Jeżeli wszystkie powyższe kroki wykonaliśmy poprawnie powinniśmy uzyskać taki efekt:

Efekt działania skryptu w Wierszu poleceń

W pierwszej linijce podany jest zgłoszony adres URL. Druga i trzecia linijka informują o tym czy żądanie zostało przyjęte. W ostatniej linijce wypisany jest typ żądania.

Jak działa skrypt?

Zasada działania jest prosta. Skrypt otwiera plik ze stronami (pages.txt), zczytuje linijka za linijką adresy URL i umieszcza je w liście.

Następnie każdy URL wykorzystywany jest do stworzenia żądania wysyłanego do punktu końcowego po jego autoryzacji za pomocą protokołu OAuth 2.0.

Odpowiadając na prawidłowe żądanie, Google przesyła element HTTP 200. Oznacza to, że prośba została przyjęta i za w najbliższym czasie Google podejmie próbę zaindeksowania lub usunięcia adresu URL, w zależności od typu żądania.

Prawda, że proste 😉

Kody odpowiedzi HTTP zwracane przez Indexing API

Poniżej przedstawiam kilka kodów odpowiedzi, z którymi możecie się spotkać podczas pracy ze skryptem.

200 – Żądanie zostało przyjęte i wkrótce robot odwiedzi ten adres

403 – Forbidden – żądanie zostało sformułowane poprawnie, ale klient nie może uzyskać dostępu do zasobu. Taką odpowiedź uzyskujemy jeżeli prześlemy adres URL należący do domeny, dla której nie mamy zweryfikowanej własności.

429 – Too many Requests – Zbyt wiele żądań. Osiągnięto maksymalny limit żądań dla danego okresu czasu.

Ile żądań można wysłać do indexing API?

Przy podstawowej konfiguracji możemy wysłać do 200 żądań w ciągu jednego dnia. Dzienne limity są resetowane o północy czasu pacyficznego, czyli o godzinie 9:00 w naszej strefie czasowej.

Można wystąpić o zwiększenie limitu pod tym adresem https://console.cloud.google.com/­apis/­api/­indexing.googleapis.com/­overview w zakładce LIMITY. Próbowałem na przełomie lutego i marca i do tej pory nie uzyskałem odpowiedzi. Nie mniej jednak, jeżeli zwiększenie limitu jest dla Ciebie niezbędne wypełnij formularz i czekaj na odpowiedź.

Bonus - Case Study: Wykorzystanie Google Indexing API do usunięcia zaindeksowanych stron

Zastanawiacie się, po co usuwać z indeksu zaindeksowane strony? Są przypadki – nawet dość częste – kiedy Google indeksuje strony, których byśmy nie chcieli. Strony słabej jakości, zduplikowane lub takie, które nie powinny nigdy być dostępne z poziomu wyszukiwarki.

Także niektóre wirusy tworzą podstrony, które robot może umieścić w indeksie. Takie URL są jak kotwica dla naszej domeny. Wcześniej czy później pociągną ją na dno.

Taka sytuacja miała miejsce w przypadku jednego z moich klientów. Wirus utworzył ok 3600 podstron, które przekierowywały do stron kasyn i innych podejrzanych lokalizacji. Sytuacja dość szybko została wyłapana, ale pozostał problem w postaci zaindeksowanych adresów.

W pierwszej kolejność ustawiliśmy przekierowania tych adresów na stronę 404, a potem zgłosiliśmy URLe do usunięcia z wyników wyszukiwania za pomocą Google Search Console.

Następnie czekaliśmy…

… czekaliśmy …

… i czekaliśmy …

… ale Google nie chciał wyrzucić adresów z indeksu.

W końcu użyłem Indexing API. Zgłaszanie żądań zajęło mi ok 18 dni roboczych ale opłaciło się. Mniej więcej po tygodniu od zgłoszenia pierwszego adresu URL słupki w zakładce STAN w GSC zaczęły spadać. Google kolejno odwiedzał adresy i wykluczał je z indeksu nadając status Nie znaleziono (404). Obecnie w indeksie znajdują się jedynie wartościowe adresy URL, a strona odzyskuje utracone pozycje.

Stan indeksowania po usunięciu adresów URL poprzez Indexing API

Podsumowanie

Google Indexing API to ciekawe narzędzie, z którego pomocą można zaktualizować lub usunąć adres w obrębie zweryfikowanej domeny. Wprawdzie możliwości dodawania nowych adresów są mocno ograniczone, jednak z czasem może się to zmienić. Warto być na to przygotowanym i zawczasu opanować konfigurację interfejsu.

Jeżeli w trakcie czytania, nasunęło się Wam pytanie lub coś było niejasne, odezwijcie się na Facebooku lub LinkedIn. Z chęcią odpowiem na nurtujące Was pytania.

Daniel Jędrysik

Od 2018 roku związany jestem z marketingiem internetowym. Specjalizuję się w optymalizacji stron internetowych i sklepów. Obecnie pełnię funkcję Marketing Managera w Agencji KS. Prywatnie jestem miłośnikiem fantastyki oraz zapalonym czytelnikiem.