Optimizar WordPress


octubre 20, 2017 Facebook Twitter LinkedIn Google+ Blog,Tutoriales


Optimizar WordPress

Optimizar WordPress

Saludos cordiales. Manda narices la poca vergüenza que tienen algunas personas. Lo digo porque hay gente por ahí, que cobra cantidades de dinero nada despreciables por realizar la función de Optimizar WordPress, las cual puede hacer usted mismo sin problemas. En está ocasión desde servianuncios.com queremos hablar de la optimización del archiconocido gestor de contenido WordPress, más concretamente si en la instalación esta activado el plugin WooCommerce.

Lo que voy a explicar hoy son los pasos y los plugin que desde servianuncios.com recomendamos para optimizar en gran media nuestro sitio:

  • No se fie, si le dicen que pueden conseguir que su sitio cargue en un tiempo determinado en cualquiera de las múltiples herramientas que miden la velocidad de carga de los sitios web, ya que esas herramientas aunque dan amplia información de los errores presentes en su sitio web, no sirven absolutamente de nada, por la sencilla razón de que Google solo valora los resultados ofrecidos por su herramienta.
  • Uno de los problemas principales en la optimización de los WordPress con la aplicación para instalar tiendas On Line  conocida como WooCommerce, consiste en que es una aplicación que pesa bastante y por lo tanto debe de ser optimizada.   No se preocupe, es sumamente sencillo optimizarla, lo único que debe de hacer es añadir el siguiente código en el fichero functions.php. Por favor añádalo después de ADD YOUR CUSTOM CODE BELOW THIS LINE

========================================================================== */

/**
* Optimiza los scripts de WooCommerce
* Quita la tag Generator de WooCommerce, estilos y scripts de páginas no WooCommerce.
*/
add_action( ‘wp_enqueue_scripts’, ‘child_manage_woocommerce_styles’, 99 );
function child_manage_woocommerce_styles() {
//quitamos la tag generator meta
remove_action( ‘wp_head’, array( $GLOBALS[‘woocommerce’], ‘generator’ ) );
//Primero comprobamos si está instalado WooCommerce para evitar errores fatales
if ( function_exists( ‘is_woocommerce’ ) ) {
//y aplicamos el dequeue a scripts y estilos
if ( ! is_woocommerce() && ! is_cart() && ! is_checkout() ) {
wp_dequeue_style( ‘woocommerce_frontend_styles’ );
wp_dequeue_style( ‘woocommerce_fancybox_styles’ );
wp_dequeue_style( ‘woocommerce_chosen_styles’ );
wp_dequeue_style( ‘woocommerce_prettyPhoto_css’ );
wp_dequeue_script( ‘wc_price_slider’ );
wp_dequeue_script( ‘wc-single-product’ );
wp_dequeue_script( ‘wc-add-to-cart’ );
wp_dequeue_script( ‘wc-cart-fragments’ );
wp_dequeue_script( ‘wc-checkout’ );
wp_dequeue_script( ‘wc-add-to-cart-variation’ );
wp_dequeue_script( ‘wc-single-product’ );
wp_dequeue_script( ‘wc-cart’ );
wp_dequeue_script( ‘wc-chosen’ );
wp_dequeue_script( ‘woocommerce’ );
wp_dequeue_script( ‘prettyPhoto’ );
wp_dequeue_script( ‘prettyPhoto-init’ );
wp_dequeue_script( ‘jquery-blockui’ );
wp_dequeue_script( ‘jquery-placeholder’ );
wp_dequeue_script( ‘fancybox’ );
wp_dequeue_script( ‘jqueryui’ );
}
}
}

?>

Cuando analice su sitio web seguramente va a ver los siguientes errores que a continuación enumeramos, sentimos informarle que son prácticamente imposible de solucionar en su totalidad, debido a que en muchas ocasiones son generados por los propios temas:

  1. Especificar caché de navegador
  2. Prioriza el contenido visible
  3. Eliminar el JavaScript que bloquea la visualización y el CSS del contenido de la mitad superior de la página
  4. Optimizar imágenes
  5. Minificar JavaScript

Para no enrollarme mucho y además ayudarle a solucionar muchos de los problemas de seguridad que pueden surgir, le dejo el siguiente código que es el que tenemos puesto en servianuncios.com, pero tenga en cuenta que algunas reglas dependiendo de los plugins que ustedes tengan activados pueden no funcionar:

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/gif “access plus 1 month”
ExpiresByType image/jpeg “access plus 1 month”
ExpiresByType image/jpg “access plus 1 month”
ExpiresByType image/png “access plus 1 month”
ExpiresByType text/css “access plus 1 week”
ExpiresByType text/javascript “access plus 1 week”
ExpiresByType application/javascript “access plus 1 week”
ExpiresByType application/x-javascript “access plus 1 week”
ExpiresByType image/x-icon “access plus 1 year”
ExpiresByType image/svg+xml “access plus 1 year”
ExpiresByType image/vnd.microsoft.icon “access plus 1 year”
ExpiresByType application/font-woff “access plus 1 year”
ExpiresByType application/x-font-woff “access plus 1 year”
ExpiresByType font/woff2 “access plus 1 year”
ExpiresByType application/vnd.ms-fontobject “access plus 1 year”
ExpiresByType font/opentype “access plus 1 year”
ExpiresByType font/ttf “access plus 1 year”
ExpiresByType font/otf “access plus 1 year”
ExpiresByType application/x-font-ttf “access plus 1 year”
ExpiresByType application/x-font-otf “access plus 1 year”
</IfModule>
<IfModule mod_deflate.c>
<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE text/html text/css text/javascript application/javascript application/x-javascript font/ttf application/x-font-ttf font/otf application/x-font-otf font/opentype image/svg+xml
</IfModule>
</IfModule>

