🢂Sprawdzanie poprawności linków za pomocą arkuszy Google Sheets

Monitorowane poprawności linków i diagnozowania problemów z przekierowaniami na stronach internetowych za pomocą Google Sheets.

Wstęp

Funkcja getStatusCode sprawdza status HTTP dla podanego adresu URL, obsługuje przekierowania 301, weryfikując, czy docelowy adres nie zwraca błędu 404, co może być przydatne do monitorowania poprawności linków i diagnozowania problemów z przekierowaniami na stronach internetowych.

Funkcja może służyć do:

  1. Monitorowania poprawności linków – sprawdzanie, czy podane adresy URL są dostępne i nie prowadzą do błędów (np. 404).
  2. Analizy przekierowań – weryfikacja, czy przekierowania 301 kierują na poprawne strony docelowe.
  3. SEO – identyfikacja nieprawidłowych lub przestarzałych przekierowań na stronach, co pomaga utrzymać wysoką jakość linkowania.
  4. Audytu stron internetowych – automatyczne sprawdzanie, które linki na stronie działają poprawnie, a które wymagają poprawy.
  5. Testowania aplikacji – użycie w procesach testowania API lub stron internetowych, aby upewnić się, że wszystkie przekierowania i zasoby działają prawidłowo.

Działanie funkcji getStatusCode:

  1. Funkcja wykonuje zapytanie HTTP do podanego adresu.
  2. Jeśli odpowiedź serwera to 301, pobierany jest nagłówek Location z odpowiedzi, który wskazuje adres przekierowania.
  3. Funkcja wykonuje dodatkowe zapytanie do przekierowanego adresu i sprawdza kod statusu.
  4. Jeśli pod przekierowanym adresem znajduje się błąd 404, zwraca odpowiedni komunikat.
  5. W przeciwnym razie zwraca kod odpowiedzi dla przekierowanego adresu np. 200.

Kod funkcji

function getStatusCode(url) {
    var options = {
        muteHttpExceptions: true,
        followRedirects: false,
    };
    var url_trimmed = url.trim();
    var response = UrlFetchApp.fetch(url_trimmed, options);
    var statusCode = response.getResponseCode();

    if (statusCode === 301) {
        // Pobierz adres przekierowania z nagłówka "Location"
        var redirectedUrl = response.getHeaders()['Location'];

        if (redirectedUrl) {
            // Sprawdź status kod pod przekierowanym adresem
            var redirectedResponse = UrlFetchApp.fetch(redirectedUrl, options);
            var redirectedStatusCode = redirectedResponse.getResponseCode();

            // Jeśli chcesz bardziej szczegółowe info odkomentuj linie poniżej
            // if (redirectedStatusCode === 404) {
            //   // return `Redirected URL (${redirectedUrl}) returned 404`;
            // }
            return `${redirectedStatusCode}`;
        } else {
            return 'Odpowiedź 301 bez nagłówka lokalizacji';
        }
    }

    return statusCode;
}

Jak ją dodać do arkusza Google Sheets?

Aby dodać funkcję getStatusCode do arkusza Google Sheets i używać jej bezpośrednio w arkuszu kalkulacyjnym, wykonaj poniższe kroki:

1. Otwórz Google Apps Script

  • W Google Sheets kliknij "Rozszerzenia" > "Apps Script".
  • Otworzy się edytor Apps Script.

2. Dodaj kod funkcji

  • W edytorze Apps Script usuń domyślny kod.
  • Wklej kod znajdujący się wyżej.

3. Zapisz projekt

  • Kliknij ikonę "Zapisz" lub użyj skrótu Ctrl + S / Cmd + S.
  • Wprowadź nazwę projektu, np. CheckStatusCode lub zostaw bez zmian.

5. Używanie funkcji w arkuszu

  • W arkuszu Google Sheets wpisz w dowolnej komórce:
=getStatusCode(A1)
  • Gdzie A1 to komórka zawierająca URL, który chcesz sprawdzić.

Dodatkowe uwagi

  • Funkcja zwraca kod statusu HTTP lub opis błędu, jeśli znajdzie 404 lub brak nagłówka Location.
  • Upewnij się, że adresy URL w arkuszu mają poprawny format (np. zaczynają się od http:// lub https://).

Gotowe! Teraz możesz sprawdzać statusy HTTP bezpośrednio w swoim arkuszu Google Sheets.