Kako da ručno očistite i optimizujete WordPress bazu
Posle nekoliko godina korišćenja, baza vašeg WordPress sajta može postati pretrpana nepotrebnim sadržajem koji u određenoj meri može uticati i na brzinu vašeg sajta. Kod većih sajtova i baza ovo je još izraženije, pa smanjenje i optimizacija baze može značajno ubrzati rad sajta. Zato ćemo vam u ovom tekstu objasniti kako da ručno očistite i optimizujete WordPress bazu i to bez korišćenja bilo kakvih plugin-a, samo korišćenjem SQL query-a.
Napomena: Pre nego što nastavimo važno je da napomenemo da pre nego što primenite bilo šta od navedenog u ovom tekstu OBAVEZNO uradite bekap cele baze ili sajta. Takođe, imajte u vidu da prefiks tabele koji ćemo mi koristiti u našim primerima (wp_) zamenite prefiksom koji odgovara vašoj bazi.
Pokretanje SQL query-a na vašem WordPress veb-sajtu možete uraditi na sledeće načine:
– korišćenjem SSH-a: Jednostavno se ulogujte na server i pokrenite query direktno u vašoj MySQL bazi.
– korišćenjem PHPMyAdmin-a: Ovo možete da uradite preko vašeg cPanel-a odnosno vaše PHPMyAdmin aplikacije u cPanel-u.
Čišćenje WordPress baze od nepotrebnih karaktera
Problemi koji dolaze od problema sa enkodiranjem teksta (karakteri kao npr. â,€,œ i sl.) mogu da predstavljaju problem i nepotrebno opterete vašu bazu. Umesto da ručno korigujete sve postove, možete pokrenuti sledeći query kako biste očistili bazu (i postove) od nepotrebnih karaktera.
UPDATE wp_posts SET post_content = REPLACE(post_content, '“', '“');
UPDATE wp_posts SET post_content = REPLACE(post_content, 'â€', '”');
UPDATE wp_posts SET post_content = REPLACE(post_content, '’', '’');
UPDATE wp_posts SET post_content = REPLACE(post_content, '‘', '‘');
UPDATE wp_posts SET post_content = REPLACE(post_content, '—', '–');
UPDATE wp_posts SET post_content = REPLACE(post_content, '–', '—');
UPDATE wp_posts SET post_content = REPLACE(post_content, '•', '-');
UPDATE wp_posts SET post_content = REPLACE(post_content, '…', '…');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '“', '“');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, 'â€', '”');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '’', '’');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '‘', '‘');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '—', '–');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '–', '—');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '•', '-');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '…', '…');
Zatvorite Trackbacks na svim postovima
Već znamo da je korišćenje trackbacks-ova i ping-ova danas veoma retko, jer većina korisnika nema razlog da ih koristi. Možete da ih zatvorite ručno jedan po jedan, ali to bi oduzelo previše vremena. Zato možete da iskoristite SQL query i na taj način očistite bazu od njih:
UPDATE wp_posts SET ping_status = 'closed'
;
Obrišite sve spam komentare
Spam poruke u nekim slučajevima mogu bukvalno da zatrpaju vaš sajt i vašu bazu. Ukoliko ste omogućili posetiocima vašeg sajta da mogu da ostavljaju komentare ili popunjavaju online forme, gotovo je sigurno da ćete svakodnevno dobijati spam poruke. Vremenom je WordPress unapredio način na koji upravlja spam porukama, tako što svaka poruka koja je prepoznata kao spam ne bude automatski prikazana, nego čeka u redu odobrenje administratora da bude prikazana.
Ovaj red vremenom može ozbiljno da se uveća, pa je poželjno da ga obrišete tako što ćete pokrenuti sledeći SQL query:
DELETE FROM wp_comments WHERE comment_approved = 'spam';
Oslobodite se svih nekorišćenih shortcode-ova
Kao što znate shortcode-ovi su veoma korisni, ali u nekim situacijama je neophodno da ih uklonite. Na primer, migrirali ste vaš sajt na novu temu, a vaši shortcode-ovi nisu više upotrebljivi i vidljivi su na sajtu u formi plain text-a. U tom slučaju morate da ih uklonite iz WordPress baze, pa za to možete korisiti sledeći SQL query (samo navedite koje shortcode-ove želite da uklonite – u našem primeru je to [shortcode]:
UPDATE wp_post SET post_content = replace(post_content, '[shortcode]', '' ) ;
Obrišite sve nekorišćene tagove
Na samom početku WordPress-a tagovi su bili vrlo popularni kod blogera. Danas to više nije slučaj i sve manji broj vlasnika sajtova ih koristi. Ukoliko ste i vi među njima, naš predlog je da zaostale tagove jednostavno obrišete:
DELETE FROM wp_terms WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE count = 0 );
DELETE FROM wp_term_taxonomy WHERE term_id not IN (SELECT term_id FROM wp_terms);
DELETE FROM wp_term_relationships WHERE term_taxonomy_id not IN (SELECT term_taxonomy_id FROM wp_term_taxonomy);
Uklonite transiente
Ukoliko već niste upoznati sa pojmom transient, u principu radi se o svojstvu kreširanja sadržaja. Iako su veoma korisni, transienti vremenom mogu da zauzmu dosta prostora u vašoj bazi ukoliko ih redovno ne čistite. Iz tog razloga mogu da smanje performanse vašeg veb-sajta.
Da biste pokrenuli čišćenje baze od transienata pokrenite sledeći SQL query:
DELETE FROM `wp_options` WHERE `option_name` LIKE ('%\_transient\_%');
Obrišite sve revizije i njihove metapodatke
Poznato je da su revizije veoma korisne i da u mnogome olakšavaju ažuriranje i izmene na sajtu. Ipak, vremenom i one postaju velike i počnu da zauzimaju dosta prostora u bazi. Po potrebi možete i isključiti opciju snimanja revizija. Da biste obrisali sve revizije i njima pridružene metapodatke, koristite sledeći SQL query:
DELETE a,b,c FROM wp_posts a WHERE a.post_type = 'revision' LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id) LEFT JOIN wp_postmeta c ON (a.ID = c.post_id);
Obrišite veoma stare postove
Ukoliko redovno postujete na vašem sajtu, vremenom će baza postova postati prilično velika. Iz više razloga nema potrebe da vaš sajt i bazu opterećujete postovima koji više nisu relevantni. Ukoliko ih ne ažurirate, razmislite o opciji da ih obrišete.Možete uraditi bulk brisanje uz pomoć sledećeg SQL query-a (u našem slučaju briše postove starije od 600 dana, ali vi umesto toga možete staviti neku drugu vrednost / broj dana):
DELETE FROM `wp_posts`
WHERE `post_type` = 'post'
AND DATEDIFF(NOW(), `post_date`) > 600
Uklonite comment agent
Podrazumevano kada neko ostavi odgovor / komentar na vašem blogu, WordPress sačuva taj user agent u bazi. Za većinu sajtova ovo nema nekog značaja, pa ih slobodno možete obrisati. U slučaju da imate dosta takvih odgovora / komentara, njihovo brisanje može značajno smanjiti vašu bazu. Ovaj SQL query će zapravo zameniti user agent-a sa praznim stringom:
update wp_comments set comment_agent ='' ;
Prateći sve navedene primere optimizovaćete i smanjićete vašu WordPress bazu i ubrzati rad vašeg sajta bez korišćenja plugin-a.
Ono što je važno da na samom kraju dodamo, jeste da medijski sadržaj (fotografije, slike i video materijali) mogu da umnogome utiču na veličinu vaše WordPress baze. Zato se potrudite da on uvek bude optimizovan i smanjen na najmanju moguću meru, poštujući pritom i odnos između kvaliteta i kvantiteta tog sadržaja.
Nenad Mihajlović