Webhotelli WordPress:lle

WordPress sivuston optimointia


Tällä sivulla käymme läpi millä tavalla sivusto on optimoitavissa eri näkökulmista. Uusia aihepiirejä lisätään aina silloin tällöin.

Lisäosat -sivulla on muutamia vaihtoehtoja mm. kuvien automaattiseen optimointiin.

 

Kommentoinnin estäminen


Tai salliminen vain rekisteröityneille käyttäjille

Suosittujen julkaisujärjestelmien ongelma on että niihin voi kohdistua turhaa kommentointia. Osa voi tulla ihan tavallisilta ihmisiltä, mutta yleensä varsinainen ongelma on hakkereiden bottien aiheuttama. Hakkerit osaavat kohdistaa kommentoinnin niin että se tapahtuu johonkin vähän vanhempaan ja parin klikkauksen takana olevaan artikkeliin, jolloin sivuston ylläpitäjä ei välttämättä edes tajua mitä taustalla tapahtuu. Kommentteja voi tulla lyhyessä ajassa tuhansittain. Vaikka kommentit eivät päätyisikään julkisiksi niin ne voivat hyväksymättöminäkin hidastaa sivuston toimintaa. Ylimääräinen liikenne vaikuttaa negatiivisesti myös sivuston kaistaan ja voi hidastaa myös palvelimen toimintaa.

Ensimmäiseksi kannattaa poistaa tietokantaan kertyneet roskaviestit. Se onnistuu helposti phpMyAdminin avulla seuraavalla kyselyllä:
DELETE FROM wp_comments WHERE comment_approved = 'spam';

Sen jälkeen voit poistaa kommentoinnin kokonaan käytöstä:
UPDATE wp_posts SET comment_status = 'closed';

Tai sallimalla kommentoinnin vain rekisteröityneille käyttäjille:
UPDATE wp_posts SET comment_status = 'registered_only';

Huomioithan että taulun etuliite voi vaihdella.
phpMyAdmin-hallintatyökalu löytyy yleensä webhotellin hallintapaneelista.

 

wp-login.php ongelma


Asenna kirjautumissivun piilottava lisäplugin

Kenties kiusallisin WordPressin ongelma on hallintasivustolle tapahtuvat bottien kirjautumisyritykset. Kirjautumisyrityksiä voi tulla kerrallaan sadoista tai jopa tuhansista eri IP-osoitteista, jolloin palvelimen normaalit palomuuri- tai muut tietoturvakomponentit eivät pysty niitä pysäyttämään. Toki ne on palvelintasollakin estettävissä, mutta palveluntarjoaja ei voi estää liikennettä kovinkaan köykäisin perustein, sillä joukossa voi olla sivuston ylläpitäjän harmiton kirjautumisyritys. IP-osoitteen poistaminen palvelimen mustalta listalta kävisi työlääksi.

Harmillisesti WordPressissä itsessään ei ole valmiina sellaista ominaisuutta, jolla asiaan voisi suoraan vaikuttaa. Siihen on olemassa kuitenkin asiansa hoitavia lisäplugineja, jotka saa käyttöön muutamalla klikkauksella. Kannattaa kokeilla ainakin Rename wp-login.php tai Limit Login Attempts lisäosaa.

Myös yleistietoturvaan sopivassa WordFence-lisäosassa on hyvä toiminto: "estä IP-osoite heti kun kirjautumista yritetään väärällä tunnuksella / Immediately lock out invalid usernames". Sitä parempi vaikutus mitä vähemmillä kirjautumisyrityksillä mennään. Jos ylläpitäjän oma osoite joutuu vahingossa estolistalle niin se on helposti kyllä palautettavissa toimintakuntoiseksi.

 
Kirjautumissivuun liittyvän ongelman voi hoitaa tilapäisesti myös niin että sijoitat sivuston .htaccess tiedostoon seuraavat rivit:

# protect wp-login.php
<Files wp-login.php>
Order Deny,Allow
Deny from all
Allow from xx.xx.xx.xx
</Files>