<IfModule mod_rewrite.c>
<IfModule mod_env.c>
SetEnv HTTP_MOD_REWRITE On
</IfModule>

RewriteEngine on

#Domain: servianuncios.com
RewriteRule . – [E=REWRITEBASE:/]
RewriteRule ^api$ api/ [L]

RewriteRule ^api/(.*)$ %{ENV:REWRITEBASE}webservice/dispatcher.php?url=$1 [QSA,L]

# Images
RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$1$2$3.jpg [L]
RewriteRule ^([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$1$2$3$4.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$1$2$3$4$5.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$1$2$3$4$5$6.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7$8.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg [L]
RewriteRule ^c/([0-9]+)(\-[\.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2$3.jpg [L]
RewriteRule ^c/([a-zA-Z_-]+)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2.jpg [L]
# AlphaImageLoader for IE and fancybox
RewriteRule ^images_ie/?([^/]+)\.(jpe?g|png|gif)$ js/jquery/plugins/fancybox/images/$1.$2 [L]

# Dispatcher
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ – [NC,L]
RewriteRule ^.*$ %{ENV:REWRITEBASE}index.php [NC,L]
</IfModule>

AddType application/vnd.ms-fontobject .eot
AddType font/ttf .ttf
AddType font/otf .otf
AddType application/x-font-woff .woff
<IfModule mod_headers.c>
<FilesMatch “\.(ttf|ttc|otf|eot|woff|svg)$”>
Header set Access-Control-Allow-Origin “*”
</FilesMatch>
</IfModule>

#If rewrite mod isn’t enabled
ErrorDocument 404 /index.php?controller=404

# Con especificamos cache
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault “access plus 10 days”
ExpiresByType text/css “access plus 1 week”
ExpiresByType text/plain “access plus 1 week”
ExpiresByType image/gif “access plus 1 month”
ExpiresByType image/png “access plus 1 month”
ExpiresByType image/jpeg “access plus 1 month”
ExpiresByType image/x-icon “access plus 3 months”
ExpiresByType application/x-javascript “access plus 1 month”
ExpiresByType application/javascript “access plus 1 week”
ExpiresByType text/javascript “access plus 1 week”
ExpiresByType application/x-icon “access plus 3 months”
</IfModule>
# terminado

<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault “access plus 1 week”
</IfModule>

FileETag MTime Size

<Files wp-config.php>
order allow,deny
deny from all
</Files>

# protege archivo wp-config
<files wp-config.php>
order allow,deny
deny from all
</files>
# renombrar los archivos
#AccessFileName .htaccess
## protección extrema de htaccess
#<Files ~ “^.*\.([Hh][Tt][Aa])”>
# order allow,deny
# deny from all
# satisfy all
#</Files>
#<Files .htaccess>
#Order allow,deny
#Deny from all
#</Files>

# denegamos acceso a cualquiera que se ajuste a los anteriores códigos y les enviamos un mensaje 403
<Limit GET POST PUT>
order deny,allow
deny from env=BlockedAgent
deny from env=BlockedReferer
deny from env=BlockedAddress
allow from all
</Limit>

# establecemos variables para agentes de usuario, referencias y direcciones IP
SetEnvIfNoCase User-Agent “.*(user-agent-you-want-to-block|php/perl).*” BlockedAgent
SetEnvIfNoCase Referer “.*(block-this-referrer|and-this-referrer|and-this-referrer).*” BlockedReferer
SetEnvIfNoCase REMOTE_ADDR “.*(666.666.66.0|22.22.22.222|999.999.99.999).*” BlockedAddress

# Block Bad Bots &amp; Scrapers
SetEnvIfNoCase User-Agent “Aboundex” bad_bot
SetEnvIfNoCase User-Agent “80legs” bad_bot
SetEnvIfNoCase User-Agent “360Spider” bad_bot
SetEnvIfNoCase User-Agent “^Java” bad_bot
SetEnvIfNoCase User-Agent “^Cogentbot” bad_bot
SetEnvIfNoCase User-Agent “^Alexibot” bad_bot
SetEnvIfNoCase User-Agent “^asterias” bad_bot
SetEnvIfNoCase User-Agent “^attach” bad_bot
SetEnvIfNoCase User-Agent “^BackDoorBot” bad_bot
SetEnvIfNoCase User-Agent “^BackWeb” bad_bot
SetEnvIfNoCase User-Agent “Bandit” bad_bot
SetEnvIfNoCase User-Agent “^BatchFTP” bad_bot
SetEnvIfNoCase User-Agent “^Bigfoot” bad_bot

# denegamos acceso a cualquiera que se ajuste a los anteriores códigos y les enviamos un mensaje 403
<Limit GET POST PUT>
order deny,allow
deny from env=BlockedAgent
deny from env=BlockedReferer
deny from env=BlockedAddress
allow from all
</Limit>

# establecemos variables para agentes de usuario, referencias y direcciones IP
SetEnvIfNoCase User-Agent “.*(user-agent-you-want-to-block|php/perl).*” BlockedAgent
SetEnvIfNoCase Referer “.*(block-this-referrer|and-this-referrer|and-this-referrer).*” BlockedReferer
SetEnvIfNoCase REMOTE_ADDR “.*(666.666.66.0|22.22.22.222|999.999.99.999).*” BlockedAddress
# establecemos la variable para clacker red clase B que provenga de una red a bloquear determinada
SetEnvIfNoCase REMOTE_ADDR “66.154.*” BlockedAddress
# establecemos la variable para dos redes clase B concretas de ejemplo 198.25.0.0 y 198.26.0.0
SetEnvIfNoCase REMOTE_ADDR “198.2(5|6)\..*” BlockedAddress
#Block bad bots
SetEnvIfNoCase user-Agent ^FrontPage [NC,OR]
SetEnvIfNoCase user-Agent ^Java.* [NC,OR]
SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR]
SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR]
SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR]
SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR]
SetEnvIfNoCase user-Agent ^Zeus [NC]

