WordPress are un mecanism propriu pentru sarcinile care trebuie făcute periodic — verificarea actualizărilor, curățenia din baza de date, verificarea stării site-ului. Se numește wp-cron.php și are o particularitate care încetinește site-ul: nu rulează programat, ci când cineva vizitează site-ul. Fiecare vizită verifică dacă WordPress are ceva de făcut.

Pe un site cu puțin trafic, sarcinile întârzie ore întregi — sau nu se fac deloc, pentru că nimeni nu a intrat pe site. Pe un site cu trafic mult, verificarea se face de mii de ori pe zi, degeaba. Soluția este simplă: dezactivați cronul WordPress și lăsați cronul serverului să ruleze sarcinile la ore fixe.

Ce este WP-CLI? WP-CLI (WordPress Command Line Interface) este un instrument oficial care îți permite să administrezi și să controlezi site-urile WordPress direct din linia de comandă (terminal), fără a mai folosi interfața grafică din browser. Pe serverele noastre este instalat, iar dumneavoastră îl puteți folosi din cPanel → Advanced → Terminal, fără să instalați nimic pe calculator.

Pasul 1. Dezactivați cronul WordPress

  1. În cPanel, deschideți WordPress Manager by Softaculous (secțiunea Software). Dacă în lista Installations nu apare niciun site, atunci WordPress nu este încă instalat — vedeți Cum instalez WordPress din cPanel (WordPress Manager).
  2. Apăsați pe rândul instalării, ca să se deschidă cardul site-ului.
  3. În dreapta, la subtitlul Configuration, coborâți până la WordPress Cron (wp-cron.php) și alegeți Disabled.

Setările din WordPress Manager: Auto Upgrade WordPress Core, Auto Upgrade WordPress Plugins, Auto Upgrade WordPress Themes, Search Engine Visibility, WordPress Cron (wp-cron.php) cu opțiunea Disabled și Debug Mode

Din acest moment WordPress nu mai verifică sarcinile la fiecare vizită. În schimb, WordPress Manager adaugă automat o sarcină în cronul cPanel, care rulează fișierul wp-cron.php — se vede mai jos, la pasul 4. Funcționează, dar recomandăm varianta cu WP-CLI, pentru că este mai bine suportată și nu mai pornește tot WordPressul de fiecare dată.

Pasul 2. Testați comanda înainte de a crea cronjob-ul in cPanel

Intrați în cPanel → Advanced → Terminal și scrieți comanda de mai jos, apoi Enter. Înlocuiți /home/utilizator/public_html/wp/ cu calea instalării dumneavoastră: numele contului, apoi folderul în care este WordPress (aici public_html/wp). Dacă nu sunteți sigur de folder, apăsați pe rândul instalării în WordPress Manager și uitați-vă la secțiunea Site Info:

/usr/bin/wp --path=/home/utilizator/public_html/wp/ cron event run --due-now

Comanda rulează toate sarcinile care erau programate să se execute până acum. Rezultatul arată așa:

Executed the cron event 'wp_update_themes' in 0.282s.
Executed the cron event 'wp_site_health_scheduled_check' in 3.921s.
Executed the cron event 'recovery_mode_clean_expired_keys' in 0.001s.
Executed the cron event 'wp_privacy_personal_data_cleanup_requests' in 0.001s.
Executed the cron event 'wp_privacy_delete_old_export_files' in 0.001s.
Executed the cron event 'wp_version_check' in 0.577s.
Executed the cron event 'wp_update_plugins' in 0s.
Executed the cron event 'wpseo_permalink_structure_check' in 0.001s.
Success: Executed a total of 8 cron events.

Dacă vreți doar să vedeți lista sarcinilor, fără să le rulați, folosiți:

/usr/bin/wp --path=/home/utilizator/public_html/wp/ cron event list

Pasul 3. Puneți comanda în cronul cPanel

Ca sarcina să ruleze singură, fără să scrieți comanda de fiecare dată, adăugați-o în cronul serverului:

  1. În câmpul de căutare din partea de sus a cPanel-ului scrieți Cron Jobs și apăsați pe rezultat (secțiunea Advanced).
  2. La Common Settings alegeți Twice Per Hour — adică la fiecare 30 de minute. Câmpurile Minute, Hour, Day, Month și Weekday se completează singure; nu trebuie să le modificați.
  3. La Command scrieți exact comanda de la pasul 2, cu calea instalării dumneavoastră.
  4. Apăsați Add New Cron Job.

Căsuța de căutare din cPanel cu „Cron Jobs” scris și rezultatul Cron Jobs, la secțiunea Advanced

Formularul Add New Cron Job din cPanel: Common Settings pe Twice Per Hour și comanda wp-cli scrisă la Command

La fiecare 30 de minute este suficient: sarcinile WordPress nu au nevoie să ruleze mai des, iar așa nu se adună mai multe deodată.

Pasul 4. Ștergeți sarcina PHP rămasă

Dacă ați dezactivat cronul din WordPress Manager, în lista Current Cron Jobs a rămas și sarcina adăugată automat de el, care rulează fișierul wp-cron.php direct prin PHP. Cu comanda WP-CLI de la pasul 3, aceasta nu mai este necesară: o ștergeți cu Delete, ca sarcinile să nu ruleze de două ori.

Lista Current Cron Jobs cu sarcina php -q "/home/utilizator/public_html/wp/wp-cron.php" și butoanele Edit și Delete

Atenție: ștergeți doar sarcina care rulează wp-cron.php. Dacă în listă apar și alte sarcini (puse de dumneavoastră sau de un modul), lăsați-le așa cum sunt.

Bine de știut

  • Folosiți o singură variantă. Ori comanda WP-CLI în cron (recomandat), ori sarcina PHP lăsată de WordPress Manager. Dacă le lăsați pe amândouă, sarcina este verificată de două ori — serverul muncește degeaba.
  • Verificați după o zi. Reveniți în Terminal și rulați din nou comanda de la pasul 2: dacă răspunde Success: Executed a total of 0 cron events, înseamnă că sarcinile rulează la timp și nu mai aveați nimic restant — exact ce vrem.
  • Înainte de schimbări, faceți o copie de siguranță a site-ului — vedeți Cum fac backup la un site WordPress si cum il restaurez (WordPress Manager).
  • Cronul este doar una dintre părțile optimizării. Cele care contează cel mai mult sunt tema, numărul de module și cache-ul — vedeți Cum fac un site WordPress mai rapid (tema, module, cache). După fiecare schimbare, măsurați din nou și urmăriți numerele: Cum citesc raportul PageSpeed Insights si ce merita schimbat.
  • WP-CLI poate face mult mai mult decât atât: liste de module, actualizări, căutări în baza de date. Aici am folosit doar partea de sarcini programate.

Dacă nu sunteți sigur de calea instalării sau preferați să ne ocupăm noi de această optimizare, deschideți un tichet și ne uităm împreună pe site-ul dumneavoastră.

  • wordpress, optimizare, wp-cron, cron, wp-cli, terminal, cpanel
  • 0 utilizatori au considerat informația utilă
Răspunsul a fost util?

Articole similare

Cum fac un site WordPress mai rapid (tema, module, cache)

Viteza site-ului se simte în două locuri: la vizitatori, care pleacă dacă pagina se încarcă greu,...

Cum citesc raportul PageSpeed Insights si ce merita schimbat

În articolul despre viteza site-ului vă spuneam să măsurați cu PageSpeed Insights. Aici explicăm...

Cum fac site-ul sa fie gasit in Google

În articolele despre viteză am explicat cum se măsoară un site și ce merită schimbat. Acesta...