xx... = oma IP-osoitteesi. Tämä soveltuu kuitenkin vain mikäli päivitykset tehdään samasta IP-osoitteesta tai viitsii nähdä sen vaivan että muuttaa IP:n aina sallituksi ennen päivityksiä.

 
WordPressin kirjautumissivulle kohdistuvat salasanan arvausyritykset voivat näyttää kaistankäytössä tältä.
 

xmlrpc.php PingPack haavoittuvuus


XML RPC mahdollistaa sivuston kommunikoinnin muiden sivustojen kanssa. Valitettavasti tästä WordPressin komponentista on löytynyt kuitenkin aiemmin vakava tietoturva-aukko, jota hakkerit käyttävät hyväkseen hyökätessään toisille sivustoille. Haavoittuvuus on korjattu sittemmin, mutta sivustolle saattaa silti kohdistua turhaa liikennettä ko. haavoittuvuuden tiimoilta.

Joissakin WordPressin versioissa komponentin voi kytkeä hallintasivuston kautta pois päältä. Niissä versioissa joissa se ei ole mahdollista suosittelemme lisäämään sivuston .htaccess tiedostoon seuraavat rivit:
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>


 

robots.txt


Estä turha bottiliikenne

Monilla sivustoilla voi olla epätoivottavaa bottiliikennettä, joka syö sivuston liikennöintimäärää/kaistaa. Pahimmillaan epätoivottujen bottien aiheuttama kuorma on jopa 70-80 prosenttia koko sivuston liikenteestä. Näin voi käydä erityisesti silloin jos sivustolla on paljon linkkejä, vaikkapa jokin kalenteri- tai verkkokauppaliitännäinen sisältöineen. Botit seuraavat orjallisesti näitä linkkejä ja kaistan käyttö voi olla melkoinen. Se voi tarkoittaa turhaan myös painetta webhotellipaketin kasvattamiseen, mutta asiaan voi vaikuttaa halvemmallakin keinolla, nimittäin robots.txt tiedoston avulla. Tiedosto pitää sijoittaa julkiseen kotisivuhakemistoon, esim. public_html tai httpdocs.

Lähtökohtaisesti hakukoneilta ja boteilta kannattaa estää pääsy tiettyihin tiedostoihin ja hakemistoihin. Samalla niille kannattaa kuitenkin tarjota sivustokartta. Huomioitavaa on että nämä ovat eräänlaisia suosituksia eikä bottien ole niitä pakko noudattaa, yleensä ne ovat kuitenkin kuuliaisia ja noudattavat käskyjä.

Alla on esimerkki robots.txt tiedostosta.

User-Agent: *
Allow: /?display=wide
Allow: /wp-content/uploads/
Disallow: /wp-content/plugins/
Disallow: /readme.html
Disallow: /refer/
 
User-agent: Aboundexbot
Disallow: /

User-agent: AhrefsBot
disallow: /

User-agent: dotbot
Disallow: /

User-agent: MegaIndex.ru/2.0
Disallow: /

User-agent: MegaIndex.ru
Disallow: /

User-agent: megaIndex.ru
Disallow: /

User-agent: MJ12bot
Disallow: /

User-agent: MojeekBot
disallow: /

User-agent: Riddler
Disallow: /

User-agent: SemrushBot
Disallow: /

User-agent: spbot
Disallow: /

User-agent: wotbox
Disallow: /

Sitemap: http://www.domain.com/post-sitemap.xml
Sitemap: http://www.domain.com/page-sitemap.xml

 

WordPressin cron ajojen kuormituksen vähentäminen


Ajasta tehtävät oikein

