CRON jobs används för att schemalägga aktiviteter periodiskt vid fasta tider, datum eller intervall på din WordPress-webbplats. Några exempel på cron-jobb på wordpress är schemaläggning av ett inläggs publicering, sökning efter uppdateringar eller en säkerhetskopia som körs på ett för-definierat schema.

I WordPress hanteras detta av WP-Cron, som används för att simulera en system-cron. Men beroende på mängden trafik till din webbplats, kan den inbyggda cron-hanteraren faktiskt börja påverka din sidas laddningstid. Så idag ska vi visa dig hur du inaktiverar WP-Cron (wp-cron.php) och istället använder ett system-cron för snabbare prestanda.

Prestandaproblem med WP-Cron

Kinsta arbetar med en hel del högt trafikerade och krävande webb-platser. På grund av detta har vi sett en hel del prestanda-problem med WordPress inbyggda Cron-hanterare: WP-Cron. Först och främst är det viktigt att förstå att WP-Cron inte är en riktig cron, det är helt enkelt något som WordPress har skapat för att efterlikna vad en system-cron gör.

WP-Cron körs inte kontinuerligt. Som standard, körs wp-cron.php på varje laddning av webbsidan. Om man har en högt trafikerad webb-plats  kan detta orsaka problem. Om en webbplats inte har tillräckligt med PHP-bearbetare, kan en begäran ibland komma in, och wordpress leker cron utan att få fatt på nån PHP-bearbetare. I dessa fall väntar cron förgäves och laddningen fördröjs.

Det kan även vara tvärtom. Om en webbplats inte har mycket trafik kan scheman missas på grund av att en sida aldrig blivit inläst.

En bättre metod är att inaktivera WP-Cron och använda system- cron istället. Detta Cron körs på ett för-definierat schema och rekommenderas även i den officiella Plugin-handboken

Inaktivera WP-Cron

För att inaktivera WP-Cron, lägg till följande till din wp-config.php-fil, strax före raden som säger ”Det är allt, sluta redigera!” Obs: Detta inaktiverar Cron från att köras när sidan laddas, inte när du kallar det direkt via wp-cron.php.

define ('DISABLE_WP_CRON', true);
Inaktivera WP-Cron
Inaktivera WP-Cron

Så här schemalägger du System-Cron

Du kommer att behöva schemalägga wp-cron.php från din server.

Om din webbplats är en multisida finns det några extra installationssteg som du måste vidta så att cron jobs körs för dina underwebbplatser. Här är ett par resurser som vi kan rekommendera för detta:

Om du har en enda webbplats på WordPress är en god nyhet att om du är en Kinsta-kund utlöser cron på vår server-sida wp-cron.php var 15: e minut som standard. 💪 Detta kommer att köra alla schemalagda WordPress-crons. Och om det krävs kan du öka frekvensen genom att höra av dig till vårt supportteam.

Om du är bekant med SSH kan du även följa vår handledning om hur du hanterar server-crons från kommandoraden i Kinsta. Alla våra hosting-planer inkluderar SSH-åtkomst.

Om du inte är kinsta-kund rekommenderar vi att du kollar in Konfigurera WordPress Cron jobs korrekt för att lära dig hur du konfigurerar system-crons.

Skapa Cron-jobb i cPanel

Om du använder en värd med cPanel kan du även skapa en system-cron från kontrollpanelen. Se till att du inaktiverar standardWP-Cron ovan först.

Steg 1

Logga in på cPanel. Klicka på Cron-jobb i avsnittet Avancerat.

cPanel cron jobb
cPanel cron jobb

Steg 2

Under avsnittet Lägg till nytt Cron-jobb kan du välja mellan ett antal olika för-definierade scheman, till exempel två gånger per timme eller en gång per vecka. Ditt webbhotell har troligen en gräns för hur ofta de tillåter cron-jobb att köras. Två gånger per timme är en vanlig inställning för delade hostar.

cPanel cron jobbinställningar
cPanel cron jobbinställningar

Steg 3

Lägg till följande kommando. Ersätt https://domain.com med ditt domännamn. Det här kommandot kan variera något beroende på hur din host konfigureras. Klicka sedan på ”Lägg till nytt Cron-jobb”.

wget -q -O - https://domain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
cPanel lägg till nytt cron-jobb
cPanel lägg till nytt cron-jobb

Delen >/dev/null 2>&1 1 i kommandot ovan inaktiverar e-postmeddelanden.

Schemalägg Crons med tredjepartslösning

Om du inte är bekväm med att konfigurera cron-jobb på servern eller om ditt webbhotell inte ger dig åtkomst kan du även använda en tredjepartslösning som EasyCron.