Si buscas cómo aumentar la velocidad de WordPress y proteger tu sitio sin plugins, entonces debes leer el siguiente artículo.
Aunque los plugins pueden resolver varios problemas de forma casi automática, siempre tienen funcionalidades extras que terminan sobrecargando el servidor. Por este motivo, lo ideal sería trabajar determinadas configuraciones modificando el .htaccess. Si no sabes de qué hablo, no te preocupes, a continuación, te explicaré con mayor detalle.
Qué es el .htaccess
.htaccess es el archivo de configuración en los servidores Apache. Localizado en el correspondiente directorio, el archivo es detectado y procesado por el software de Apache. Estas configuraciones pueden ayudarnos a mejorar la velocidad de carga de un sitio y protegerlo contra posibles ataques.
Básicamente, este archivo se utiliza para activar o desactivar las opciones que están disponibles en Apache. Entre estas funciones podemos mencionar las de redirección para los errores 404 por páginas no encontradas y compresión de caché. También se pueden habilitar funciones más avanzadas como prohibir el enlazado directo a imágenes guardadas en nuestro servidor.
Entonces, si queremos evitar las enormes bibliotecas de plugins y configuraciones en el servidor, lo recomendables es utilizar .htaccess.
Cómo aumentar la velocidad de WordPress sin utilizar plugins
Cuando el sitio web es lento, el usuario siente que pierde tiempo esperando y se retira decepcionado. Aunque muchos todavía lo niegan, la velocidad del sitio es muy importante para el posicionamiento en los resultados de Google. Además, un sitio que carga rápido, facilita la navegación y deja una buena impresión en los usuarios.
Habilitar compresión GZip en WordPress utilizando .htaccess
Mediante la compresión GZip se puede mejorar el tiempo de carga de un sitio creado con WordPress. Para hacerlo desde htaccess debes habilitar mod_deflate.c y usar los filtros apropiados como en el siguiente ejemplo:
ver ejemplo
<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/text
AddOutputFilterByType DEFLATE image/jpg
AddOutputFilterByType DEFLATE image/png
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE video/3gpp
AddOutputFilterByType DEFLATE video/mp4
AddOutputFilterByType DEFLATE audio/mp3
AddOutputFilterByType DEFLATE audio/wav
# Fix Browsers
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</ifmodule>
En el ejemplo anterior comprimimos algunos elementos multimedia. Al incluir estas líneas en .htaccess, conseguiremos un mejor rendimiento y velocidad de carga del sitio web. Aunque debes tener presente que algunos navegadores no tienen soporte para GZip.
Configuración de la caché de WordPress desde .htaccess
Si deseas acelerar tu sitio web mediante el almacenamiento en caché de javascript, CSS e imágenes, entonces puedes configurar fácilmente desde .htaccess, incluyendo el mod_expires.c
ver ejemplo 2
# Expires – 2592000s = 30 days
<ifmodule mod_expires.c>
ExpiresActive On
ExpiresDefault «access plus 1 seconds»
ExpiresByType text/html «access plus 7200 seconds»
ExpiresByType image/gif «access plus 2592000 seconds»
ExpiresByType image/jpeg «access plus 2592000 seconds»
ExpiresByType image/png «access plus 2592000 seconds»
ExpiresByType text/css «access plus 518400 seconds»
ExpiresByType text/javascript «access plus 2592000 seconds»
ExpiresByType application/x-javascript «access plus 2592000 seconds»
</ifmodule>
Para este ejemplo se utilizó la caché por 31 días, pero puedes cambiarlo al tiempo que creas conveniente. Y para el header puedes usar el siguiente código (aquí también puedes configurar el parámetro max-age según te parezca):
ver ejemplo 3
# Cache Headers
<ifmodule mod_headers.c>
# Cache specified files for 30 days
<filesmatch «\.(ico|flv|jpg|jpeg|png|gif|css|swf)$»>
Header set Cache-Control «max-age=2592000, public»
</filesmatch>
# Cache HTML files for a couple hours
<filesmatch «\.(html|htm)$»>
Header set Cache-Control «max-age=7200, private, must-revalidate»
</filesmatch>
# Cache PDFs for a day
<filesmatch «\.(pdf)$»>
Header set Cache-Control «max-age=86400, public»
</filesmatch>
# Cache Javascripts for 30 days
<filesmatch «\.(js)$»>
Header set Cache-Control «max-age=2592000, private»
</filesmatch>
</ifmodule>
Cómo proteger la instalación de WordPress a través de .htaccess
En realidad, WordPress es uno de los CMS más atacados por los delincuentes informáticos. Sin embargo, puedes hacer algunas cosas para dificultarles el trabajo. Sí, existen plugins que ofrecen protección, pero algunas veces proteger desde .htaccess puede ser mucho más eficaz. A continuación, tienes unas líneas de código que te ayudarán a proteger tu instalación de WordPress a través de .htaccess.
ver ejemplo 4
# Disable directory browsing
Options All -Indexes
# Deny access to wp-config.php file
<files wp-config.php>
order allow,deny
deny from all
</files>
# Deny access to xmlrpc.php file *** REMOVE THIS IF YOU WANT TO ACCESS IT ***
<files xmlrpc.php>
order allow,deny
deny from all
</files>
# Deny access to all .htaccess files
<files ~ «^.*\.([Hh][Tt][Aa])»>
order allow,deny
deny from all
satisfy all
</files>
# Block wp-includes folder and files
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ – [F,L]
RewriteRule !^wp-includes/ – [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ – [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php – [F,L]
RewriteRule ^wp-includes/theme-compat/ – [F,L]
</IfModule>
# Block Massive attacks
<IfModule mod_rewrite.c>
RewriteEngine On
# Block out any script trying to base64_encode data within the URL.
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
# Block out any script that includes a <script> tag in URL.
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL.
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL.
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Return 403 Forbidden header and show the content of the root homepage
RewriteRule .* index.php [F]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Disable user agents from this locations
SetEnvIfNoCase User-Agent «^Missigua Locator» bad_bot
#SetEnvIfNoCase User-Agent «^PEAR HTTP_Request class» bad_bot
SetEnvIfNoCase User-Agent «^Java/1.4.1» bad_bot
SetEnvIfNoCase User-Agent «^Java/1.5.0» bad_bot
SetEnvIfNoCase User-Agent «^psycheclone» bad_bot
SetEnvIfNoCase User-Agent «^WEP Search 00» bad_bot
SetEnvIfNoCase User-Agent «^FlashGet» bad_bot
SetEnvIfNoCase User-Agent «^GetRight» bad_bot
SetEnvIfNoCase User-Agent «^GetWeb!» bad_bot
SetEnvIfNoCase User-Agent «^Go!Zilla» bad_bot
SetEnvIfNoCase User-Agent «^httplib» bad_bot
SetEnvIfNoCase User-Agent «^Indy Library» bad_bot
SetEnvIfNoCase User-Agent «^InfoNaviRobot» bad_bot
SetEnvIfNoCase User-Agent «^InterGET» bad_bot
SetEnvIfNoCase User-Agent «^Internet Ninja» bad_bot
SetEnvIfNoCase User-Agent «^LexiBot» bad_bot
SetEnvIfNoCase User-Agent «^libWeb/clsHTTP» bad_bot
SetEnvIfNoCase User-Agent «^libwww» bad_bot
SetEnvIfNoCase User-Agent «^libwww-perl» bad_bot
SetEnvIfNoCase User-Agent «^LinkextractorPro» bad_bot
SetEnvIfNoCase User-Agent «^Mozilla.*NEWT» bad_bot
SetEnvIfNoCase User-Agent «^Octopus» bad_bot
SetEnvIfNoCase User-Agent «^ProWebWalker» bad_bot
SetEnvIfNoCase User-Agent «^SuperBot» bad_bot
SetEnvIfNoCase User-Agent «^WebAuto» bad_bot
SetEnvIfNoCase User-Agent «^Wells Search II» bad_bot
SetEnvIfNoCase User-Agent «^Wget» bad_bot
SetEnvIfNoCase User-Agent «^wget» bad_bot
<Limit GET POST>
order allow,deny
allow from all
deny from env=bad_bot
</Limit>
</IfModule>
Como siempre que trabajes desde el código, te recomiendo que hagas una copia de seguridad antes emplear estos ejemplos. También debes saber que no se trata de una solución universal. Si quieres más velocidad y protección, entonces quedan muchas cosas por hacer para obtener el resultado deseado. Hasta aquí este articulo
[wp_show_posts id=»353″]