WP-Cron ajetaan tavallisesti aina kun joku vierailee sivustolla. Se suorittaa taustalla tiettyjä ylläpidollisia tehtäviä, jotka kuuluvat WordPressin normaaliin toimintaan. Sivustoilla joilla vierailee päivittäin joitakin kymmeniä kävijöitä cronin ajon voi antaa tapahtua näin. Sivustoilla joilla on satoja ellei jopa tuhansia kävijöitä päivittäin, cronin ajosta voi tulla kuitenkin ongelma. Cronin toistuva ajo alkaa näkyä ylimääräisenä kuormituksena palvelimella ja yleensä tässä vaiheessa palveluntarjoaja ottaa viimeistään yhteyttä kuormituksen hillitsemiseksi. Tyypillisesti aika isollakin sivustolla riittää että cron ajetaan maksimissaan esim. kerran tunnissa. Monessa tapauksessa riittää paljon harvempikin väli.

Kannattaa myös tarkistaa mistä sivuston liikennöinti on peräisin. Monesti Cronien poikkeuksellinen ajo saattaa johtua jonkin botin vierailuista tai esim. ns. sanakirjahyökkäyksestä wp-login.php kirjautumissivulle. Tällöin botit on hyvä estää ja luoda kirjautumissivulle paremmat suojaukset; katso yllä olevat kappaleet.

Säädä cronin ajo seuraavasti:

1. Poista ensin WordPressin normaali jatkuva ajo, lisäämällä seuraava rivi wp-config.php tiedostoon:
define('DISABLE_WP_CRON', 'true');
Sopiva paikka on esim. rivin define('DB_COLLATE', ''); jälkeen.

2. Aseta cronin ajo Cpanelin kautta kohdasta Cron Jobs (Ajastetut tehtävät)
(Pleskissä kohdasta Scheduled Tasks)
Määritä valikosta ajoväliksi esim.:
- 1 tunti, jos sivustolla on satoja kävijöitä päivittäin
- kerran-pari vuorokaudessa, jos sivustolla on vain kymmeniä kävijöitä päivittäin
Anna komennoksi:
/usr/bin/wget -q -O - http://www.omadomain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
Huomioithan http tai https-alun, jos sivustosi on SSL-suojattu. Korvaa www.omadomain.com paikalle oman sivustosi osoite.

 

admin-ajax.php kuormitus admin-puolella


Disabloi Heartbeat API

Joskus admin-ajax.php voi aiheuttaa sivustolle kymmen- jopa satakertaisen kuormituksen normaaliin nähden. Normaalisti kun admin-puolella päivitetään artikkelia niin admin-ajax.php latautuu taustalla varsin huomaamattomasti, oletusarvoisesti 15 sekunnin välein. Tämä ei ole ongelma, jos viivyt artikkelin parissa vaikka puoli tuntia. Ongelma siitä tulee siinä vaiheessa kun sinulla on kenties useampia välilehtiä avoinna tai sivustoa muutoin päivittää useampi käyttäjä. Ja kun välilehdet jäävät epähuomiossa vaikka yön yli auki. Tällöin admin-ajax.php sivulatauksia voi olla helposti jopa 10 - 20 000 päivässä.

Ongelmaan on olemassa ratkaisuja.
a) Sulje välilehdet ja kirjaudu ulos admin-puolelta aina päivitysten jälkeen
b) Asenna sivustolle Heartbeat Control -lisäosa.

 
Disabloi Heartbeat kokonaan julkisella puolella (Frontend) ja hallinnan yleissivuilla (Dashboard).
 
Määritä artikkeleiden muokkaussivulle (Post Editor) korkeampi tallennusväli, vaikkapa 180 sekuntia; tämä vähentää sivulatauksia jo yli 10-kertaisesti.
 

Aiheet

 

» WordPress sivuston optimointia

 

» Kommentoinnin estäminen

Tai salliminen vain rekisteröityneille käyttäjille
 

» wp-login.php ongelma

Asenna kirjautumissivun piilottava lisäplugin
 

» xmlrpc.php PingPack haavoittuvuus

 

» robots.txt

Estä turha bottiliikenne
 

» WordPressin cron ajojen kuormituksen vähentäminen

Ajasta tehtävät oikein
 

» admin-ajax.php kuormitus admin-puolella

Disabloi Heartbeat API
Copyright © 2019 | Webbinen.net