Order Allow,Deny
Allow from all
Deny from env=bad_bot
#SSLOptions + StrictRequire
#SSLRequireSSL
IndexIgnore *.wmv *.mp4 *.avi *.etc
IndexIgnore *
LimitRequestBody 10000000
FileETag MTime Size
ExpiresActive on
ExpiresDefault “access plus 86400 seconds”
<IfModule mod_speling.c>
CheckSpelling On
</IfModule>

AddType application/octet-stream .avi
AddType application/octet-stream .mpg
AddType application/octet-stream .wmv
AddType application/octet-stream .mp3
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html

# protección contra ataques DOS limitando el tamaño de carga de archivos
LimitRequestBody 10240000
# desactivar la navegación de directorios
Options All -Indexes
# evitar el listado de carpetas
IndexIgnore *

# sirve archivos foo como archivos php
AddType application/x-httpd-php .foo
# sirve archivos foo como archivos cgi
AddType application/x-httpd-cgi .foo
Options -Indexes
DirectoryIndex index.php index.html

#<ifmodule>
#AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/x-javascript
#</ifmodule>
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/gif A432000
ExpiresByType image/jpg A432000
ExpiresByType image/jpeg A432000
ExpiresByType image/png A432000
ExpiresByType image/ico A432000
ExpiresByType image/bmp A432000
ExpiresByType text/css A432000
ExpiresByType text/javascript A432000
ExpiresByType application/javascript A432000
ExpiresByType application/x-javascript A432000
</ifmodule>

#<Files ~ “^.*\.([Hh][Tt][Aa])”>
#order allow,deny
#deny from all
#satisfy all
#</Files>
#<FilesMatch “\.(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$”>
#Order Allow,Deny
#Deny from all
#</FilesMatch>

#Block bad bots
SetEnvIfNoCase user-Agent ^FrontPage [NC,OR]
SetEnvIfNoCase user-Agent ^Java.* [NC,OR]
SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR]
SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR]
SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR]
SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR]
SetEnvIfNoCase user-Agent ^Zeus [NC]
Order Allow,Deny
Allow from all
Deny from env=bad_bot
<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript
</ifmodule>

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# BEGIN GZIP
<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript
</ifmodule>
# END GZIP
# FIN

  • Uno de los plugin sencillamente imprescindibles es wp-rocket y lo es porque va a acelerar mucho la carga de su sitio web gracias a las siguientes características .
  • El otro plugin que sin duda recomendamos desde servianuncios.com es Compress JPEG & PNG images.

Es cierto que los dos plugins o extensiones mencionados son de pago, pero también lo es que su uso, junto a las otros consejos dados en esta publicación y a una no sobrecarga de plugin en su sitio,  le va llevar a una alta puntuación en https://developers.google.com/speed/pagespeed/insights/

Conozca nuestros tutoriales aquí.

servianuncios.com le desea que pase un excelente día, tarde y o noche, así como también le comunica que estamos a su entera disposición

para que nos comunique cualquier:

  • Duda.
  • Sugerencia.
  • Comentario.
  • Proposición.
  • Queja.
    Etc. etc.

Por medio de cualquiera de los siguientes medios:

  • Email: info@servianuncios.com. Por favor, indique en el asunto el motivo de su comunicación.
  • Teléfono: 34626481741 bien contactándonos por WhatsApp o mediante llamada. Gracias por su visita e interés, esperamos que está publicación le resulte de su interés, así como le agradeceremos que deje un comentario en esta publicación.

 

Publicidad de servianuncios.com




Comentarios