Jak sprawdzić, czy strona działa?

Utrzymujący się przez jakiś czas brak dostępu do strony może przyczynić się do spadku liczby użytkowników oraz usunięcia strony z indeksu Google. Aby temu zapobiec, należy regularnie sprawdzać, czy strona jest aktywna. Można to robić ręcznie lub… napisać własny skrypt, który codziennie będzie odpytywał podany adres URL i zapisywał kod odpowiedzi serwera w arkuszu Google. Sprawdź, jak przygotować przydatne narzędzie SEO.


Autor: 
Daniel Jędrysik
Czas czytania: 
Publikacja: 
22 stycznia 2021
Aktualizacja: 
31 marca 2022
Kategorie: 

W grudniu na blogu ukazał się artykuł o kodach odpowiedzi HTTP i ich wpływie na SEO. Wspomniałem w nim, że uzyskanie przez silnik wyszukiwarki – w trakcie odwiedzin naszej strony – kodu odpowiedzi 4xx skutkuje usunięciem jej z wyników wyszukiwania. Zacząłem zastanawiać się, w jaki sposób – bez konieczności angażowania płatnych narzędzi – sprawdzać czy strona działa.

Oczywiście można to robić ręcznie każdego dnia w przeglądarce, ale przy dużej ilości projektów nie zawsze mamy na to czas lub po prostu możemy o tym zapomnieć. Pół biedy jeżeli witryna internetowa działa jak należy. Problem zaczyna się wtedy, kiedy przegapimy moment, w którym strona nie działa, a robot ponownie ją odwiedził.

Aby uniknąć takiej sytuacji i nie obciążać się dodatkową pracą, jakiś czas temu wpadłem na pomysł, by do weryfikacji witryny internetowej zaprząc Pythona oraz Crona.

Założenia projektu

Głównym założeniem projektu jest stworzenie narzędzia (skrypt w Pythonie), które wysyła do serwerów zapytanie i gromadzi kody odpowiedzi HTTP. Domeny pobierane będą z osobnego pliku i na tej podstawie narzędzie odpyta serwer o każdy adres www z osobna.

Aby takie narzędzie było pomocne, musi ono odpytywać serwer cyklicznie. Do tego wykorzystam Cron’a wbudowanego w system macOS.

Dodatkowo dane zostaną przesłane poprzez API do arkusza Google, a następnie na ich podstawie zostanie utworzony dynamiczny raport w Google Data Studio, który szybko i sprawnie pozwoli zinterpretować zgromadzone informacje.

Minusem tego narzędzia będzie to, że aby poprawnie działało, o ustalonej godzinie musi być włączony komputer.

Bez zbędnego przedłużania przejdźmy do poradnika.

Krok 1. Utworzenie projektu w Google Cloud Platform

Jeżeli jeszcze nie miałeś możliwości zapoznać się z artykułem o Google Indexing API, to właśnie jest ten moment. W nim bowiem umieściłem informacje jak tworzyć projekty w Google Cloud Platform. Ja wykorzystałem wcześniej utworzony projekt, ale jeżeli chcesz, możesz spokojnie stworzyć nowy. Nie zapomnij tylko o pobraniu klucza i zapisaniu go w bezpiecznym miejscu.

Krok 2. Uruchomienie interfejsu Google Sheets API i Google Drive API

Twoje narzędzie będzie potrzebować dostępu do dwóch API. W tym celu w oknie projektu wybierz z menu bocznego Library i wyszukaj usługi:

  • Google Sheets API
  • Google Drive API

Obie usługi aktywujemy przyciskiem Enable.

Krok 3. Utworzenie pliku na dysku Google

Kolejnym etapem jest utworzenie arkusza na dysku Google. Nadaj mu dowolną nazwę, a następnie w pierwszej komórce wpisz Data. W tej kolumnie zapisywane będą daty kolejnych sprawdzeń. Adresy URL do monitorowania będziesz mógł umieścić w kolejnych kolumnach w pierwszym rzędzie. W przykładzie wpisałem 4 warianty mojej domeny.

Aby nasz program miał dostęp od tego arkusza, należy udostępnić dokument. Posłuży nam do tego Identyfikator Konta Usługi. Wprowadzamy go w pole, które pojawi się po kliknięciu przycisku Udostępnij w prawym górnym rogu arkusza.

Upewnij się, że dodałeś nowego użytkownika z funkcją Edytora!

Czas na stworzenie skryptu, który pozwoli sprawdzić, jakie kody odpowiedzi zwracane są przez poszczególne adresy.

Krok 4. Skrypt w Pythonie

Powyższy skrypt łączy się z arkuszem na dysku Google, pobiera z niego listę z pierwszej kolumny i po kolei odpytuje serwer. Odpowiedzi HTTP gromadzi na następnej kolumnie, w nagłówku umieszczając datę sprawdzenia. Kolejne testy będą zapisywane w następnych kolumnach.

Skrypt można bez oporów skopiować i użyć w swoim narzędziu. Należy pamiętać jednak o kilku sprawach:

  • W katalogu ze skryptem koniecznie umieść pobrany wcześniej klucz do projektu Google Cloud Platform.
  • Sprawdź, czy nazwa klucza to service_account_file.json. Jeżeli jest inaczej, zmień nazwę klucza na domyślną lub popraw tę linijkę w kodzie:
