Ya sabemos lo importante que es tener un sitio web que carga rápido, que esté seguro, etc. Muchas de esas tareas en vez de hacerlas con plugins que sobrecargan nuestro sistema y afecta al resultado de las SERPs.
Hoy en día es fundamental tener nuestro WordPress en perfecto estado. Ya que afecta al tan deseado posicionamiento SEO. Hoy vamos a ver qué es, para qué sirve y cómo optimizar nuestro WordPress a través del famoso archivo .htaccess. Os voy a enseñar 14 súper trucos que harán que tengas un htaccess perfecto en WordPress para que tu sitio web sea más rápido y mucho más seguro.
¿Qué es un archivo .htaccess?
Un archivo .htaccess no es más que un fichero especial que se utiliza en los servidores Apache. Es el servidor más común cuando ejecuta páginas webs que están funcionando bajo Linux, Unix…. En Linux, cuando un archivo lleva delante un punto, se le indica que es un archivo oculto, de ahí que lleve un punto antes de la primera letra.
Con el archivo .htaccess lo que hacemos es darle una serie de directivas sin tener que entrar en el servidor, por lo que es mucho más sencillo.
Por defecto lleva el permiso 644, es decir que todos los usuarios de ese sistema operativo pueden visualizarlo pero sólo lo pueden editar al administrador.
¿Dónde se ubica el .htaccess?
Se ubica en la raíz del servidor. Se ubica ahí para que las órdenes que le
demos afecten a todas las carpetas dentro de la carpeta raíz.
¿Cómo crear un .htaccess?
Cuando se instala WordPress, por defecto ya viene en el directorio. El archivo es muy delicado, lo que vamos a hacer es mostraros una serie de trucos para que vuestro archivo .htaccess de WordPress sea más seguro y esté plenamente optimizado.
- La forma más fácil de hacerlo es: Usando el Bloc de Notas o un editor de texto plano semejante (Notepad ++) para agregar los comandos necesarios.
- Guarda el archivo como un archivo txt, por ejemplo: htaccess.txt Sube el archivo a tu sitio a la carpeta adecuada.
- Renombrar el archivo htaccess.txt a .htaccess
SIEMPRE, se debe tener una copia de seguridad de nuestros archivos. Así si surge cualquier desastre, volvemos al principio.
El archivo básico y más típico de una instalación de WordPress sería:
# BEGIN WordPress RewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress
Es importante recalcar que todas lo que escribamos, debe ir después de: # END WordPress .En un documento htaccess, es muy normal encontrarnos con el símbolo de almohadilla #, esto significa que son comentarios y a la configuración no afectarán.
¿Cómo editar un archivo .htaccess?
Hay muchos métodos que puede seguir, tres de los cuales se mencionan a continuación:
- Desde el cPanel.
- Desde el panel de control de WordPress.
- Usando un cliente FTP de escritorio.
Además, cuando editas tus permalinks de WordPress, necesitas actualizar tu archivo .htaccess. Debes conocer el archivo .htaccess y cómo editarlo.
Cómo editar el archivo .htaccess de WordPress usando cPanel:
La mayoría de las empresas de alojamiento web ofrecen cPanel, que facilita a las personas sin conocimientos técnicos jugar y modificar su archivo .htaccess.
El cPanel es especialmente útil para las personas no técnicas que necesitan añadir o editar algunos códigos. Pueden hacerlo rápidamente utilizando este editor en línea.
Primero, inicia sesión en tu cPanel. Haz clic en «Administrador de archivos» en la sección «Archivos».
Dependiendo de tu directorio de instalación de WordPress, encontrarás el .htaccess en la raíz de tu instalación de WP.
Selecciona el archivo .htaccess y haz clic en «Editar». Esto abrirá el editor en una nueva pestaña, y puedes hacer cambios desde allí.
Editar el archivo .htaccess de WordPress
Haz los cambios y guarda el archivo.
Editar el .htaccess desde el panel de control de WordPress:
Hay muchos plugins de WordPress que ofrecen la función de editar su archivo .htaccess desde el panel de control de WP. Si utilizas el plugin Rankmath o el plugin SEO by Yoast, puedes acceder a él desde la configuración del plugin.
Para Yoast SEO: SEO by Yoast > Editar archivos.
Si estás utilizando Rank Math, puede ir a Rank Math> Configuración general > Editar .htaccess
Editar el archivo .htaccess usando un cliente FTP
Este es mi método favorito ya que me encanta hacer las cosas en un escritorio. Además, los clientes FTP te dan más control.
Usa cualquier cliente FTP gratuito como FileZilla y entra en tu cuenta de alojamiento FTP. Navega hasta la raíz de tu instalación. Tienes que habilitar la opción Mostrar elementos ocultos para ver el archivo .htaccess.
Así es como puedes habilitarlo:
Opciones de menú de FileZilla > Seleccionar servidor > Forzar la visualización de archivos ocultos
Ahora, navega a la carpeta raíz de tu dominio. Tu archivo .htaccess estará en la raíz de la carpeta.
Descargue su archivo .htaccess y comience a editarlo.
Asegúrese de hacer una copia de seguridad de su archivo .htaccess antes de empezar a editarlo. Puede utilizar el editor de texto predeterminado de su sistema operativo para editar el archivo. Una vez editado, súbelo de nuevo.
Asegúrate que el permiso de tu archivo .htaccess es 644 y NO 777.
URLs Amigables.
Las URL´s amigables son direcciones que son más fáciles de recordar. Es por ejemplo más sencillo. Por ejemplo, la dirección: es más sencilla que si el software usa su propia codificación. Con las instrucciones que le pones, en primer lugar, activaremos el modo de re-escritura activo.
# BEGIN WordPress RewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress
Proteger el archivo .htaccess.
El archivo de htaccess es objeto de ataques por lo que es muy recomendable protegerlo. Insertando el siguiente código en tu archivo htaccess, protegerás tu archivo.
order allow,deny deny from all
Proteger el archivo wp-config.php
Al igual que protegemos nuestro htaccess, debemos hacerlo con nuestro archivo wp-config. Este archivo es donde se almacenan las passwords del sistema, la configuración de nuestro WordPress. Lo podemos securizar, insertando lo siguiente:
order allow,deny deny from all
Evitar listar un directorio
Si contamos con una carpeta en nuestroservidor web y almacenamos los archivos como: eBooks, etc., si la carpeta no tiene archivo index.html, los visitantes pueden ver todos los archivos dentro de la carpeta sin problemas. Para solventar esto, puedes utilizar el siguiente código:
Options -Indexes
Evitar la navegación en el directorio
Es importante esconder la arquitectura del directorio para no dar pistas a hackers. Con este sencillo truco evitarás que haya miradas innecesarias por tu directorio de WordPress.
# Navegación de directorios Options All -Indexes
Carpeta wp-content
En una carpeta muy delicada a la par que importante. Ya que contiene, nuestro tema, imágenes, css. Evita de miradas indiscretas. Tan sólo debéis añadir:
Order deny,allow Deny from all Allow from all
Restringir el acceso a los archivos PHP
Los archivos PHP son utilizados para inyectar códigos maliciosos que dañen tu página web, para eso, te muestro este otro súper truco:
RewriteCond %{REQUEST_URI} !^/wp-content/plugins/file/to/exclude.php
RewriteCond %{REQUEST_URI} !^/wp-content/plugins/directory/to/exclude/
RewriteRule wp-content/plugins/(.*.php)$ - [R=404,L]
RewriteCond %{REQUEST_URI} !^/wp-content/themes/file/to/exclude.php
Evitar que inyecten comandos maliciosos
Ahora que nos hemos puestos serios y estamos protegiendo nuestro WordPress, vamos a utilizar esta técnica que impiden que modifiquen las variables _GLOBALS y _REQUEST, en un intento de inyectar código malicioso:
Opciones + FollowSymLinks
RewriteEngine On
RewriteCond % {QUERY_STRING} (<| % 3C). * Script. * (> | % 3E) [NC, OR]
RewriteCond % {QUERY_STRING} GLOBALS (= | [| % [0-9A-Z] {0,2}) [OR]
RewriteCond % {QUERY_STRING} _REQUEST (= | [| % [0-9A-Z] {0,2})
RewriteRule ^ (. *) $ Index.php [F, L]
[thrive_lead_lock id='4771']Hidden Content[/thrive_lead_lock]
Evitar Hotlinking
Wikipedia dice que es un término que se usa en Internet, el cual indica que alguien está usando un enlace a una imagen que está archivada en otro sitio web, en lugar de guardar una copia de la imagen en el servidor del sitio web en el que se mostrará la imagen.
Por ejemplo, en lugar de guardar una imagen .gif y cargarla en su propio sitio web, la persona usa un enlace de tipo absoluto directo hacia la imagen, semejante a , en lugar de un enlace de tipo relativo.
Esto hace que la imagen siempre se cargue desde el servidor original, utilizando recursos innecesarios que no benefician al sitio principal. Para prevenirlo, utilizamos:
RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yourdomain.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?google.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?bing.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yahoo.com [NC] RewriteRule .(jpg|jpeg|png|gif|svg)$ [NC,R,L]
Compresión por GZIP
EL GZIP se utiliza para mejorar la velocidad de carga. En WordPress, hay muy buenos plugins que te ayudan con la caché, sino tienes ninguno instalado, puedes probar con el código:
mod_gzip_on Yes mod_gzip_dechunk Yes mod_gzip_item_include file .(html?|txt|css|js|php|pl)$ mod_gzip_item_include handler ^cgi-script$ mod_gzip_item_include mime ^text/.* mod_gzip_item_include mime ^application/x-javascript.* mod_gzip_item_exclude mime ^image/.* mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
Proteger tu WordPress y bloquear a los bots
Hay bots maliciosos que consumen muchos recursos de nuestro servidor, para evitar esto, basta con añadir este truco:
RewriteCond %{HTTP_USER_AGENT} "^Mozilla.*Indy" [NC,OR] RewriteCond %{HTTP_USER_AGENT} "^Mozilla.*NEWT" [NC,OR] RewriteCond %{HTTP_USER_AGENT} "^$" [NC,OR] RewriteCond %{HTTP_USER_AGENT} "^Maxthon$" [NC,OR] RewriteCond %{HTTP_USER_AGENT} "^SeaMonkey$" [NC,OR]
Cómo desactivar XML-RPC en WordPress
Para prevenir ataque DDoS, a través del fichero xmlrpc.php, debemos insertar las siguientes líneas:
Order deny,allow Deny from all
Crear redirección 301
Para crear redirecciones 301, a mi me gusta insertarlo en el htaccess, ya que si bien es cierto podemos hacerlo a través de plugins, pero para qué tener un plugin cuando podemos hacerlo a mano de una forma tan sencilla como esta:
Redirect 301 /urlantigua/
Redirgir dominio sin ‘WWW’
RewriteCond %{HTTP_HOST} !^mi-dominio.com$ [NC]
RewriteRule ^(.*)$ [R=301,L]
Redirigir dominio con ‘WWW’
RewriteEngine On RewriteCond %{HTTP_HOST} !^www. RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
Conclusión
Es cierto que el tema del htaccess es un poco complejo, pero creo que hemos desmenuzado los entresijos de este interesante archivo de htaccess para proteger nuestro WordPress. De todas las formas lo mejor es contratar un consultor seo, para no tener problemas.
12 comentarios en “Htaccess WordPress. Trucos para mejorarlo paso a paso.”
Buenos días Roberto,
me ha encantado el Post, mucha información, pero lo has hecho muy comprensible para los que no somos Legos en la materia.
Un abrazo.
Sonia
El htaccess siempre me dió respeto dentro de las técnicas SEO pero tal y como lo explicas hasta me parece accesible. Mil gracias por compartir tu conocimiento con la comunidad. Enhorabuena !!!
Hola Marcos!! Me alegro que te haya gustado. Es importante tener el htaccess en perfecto estado para evitar problemas. Un saludo.
Hola Sonia, me alegro que te haya gustado y más viniendo de alguien como tú. Muchas gracias por el comentario. Un saludo!!!
Roberto, gracias por este post. Términos tan complicados los haces con tus explicaciones más entendibles y amenos. Muchas gracias
Hola Belén. Me alegro que te haya gustado. Se trata de dar conocimiento y un aporte de valor sobre algo que es muy importante. Un saludo!!
La verdad que se agradece contar con este tipo de artículos que ayudan a los que no tenemos conocimientos sobre el.
Muchas gracias por tus artículos, son de gran ayuda, Robert.
Hola Ana María.
Te agradezco el comentario.
Un saludo.
Me ha venido como anillo al dedo. Muchas gracias
Me alegro que ye haya sido de utilidad. Un saludo
This is the perfect webpage for anybody who wishes to understand this
topic. You realize so much its almost hard to argue with you (not that
I personally would want to…HaHa). You definitely put a new spin on a subject which has been written about
for ages. Excellent stuff, just excellent!
Thank you very much Derrick for your message.
If you need any kind of help, you can write and I will gladly try to help you.
Best regards