Kontroleer HTTP-statuskodeformule in Google Sheets met Apps Script

Soos handelsmerke organiese ranglys verloor, kry hulle uiteindelik terugskakels wat na 404 bladsyeTerugskakels is van kritieke belang vir ranglys, so wanneer die skakel gebreek is, gee jy nie gesag aan die bestemmingsbladsy oor nie en gevolglik kan dit in ranglys daal (soos jou hele domein).
Gereelde terugskakeloudits uitvoer om te verseker dat ouer skakels steeds na relevante bestemmingsbladsye wys, is 1. Gebruik 'n instrument soos Semrush, kan jy jou terugskakels uitvoer. Alhoewel hulle tipies 'n interne hulpmiddel het om te kyk of 'n terugskakel opgelos word, is dit dikwels verouderd.
Kry HTTP-statuskodefunksie in Apps Script
In plaas daarvan voer ek die terugskakels in 'n in Google-blad en het 'n maklike manier uitgevind om die status van elke terugskakel na te gaan en of dit opgelos word. Om dit te doen, het ek 'n klein funksie geskryf met behulp van Google se Apps Script.

Om dit by te voeg, maak oop Uitbreidings > Apps Script en plak die volgende kode:
function getStatusCode(url) {
const url_trimmed = typeof url === 'string' ? url.trim() : '';
if (!url_trimmed) {
return 'No URL';
}
let cache = CacheService.getScriptCache();
let result = cache.get(url_trimmed);
if (!result) {
const options = {
'muteHttpExceptions': true,
'followRedirects': true // Set to false if you want to detect redirects instead of following them
};
const response = UrlFetchApp.fetch(url_trimmed, options);
const responseCode = response.getResponseCode();
cache.put(url_trimmed, responseCode.toString(), 21600);
result = responseCode.toString();
}
return parseInt(result);
} Stoor en keer terug na die sigblad. Dan kan jy die funksie in die sel in B2 byvoeg:
=getStatusCode(A2) Hierdie funksie kontroleer die HTTP-responskode vir 'n gegewe URL. Dit valideer eers dat die invoer 'n string is en sny enige ekstra witspasie af. Indien geen geldige URL verskaf word nie, stuur dit terug. Geen URL nieDie funksie gebruik dan die ingeboude CacheService om voorheen verkrygde statuskodes vir tot ses uur (21 600 sekondes) te stoor, wat oorbodige netwerkversoeke vir dieselfde URL vermy.
Indien die URL nie in die kasgeheue gestoor is nie, voer dit 'n HTTP-versoek uit met behulp van UrlFetchApp.fetch() met die muteHttpExceptions-opsie geaktiveer, wat die skrip toelaat om statuskodes selfs van mislukte versoeke vas te lê, en followRedirects word op waar gestel sodat dit outomaties enige aansture volg. Sodra die reaksie ontvang is, stoor dit die resulterende HTTP-statuskode in die kasgeheue en stuur dit as 'n heelgetal terug.
Voeg die formule by jou Google-blad
Sleep die formule deur die sigblad. Jy sal dit tyd moet gee om elke skakel op te los, en die kode sal in die Status-veld verskyn. Nou kan jy elke skakel identifiseer wat na 'n ... lei. 404, en jy kan daaraan werk om dit na 'n relevante bestemming te herlei.

Dit is belangrik om daarop te let dat hierdie funksie nie oombliklik uitgevoer word nie. Elke netwerkoproep na UrlFetchApp.fetch() benodig tyd om op te los, en wanneer veelvuldige URL'e verwerk word, kan die kumulatiewe vertraging beduidend wees. Ontwikkelaars moet kasgeheue effektief gebruik en, wanneer hulle met groot lyste URL'e werk, oorweeg om tempobeperking of bondelvorming te implementeer om skrip-tyd-uit of die oorskryding van uitvoeringskwotas in Apps Script te voorkom.