creds = ServiceAccountCredentials.from_json_keyfile_name('tu-wstaw-nazwe-swojego-klucza.json', scope)
  • zmień nazwę arkusza (na tę utworzoną w kroku 3) w linijce:
sheet = client.open("Nazwa twojego arkusza").sheet1

Warto przed uruchomieniem Cron’a wykonać szybki test i uruchomić program w Terminalu. Jeżeli wszystko przebiegnie bez większych problemów, w arkuszu zobaczymy nową kolumnę wraz z kodami odpowiedzi.

Krok 5. Crontab

Skrypt działa, pora ustawić cykliczne jego wywołanie. W artykule Cron – Automatyzacja codziennych zadań SEO podałem, jak wprowadzić automatyzację zadań dla przykładowego skryptu. Jeżeli prześledzisz krok po kroku cały proces bez trudu uda Ci ustawić wywołanie kodu o określonej porze.

W moim przypadku ustawiłem uruchamianie skryptu codziennie o godzinie 8:00. Wyrażenie Cron będzie zatem miało postać:

0 8 * * * cd ~/desktop/python/server-check && /usr/bin/python3 statuschecker.py >> ~/desktop/python/server-check/log.txt 2>&1

Testując wykonywanie się skryptu przez Crontab, natknąłem się na problem z importem modułów. W pliku log.txt pojawił się komunikat:

Traceback (most recent call last):
File "clickout.py", line 3, in <module>
import gspread
ImportError: No module named gspread

Okazuje się, że program nie wiedział, skąd ma zaimportować biblioteki. Jeżeli także w Twoim przypadku pojawi się taki błąd, wykonaj następujące czynności:

  1. Sprawdź w pliku log.txt (znajdziesz go w głównym katalogu z programem), która biblioteka sprawia problemy. W tym przykładzie będzie to moduł gspread
  2. Otwórz terminal i wprowadź komendę: python3
  3. Zaimportuj feralną bibliotekę komendą: import gspread
  4. Wprowadź komendę wyświetlającą ścieżkę do modułu: gspread.__file__
  5. Skopiuj fragment ścieżki (zaznaczony na screenie poniżej) do katalogu z modułem
Ścieżka do biblioteki Pythona

  1. Zmodyfikuj plik z programem. Przed linijką z importem modułów dodaj te dwa wiersze:
import sys;
sys.path.append('/Users/admin/Library/Python/3.7/lib/python/site-packages/')
  1. Sprawdź, czy teraz skrypt wykonuje się poprawnie. Aby szybko wykryć ewentualne problemy, możesz wcześniej usunąć plik log.txt
  2. Jeżeli znów pojawi się ten sam błąd, ale dla innego modułu, wróć do punktu 1. W punkcie 6 dodajesz jedynie komendę sys.path.append ze ścieżką do modułu.

Finalny efekt cyklicznego wykonania skryptu w arkuszu Google.

Sprawdzani statusu strony - dane zapisane w arkuszu Google

Krok 6. Raport dynamiczny w Google Data Studio

Dane prezentowane w tabeli możemy lepiej zaprezentować, wykorzystując do tego Google Data Studio.

  1. Przejdź na stronę: https://datastudio.google.com/u/0/navigation/reporting. Musisz być zalogowany na koncie Google, na którym utworzyłeś arkusz.
  2. Utwórz nowy raport, klikając w pusty raport.
  3. Dodaj dane do raportu.
Dodawanie danych do raportu w Google Data Studio

  1. Odszukaj arkusz kalkulacyjny z danymi i kliknij DODAJ. Będziesz musiał jeszcze potwierdzić, czy aby na pewno dodać to źródło danych.
  2. Domyślnie zostanie dodana tabela. Możesz ją usunąć.
  3. Wejdź w Dodaj element sterujący, wybierz Lista i umieść ją na ekranie.
  4. Przy konfiguracji upewnij się, czy Wymiar zakresu dat i Pole elementu sterującego ma ustawioną wartość Data.
  5. W ustawieniach STYL dla elementu lista zaznaczamy checkbox Wybieranie pojedyncze.
  6. Z menu Dodaj wykres, wybierz pierwszą opcję z grupy Podsumowanie statystyk i umieść element na ekranie
  7. Ustawienia dla elementu (zakładka DANE): Wymiar zakresu dat -> Data; Dane -> Adres URL
  8. Stylowanie elementów zostawiam Tobie.

Mój raport dynamiczny wygląda tak:

Raport dynamiczny

Dodałem jeszcze do pól formatowanie warunkowe, dzięki czemu od razu zauważę, gdyby coś z moją stroną było nie tak.

Formatowanie błędy w Google Data Studio

W ten oto sposób stworzyliśmy program, który sprawdza, czy strona WWW działa i czy nie występują z nią jakieś problemy. W jednym z kolejnych wpisów rozbuduję kod o możliwość sprawdzenia ważności certyfikatu SSL oraz wysyłania powiadomień na maila.

Jeżeli, któryś element poradnika jest dla Ciebie niejasny, znajdź mnie na LinkedIn lub Facebooku i poproś o pomoc. Możesz też napisać do mnie bez powodu, aby po prostu porozmawiać.

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.