Velocizzare WordPress. Come velocizzare WordPress
- Traduzione
La velocità e la tolleranza agli errori sono uno dei fattori che influenzano invariabilmente la popolarità della tua risorsa, perché anche con i migliori contenuti al mondo, un sito lento irriterà i lettori e prima o poi li perderai. In questo articolo ottimizzeremo il motore di blogging più popolare: Wordpress, in esecuzione su PHP. Allo stesso tempo, diamo un’occhiata ad alcuni punti generali sull’ottimizzazione del sito web.
1 Testare la velocità attuale
Per scoprire se è cambiato qualcosa dopo la nostra ottimizzazione, non sarebbe male misurare prima la velocità di caricamento attuale delle pagine del tuo blog, in modo da avere qualcosa con cui confrontarti. Esistono diversi strumenti che ti aiuteranno a farlo:Non dimenticare di aggiornare all'ultima versione di PHP e Apache.
3.1 Disabilitare i servizi non utilizzati
Puoi ottenere più RAM disponibile disabilitando i servizi inutilizzati e ottimizzando MySQL e Apache.- Rimuovere ClamD;
- Configura SpamD per utilizzare solo 1 processo figlio;
- Disinstalla Mailman, a meno che, ovviamente, non intendi eseguire un servizio di posta elettronica.
3.2 Cache delle query MYSQL
Poiché la stabilità e la velocità di Wordpress dipendono in larga misura dal funzionamento del database, dovresti assicurarti che le impostazioni siano presenti mio.cnf corrispondono alle capacità del server. Prima di tutto, dovresti configurare le impostazioni di memorizzazione nella cache delle richieste aggiungendo mio.cnf le seguenti righe:query_cache_type = 1
query_cache_limit = 2M
dimensione_cache_query = 20 milioni
Affinché le impostazioni abbiano effetto, dovrai riavviare il servizio MySQL.
3.3 Cache del compilatore: XCache o Eaccelerator?
La cache del compilatore aumenta le prestazioni degli script compilati sul server memorizzandoli nella cache: ciò contribuirà a ridurre il tempo di esecuzione degli script PHP. Vale la pena provare entrambe le soluzioni, ma secondo i risultati sperimentali l'aumento di prestazioni utilizzando Xcache è superiore del 5% rispetto a Eaccelerator.3.4 Aumentare il numero massimo di connessioni su Apache
Aumento del numero massimo di connessioni in httpd.conf aumenterà la produttività, perché il server sarà in grado di gestire più connessioni alla volta. Tuttavia, dovresti modificare questa impostazione con attenzione per non esaurire l'intera quantità di RAM e rallentare il server, quindi prova sempre le nuove impostazioni prima di metterle in funzione. Stabiliamo, ad esempio, 150 connessioni:connessioni_max = 150
Non dimenticare di riavviare il servizio Apache per applicare le impostazioni.
4 Ottimizzazione del codice e della grafica
Quindi, il server è attivo e funzionante e ora è il momento di giocare con il codice Wordpress.4.1 Disabilitare i collegamenti rapidi
Ogni volta che utilizzi il tuo server per archiviare immagini, utilizzi molte più risorse. Molto spesso, le persone prendono in prestito le tue immagini collegandole sui loro server. Ciò non solo occupa il canale, ma crea anche un certo carico sul server.Aggiungi il seguente codice a .htaccess file, sostituzione esempio.com al tuo nome di dominio per disabilitare l'uso degli hotlink:
< IfModule mod_rewrite .c >
RewriteEngine acceso
RiscriviCond %(HTTP_REFERER) !^$
RiscriviCond %(HTTP_REFERER) !^http://(www\.)?esempio\.com/.*$
RewriteRule .*\.(gif|jpg|png|ico)$ -
ifModule >
4.2 Utilizzare l'hosting esterno per archiviare le immagini
L'hosting di immagini su server esterni aiuterà a ridurre significativamente il carico sul server. Nell'esempio seguente, puoi notare una diminuzione della quantità di RAM utilizzata su uno dei blog dopo aver spostato le immagini su Amazon S3.4.3 Comprimere il codice script Java
Comprimere JavaScript è un compito abbastanza semplice. Poiché viene eseguito ad ogni visualizzazione di pagina, puoi ridurre la dimensione del Javascript rimuovendo tutto lo spazio bianco. Ecco un semplice strumento che può farlo per te: JavaScript Compressor.4.4 Javascript nella parte superiore della pagina
Accade spesso che il sito inizi a caricarsi lentamente o si fermi del tutto, perché... un'altra risorsa da cui viene richiamato javascript (ad esempio Digg badge, Tweetmeme, ecc.) non è disponibile o è offline. Per evitare ciò, posiziona tutto il codice javascript alla fine della pagina e ciò che non è stato possibile includere per qualche motivo, prova a racchiuderlo in un iFrame.4.5 Utilizza la cache del browser
La cache del browser in sé, ovviamente, non renderà il tuo blog più veloce, ma aiuterà a ridurre il carico sul server memorizzando nella cache gli oggetti caricati di frequente (stili, elementi dell'interfaccia, ecc.).Prova a incollare il seguente codice in .htaccess file:
Dimensione FileETag MTime
< ifmodule mod_expires .c >
< filesmatch "\.(jpg|gif|png|css|js)$" >
ScadeAttiva il
ExpiresDefault "accesso più 1 anno"
filesmatch >
ifmodule >
4.6 Comprimere i dati statici
È possibile ridurre la dimensione del caricamento della pagina consentendo al browser di ricevere e trasmettere dati in formato compresso. Ciò ridurrà anche il carico del canale e la quantità di dati scaricati.Il seguente codice in .htaccess può aiutarti con questo:
AddOutputFilterByType DEFLATE testo/testo html/testo semplice/applicazione xml/applicazione xml/xhtml+testo xml/testo javascript/applicazione css/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0 no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html
4.7 Utilizzare CDN per file statici
Se memorizzi tutte le immagini sullo stesso dominio, il browser attenderà che vengano caricate una dopo l'altra. Diciamo che ne hai 12 sulla pagina, se li dividi in tre sottodomini, verranno caricati contemporaneamente da tre fonti “diverse” invece di essere caricati dal browser uno per uno.Puoi provare a spostare tutti i file CSS e Javascript in files.tuosito.com e immagini e file temporanei su statico.tuosito.com. Oppure utilizza semplicemente CDN (Content Delivery Network), una vasta rete di server situati in tutto il mondo, che ti consentirà non solo di archiviare i tuoi file su diversi sottodomini, il che significa scaricarli in parallelo, ma anche di fornire dati all'utente da il server più vicino a lui. Tutto ciò ti consentirà di caricare i dati molto più velocemente.
5 WordPress
In questa parte dell'articolo esamineremo le tecniche di miglioramento delle prestazioni che possono essere applicate direttamente a Wordpress.5.1 Aggiornamento all'ultima versione
L'aggiornamento alle versioni più recenti non solo risolve le vulnerabilità rilevate, ma migliora anche le prestazioni. Ad esempio, in WordPress 2.8 il lavoro con il database è stato notevolmente ottimizzato.5.2 Disabilitare le revisioni post
In tutte le versioni di WordPress, a partire dalla 2.6, le revisioni dei tuoi articoli venivano salvate automaticamente ogni volta che li modificavi. Ciò rallenta il database e ne aumenta inutilmente le dimensioni.Per disabilitare le revisioni dei post, aggiungi la seguente riga a wp-config.php :
define("WP_POST_REVISIONS", false);
Per eliminare le revisioni di testo salvate in precedenza, esegui la seguente query in PHPmyadmin:
ELIMINA a,b,c
DA wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
SINISTRA JOIN wp_postmeta c ON (a.ID = c.post_id)
DOVE a.post_type = "revisione"
5.3 Ridurre il numero di richieste
Rimuovi le richieste non necessarie per accelerare la generazione della pagina. Ad esempio, quello che segue è un codice tipico che si trova in tutti i temi WordPress:< meta http-equiv ="Content-Type" content ="< ?php bloginfo ("html_type" ); ?>; set di caratteri= php bloginfo ("charset" ); ?> " />
Possiamo facilmente riscriverlo in:
< meta http-equiv ="Content-Type" content ="text/html; charset=UTF-8" />
Già due richieste in meno. Abbastanza semplice, non è vero?
6 plugin WordPress
E infine, porto alla tua attenzione diversi plugin che possono migliorare le prestazioni di WordPress. Una volta completato tutto quanto sopra descritto, questi plugin ti aiuteranno a ottenere prestazioni ancora migliori.Wordpress nell'installazione standard è piuttosto lento. Per impostazione predefinita, il motore non utilizza alcune funzionalità del Web moderno per accelerare significativamente le sue prestazioni. Esistono un sacco di plugin per l'ottimizzazione di Wordpress. Mettiamoli in ordine ed eseguiamo un'ottimizzazione importante.
Prima di iniziare, vediamo cosa mostra una semplice installazione di WordPress tramite Pagespeed:
Un punteggio di 76 su 100 è piuttosto basso. Vediamo quanto possiamo aumentare questa cifra.
Parte server
Nginx
Se non usi ancora Nginx, è ora di passarci. Una soluzione semplice e potente. Configurazione per lavorare con il supporto dei permalink e la memorizzazione nella cache statica:Server ( nome_server wp.com; root /var/www/wp; # percorso dell'indice WP indice.php; posizione ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf |rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ ( access_log off; log_not_found off; scadenza max; # memorizzazione nella cache statica ) posizione / ( try_files $uri $uri/ /index.php?$args; # permalinks ) posizione ~ \.php$ ( fastcgi_pass unix:/var/run/php5-fpm.sock ; fastcgi_index indice.php; include fastcgi_params;
Cache PHP
A meno che tu non abbia qualche motivo speciale per cui non puoi installare APC, assicurati di abilitarlo. Controlliamo la presenza di APC (in risposta riceveremo un elenco di impostazioni APC):Php -i | grepapc
Le versioni di PHP successive alla 5.5 hanno un modulo opCache integrato, quindi non è necessario installare APC.
Ottimizzazione MySQL
Wordpress utilizza InnoDB, il che significa che possiamo aumentare significativamente le prestazioni di MySQL adattando una serie di parametri (file my.cnf) al nostro hardware:È meglio impostare la dimensione del buffer InnoDB sulla metà della RAM disponibile:
Innodb_buffer_pool_size = 256M
Non dimenticare di abilitare la memorizzazione nella cache MySQL:
Dimensione_cache_query = 32 milioni limite_cache_query = 1 milione
Configurazione MySQL più avanzata per Wordpress.
Memorizzazione nella cache
Questo è il punto più importante. La memorizzazione nella cache può velocizzare notevolmente un sito Web e risparmiare risorse del server. Per chiarezza useremo ab di Apache. Controlliamo l'installazione standard di Wordpress senza memorizzazione nella cache. Inviamo le richieste attraverso la rete locale, quindi nient'altro che Wordpress stesso crea un ritardo:Ab -c 10 -n 500 http://wordpress/
Otteniamo un tempo medio per richiesta di circa 50ms:
Totale trasferito: 4183000 byte HTML trasferito: 4074500 byte Richieste al secondo: 17,62 [#/sec] (media) Tempo per richiesta: 567,421 (media) Tempo per richiesta: 56,742 (media, tra tutte le richieste simultanee) Velocità di trasferimento: 143,98 ricevute
Chrome mostra un'attesa media di risposta di 150 ms (server situato nei Paesi Bassi):
WP Super Cache
Questo plugin ti consente di abilitare la memorizzazione nella cache letteralmente in un'unica azione. Oltre alle impostazioni standard, contiene un gran numero di parametri per l'ottimizzazione della cache. Scarica il plugin, attivalo nel pannello di controllo e abilita la cache:Con WP Super Cache abilitato, riduciamo il tempo medio per richiesta di 25 volte (!):
Totale trasferito: 4293500 byte HTML trasferito: 4146500 byte Richieste al secondo: 499,01 [#/sec] (media) Tempo per richiesta: 20,040 (media) Tempo per richiesta: 2,004 (media, tra tutte le richieste simultanee) Velocità di trasferimento: 4184,61 ricevuti
L'attesa media per una risposta in Chrome è diminuita di 3 volte:
Come alternativa lato server a WP Super Cache, puoi utilizzare Varnish. Ti consente di ridurre i tempi di elaborazione di una richiesta di quasi un ordine di grandezza, ma la soluzione stessa è meno flessibile (adatta per blog senza elementi dinamici).
Stili, script e immagini
Minimizzazione e compressione
Minimizzando CSS/JS puoi risparmiare il 10...15% della loro dimensione. Per abilitare la minimizzazione statica c'è un modulo WP Minify. Scarica, attiva e il modulo inizierà a funzionare. Gzip ridurrà più volte la dimensione dei file di testo. In Nginx"e è abilitato in questo modo:Server ( ... gzip on; gzip_disable "msie6"; gzip_types testo/testo semplice/applicazione css/applicazione json/testo x-javascript/applicazione xml/applicazione xml/testo xml+rss/applicazione javascript/javascript; ... )
Ottimizzazione dell'immagine
Le immagini possono costituire una porzione molto ampia della dimensione complessiva della pagina. La compressione delle immagini senza perdita di dati può far risparmiare il 30...40% delle loro dimensioni. Il modulo EWWW Image Optimizer può farlo. Perché funzioni dovrai installare imagemagick e la libreria gd:Apt-get installa imagemagick php5-gd
Buone pratiche ed esperienza
- È meglio scegliere VPS per l'hosting Wordpress. Sull'hosting condiviso, gran parte di ciò che è descritto sopra non può essere fatto. Inoltre, il VPS ora è abbastanza economico.
- Testa i temi con Pagespeed prima dell'uso
- Svuota il cestino
- Elimina le revisioni dei vecchi post
- Elimina i commenti spam
- Disattiva i trackback quando le cose diventano davvero lente
- Condividi RSS tramite feedburner
Di conseguenza
Siamo stati in grado di velocizzare un'installazione semplice di Wordpress di quasi 100 volte nel tempo di generazione della pagina (abbiamo abilitato Varnish) e aumentare il punteggio Pagespeed da 76 a 93:Presento le istruzioni più complete con i modi per velocizzare un sito Web su WordPress. Utilizzando i metodi descritti di seguito, ho accelerato il tempo di caricamento del mio sito da 24,40 secondi a 1,41 secondi. Velocità di download aumentata di 17,3 volte! Buon risultato. Per scoprire come, leggi l’articolo completo.
Ho misurato la velocità del sito utilizzando il servizio Pingdom Speed Test. Testato la pagina principale del sito. Vedi di seguito gli indicatori del sito “prima” e “dopo” i miglioramenti e le istruzioni brevi e complete per velocizzare il sito.
Indicatori della velocità di caricamento del sito web
Screenshot della misurazione della velocità PRIMA dell'ottimizzazione blog:
Screenshot della misurazione della velocità dopo l'ottimizzazione e le raccomandazioni riportate di seguito.
.
Un breve riassunto su come velocizzare un sito WordPress
L'influenza principale sulla velocità è stata data da fattori quali la modifica dell'hosting utilizzando unità SSD, l'ottimizzazione delle immagini, l'attivazione del plug-in di memorizzazione nella cache W3 Total Cache, l'ottimizzazione del database del sito, l'eliminazione di vecchie revisioni, l'attivazione della compressione dei file sul lato server, l'attivazione di una cache per file statici sul lato browser. Quella che segue è un'istruzione dettagliata completa su come velocizzare un sito Web su WordPress.
Istruzioni complete su come velocizzare un sito WordPress
1. Hosting SSD di alta qualità, ping veloce
L'hosting deve essere su unità SSD. È consigliabile che i server di hosting siano ubicati nell'area geografica a cui è rivolto il sito. Se l'hosting è su un SSD, ma negli Stati Uniti, e il tuo blog è focalizzato sulla Russia e sui paesi della CSI, un tale SSD sarà di scarsa utilità. Poiché ci sarà un lungo ping per comunicare con il server. Pertanto, anche l’ubicazione del data center di hosting è importante. Questo è un parametro di hosting importante: ping veloce, risposta del server. E in modo che l'hoster non venda troppo i servizi. Per quanto riguarda il tipo di hosting, ovviamente è meglio prendere un VDS (server virtuale dedicato) con i parametri necessari per il tuo sito, invece del normale hosting condiviso. Quale configurazione VDS scegliere dipende dal carico che il tuo sito web crea non sul server e dalla dimensione del suo pubblico giornaliero. Consiglierei di prendere almeno 1 Gb di Ram, 1 core del processore e SSD da 10 GB. All'inizio avevo VDS su normali unità HDD, poi l'ho cambiato con l'hosting VDS SSD.
Ospitare "Prima":
Vietando l'indicizzazione del sito in questo modo, è possibile ridurre il carico sull'hosting, e quindi velocizzare il caricamento del sito, liberando risorse del server.
5. Configurazione del file .htaccess per ridurre il carico sul server.
Nel file .htaccess vengono specificati comandi aggiuntivi per l'hosting. Utilizzando impostazioni speciali, è possibile rimuovere il carico non necessario sul server e velocizzare il sito.
Impostazione n. 1. Spesso le informazioni vengono copiate dai siti Web insieme alle immagini senza modificare gli indirizzi delle immagini. E quando ciò accade, le immagini che si trovano sul nostro hosting vengono caricate su altri siti e questo crea un carico inutile sull'hosting.
Il seguente codice può impedire il caricamento delle immagini sul nostro sito su siti di terze parti:
RewriteEngine attivo RewriteCond %(HTTP_REFERER) !^http://(.+.)?yandex.ru/.*$ RewriteCond %(HTTP_REFERER) !^http://(.+.)?undsoft.com/.*$ RewriteCond %(HTTP_REFERER) !^http://(.+.)?yandex.net/.*$ RewriteCond %(HTTP_REFERER) !^http://(.+.)?feedburner.com/.*$ RewriteCond % (HTTP_REFERER) !^http://(.+.)?mail.ru/.*$ RewriteCond %(HTTP_REFERER) !^http://(.+.)?poisk.ru/.*$ RewriteCond %(HTTP_REFERER ) !^http://(.+.)?tuodominio.ru/.*$ RewriteCond %(HTTP_REFERER) !^$ RewriteRule .*.(jpe?g|gif|bmp|png)$ - [F]
Dopo aver aggiunto questo codice, verrà visualizzato un errore sul sito di qualcun altro invece della tua immagine.
Impostazione n. 2. Nel file .htaccess, puoi e dovresti specificare la memorizzazione nella cache di alcuni oggetti del sito (immagini, file css e js) in modo che il browser li memorizzi nella cache dal suo lato e non li scarichi ogni volta. Per fare ciò, aggiungi il seguente codice a .htaccess sotto il primo codice:
Dimensione FileETag MTime
Impostazione n. 3. Abilitiamo la compressione gzip delle pagine prima di inviarle all'utente. Inseriamo il seguente codice nel file .htaccess:
Impostazione n. 4. Limita lo spam nei commenti. La maggior parte dei commenti spam vengono inviati automaticamente. Con questo codice vieteremo l'invio diretto di commenti bypassando il modulo dei commenti. Ora i bot spam non potranno inviare commenti.
RewriteEngine On RewriteCond %(REQUEST_METHOD) POST RewriteCond %(REQUEST_URI) .wp-comments-post.php* RewriteCond %(HTTP_REFERER) !.*tuodominio.ru.* RewriteCond %(HTTP_USER_AGENT) ^$ RewriteRule (.*) ^http: //%(REMOTE_ADDR)/$
Impostazione n. 5. Se utilizzi il sistema FeedBurner, ovviamente hai installato dei plugin che inviano contenuti RSS al sito FeedBurner. Oggi puoi rimuoverli, perché puoi reindirizzare i contenuti senza plugin, riducendo il carico sul tuo hosting.
RewriteEngine su RewriteCond %(HTTP_USER_AGENT) !FeedBurner RewriteCond %(HTTP_USER_AGENT) !FeedValidator RewriteRule ^feed/?([_0-9a-z-]+)?/?$ http://yourdomain.ru
ATTENZIONE!!! Negli esempi sopra, non dimenticare di sostituire l'indirizzo tuodominio.ru con l'indirizzo del tuo sito web.
6. Ottimizzazione del database
Il database è importante per la velocità del sito. Quando si salvano i post più volte, WordPress crea delle revisioni dei post: gli stati dei post in diversi punti della loro modifica. Di conseguenza, nel tempo, il database contiene un gran numero di revisioni dei post non necessarie e queste devono essere pulite e ottimizzate. Puoi farlo usando Ottimizza il plug-in DB. Puoi installarlo dall'area di amministrazione di WordPress. Ad esempio, quando l'ho lanciato sul mio sito web, ho eliminato più di 1.200 revisioni dei post. Ciò ha migliorato significativamente la velocità del database.
7. Ottimizzazione del codice del modello (tema).
L'ottimizzazione del codice del tema comporta la rimozione di query non necessarie e/o la loro sostituzione con valori specifici, come il titolo del blog.
Impostazione n. 1. Trova il codice responsabile degli stili nel file header.php:
" type="testo/css" media="schermo" />
Sostituito da:
Attenzione!!! Non dimenticare di cambiare yoursite.ru con il link del tuo sito.
Impostazione n. 2. Modifica il codice PIN:
" />
Impostazione n. 3. Modifica del codice del feed RSS:
Feed RSS" href="" />
Sostituisci correttamente yoursite.ru con il tuo link:
Impostazione n. 4. Molto spesso, nel footer del sito (footer.php), gli sviluppatori di temi lasciano query completamente inutili al database. Per esempio:
Questo codice mostra semplicemente il nome del sito, per non dover accedere nuovamente al database, è più saggio scrivere tu stesso il nome una volta e non caricare il sito. Puoi cercare lo stesso codice in altre sezioni del sito, ma pensaci prima di eliminarlo.
1) Se il tuo sito non utilizza commenti, non dovresti nasconderli utilizzando plugin, questo crea un peso del tutto inutile. Poiché non hai affatto bisogno di commenti, rimuovi semplicemente il seguente codice dal file del tema (single.php):
2) Cerca di non utilizzare script esterni, come commenti di VKontakte, vari widget di social network. Sì, sembra bello e impressionante, ma crea un carico decente sul sito. Dagli esempi posso dire che il mio sito ha caricato in modo significativo il codice del visualizzatore web di YandexMetrica, il widget Add.This. Ho cambiato i pulsanti dei social media con un plug-in JS dell'hotel.
3) Pulisci tutto il codice del tuo sito dai commenti, questi commenti vengono inseriti tramite tage /*codice/. Lascia solo ciò di cui hai bisogno, poiché il sito deve dedicare uno sforzo extra a caricarli...
4) Prova a posizionare tutti gli script alla fine della pagina prima del tag di chiusura