Cómo configurar el archivo .htaccess en WordPress para SEO
¿Qué es el archivo .htaccess y por qué es clave para tu WordPress?
El archivo .htaccess es un archivo de configuración que se encuentra en el directorio raíz de tu sitio web, y que usan los servidores Apache (y algunos otros como LiteSpeed) para controlar cómo se comportan las peticiones HTTP. Piensa en él como un manual de instrucciones que le dice a tu servidor: "cuando un visitante llegue a esta URL, haz esto".
Para WordPress, este archivo es fundamental. No solo gestiona la estructura de enlaces permanentes (los famosos "permalinks"), sino que también es la puerta de entrada para implementar redirecciones, mejorar la seguridad web y optimizar el rendimiento, todo lo cual impacta directamente en tu SEO. Un .htaccess bien configurado puede marcar la diferencia entre una web que carga rápido y está bien indexada, y una que pierde posiciones por errores 404 o tiempos de carga lentos.
Si eres nuevo en esto, no te preocupes. A lo largo de esta guía, te explicaré paso a paso, con ejemplos listos para copiar y pegar, cómo configurarlo como un profesional, incluso si nunca antes has tocado una línea de código.
Antes de empezar: haz una copia de seguridad (¡no te lo saltes!)
[!WARNING]
Un error en el.htaccesspuede hacer que tu sitio web muestre un error 500 (Internal Server Error) o que no cargue nada. Siempre haz una copia de seguridad del archivo original antes de modificarlo. Esta es la regla de oro.
Para hacer una copia, simplemente accede a tu servidor a través de un cliente FTP (como FileZilla) o el administrador de archivos de tu panel de hosting (como cPanel o Syspanel, que accederás a través del puerto 2106). Busca el archivo .htaccess en la carpeta raíz donde está instalado WordPress (normalmente public_html o www). Descárgalo a tu ordenador y guárdalo con un nombre como htaccess_backup.txt.
Si no ves el archivo, es porque está oculto. Activa la opción de "mostrar archivos ocultos" en tu cliente FTP o en la configuración del administrador de archivos.
Localizando y editando el archivo .htaccess
El archivo .htaccess se encuentra en la raíz de tu instalación de WordPress. Es un archivo de texto plano, así que puedes editarlo con cualquier editor de texto simple (como el Bloc de notas en Windows o TextEdit en Mac, aunque te recomiendo uno con resaltado de sintaxis como Sublime Text o VS Code).
Pasos para editarlo:
- Accede a tu panel de control de hosting (cPanel, Plesk, Syspanel en el puerto 2106, etc.).
- Ve a la sección de "Administrador de archivos" o "File Manager".
- Navega hasta la carpeta raíz de tu WordPress.
- Si no ves el archivo, activa la opción "Mostrar archivos ocultos".
- Haz clic derecho sobre
.htaccessy selecciona "Editar" o "Edit". - Realiza los cambios que necesites.
- Guarda los cambios. Si el archivo se guarda, verás que el servidor lo aplica casi al instante.
Configuración básica: los permisos y la regla estándar de WordPress
Lo primero que debes saber es que, por defecto, WordPress genera un bloque de código en el .htaccess para gestionar los enlaces permanentes. Este bloque es esencial. Si lo borras, tu web dejará de funcionar correctamente.
El bloque estándar es este:
# 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>
# END WordPress
[!TIP]
Este código no debe faltar en tu archivo. Si lo ves, significa que tu WordPress está configurado correctamente. Si no está, puedes añadirlo manualmente o simplemente ir a Ajustes > Enlaces permanentes en tu panel de WordPress y pulsar "Guardar cambios" para que se regenere automáticamente.
También es importante que el archivo tenga los permisos correctos. En la mayoría de los servidores, los permisos deben ser 644 (el propietario puede leer y escribir, y los grupos y otros solo leer). Cambiarlos a 666 o 777 es un riesgo de seguridad web, ya que cualquier persona podría modificarlo.
Mejorando el SEO con redirecciones en .htaccess
Las redirecciones son una de las funciones más potentes del .htaccess para SEO. Te permiten decirle al servidor que una URL ha cambiado de dirección, evitando errores 404 y consolidando la autoridad de tu página.
Redirigir HTTP a HTTPS (SSL)
Hoy en día, tener SSL es obligatorio para el SEO. Si ya tienes un certificado SSL instalado, debes forzar a todos los visitantes a usar la versión segura de tu web.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
Este código detecta si la conexión no es segura (HTTP) y redirige al mismo sitio pero con HTTPS. El código 301 es una redirección permanente, que es la que Google recomienda para no perder posicionamiento.
Redirigir www a no-www (o viceversa)
Es una decisión de configuración, pero debes elegir una y ser consistente. Si no lo haces, Google podría ver tu web como dos sitios duplicados, lo que diluye tu autoridad.
Para redirigir de www.midominio.com a midominio.com:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.midominio\.com [NC]
RewriteRule ^(.*)$ https://midominio.com/$1 [L,R=301]
Para redirigir de midominio.com a www.midominio.com:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^midominio\.com [NC]
RewriteRule ^(.*)$ https://www.midominio.com/$1 [L,R=301]
[!INFO]
Recuerda cambiarmidominio.compor tu dominio real en ambos casos.
Redirección 301 para URLs antiguas o cambiadas
Cuando cambias la URL de una página o entrada, en lugar de dejar que dé un error 404, crea una redirección 301 desde la URL antigua a la nueva. Esto es vital para no perder el "jugo" SEO que la página antigua pudo haber acumulado.
Redirect 301 /pagina-antigua/ https://tudominio.com/pagina-nueva/
Puedes añadir tantas líneas de este tipo como necesites.
Seguridad web: protegiendo tu WordPress con .htaccess
Además del SEO, el .htaccess es tu primera línea de defensa contra ataques. Aquí tienes algunas reglas sencillas pero muy efectivas.
Bloquear el acceso a archivos sensibles
Archivos como wp-config.php contienen las claves de tu base de datos. Debes bloquear el acceso directo a ellos desde el navegador.
<Files wp-config.php>
Order Allow,Deny
Deny from all
</Files>
Deshabilitar la ejecución de scripts en ciertos directorios
Es una buena práctica deshabilitar la ejecución de cualquier script PHP en la carpeta de subidas (wp-content/uploads), ya que es un lugar común para que los atacantes suban malware.
Crea un archivo .htaccess dentro de la carpeta wp-content/uploads con este contenido:
<FilesMatch "\.(php|php5|phtml|pl|py|cgi)$">
Order Deny,Allow
Deny from all
</FilesMatch>
Proteger el archivo .htaccess en sí mismo
Puedes añadir reglas para que el propio .htaccess no pueda ser leído por otros.
<Files .htaccess>
Order Allow,Deny
Deny from all
</Files>
Bloquear el acceso por referrer (spam y hotlinking)
El hotlinking es cuando otras webs usan las imágenes de tu sitio sin permiso, consumiendo tu ancho de banda. Puedes bloquearlo:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^https://(www\.)?tudominio\.com [NC]
RewriteCond %{HTTP_REFERER} !^https://(www\.)?google\.com [NC]
RewriteCond %{HTTP_REFERER} !^https://(www\.)?bing\.com [NC]
RewriteRule \.(jpg|jpeg|png|gif|webp)$ - [F,NC]
[!WARNING]
Este código es un ejemplo. Si lo usas, asegúrate de incluir los buscadores y tu propio dominio en la lista blanca. Si lo haces mal, podrías impedir que las imágenes se muestren en Google Imágenes.
Limitar el tamaño de subida de archivos
Para evitar que alguien sature tu servidor con archivos enormes, puedes limitar el tamaño máximo de subida.
LimitRequestBody 10485760
Este ejemplo limita el tamaño a 10 MB (10.485.760 bytes).
Rendimiento y caché para mejorar la velocidad
La velocidad de carga es un factor de posicionamiento clave. Aunque lo ideal es usar un plugin de caché (como LiteSpeed Cache o WP Super Cache), el .htaccess puede ayudarte a implementar la caché del navegador.
Esto le dice al navegador del visitante que guarde ciertos archivos (imágenes, CSS, JS) en su caché local, para que no tenga que descargarlos en cada visita.
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType application/x-javascript "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"
ExpiresByType application/x-font-ttf "access plus 1 year"
ExpiresByType font/woff "access plus 1 year"
ExpiresByType font/woff2 "access plus 1 year"
</IfModule>
También puedes comprimir los archivos para hacerlos más ligeros usando la compresión Gzip:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>
Solución de problemas comunes (FAQ)
Mi sitio da error 500 después de editar el .htaccess, ¿qué hago?
No entres en pánico. Es el error más común. Simplemente sube la copia de seguridad que hiciste al principio, o renombra el archivo a .htaccess.bak (o bórralo) y WordPress lo regenerará automáticamente cuando vayas a Ajustes > Enlaces permanentes y guardes los cambios.
¿Dónde está el archivo .htaccess si uso un hosting con Syspanel?
En Syspanel (que se accede a través del puerto 2106), puedes ir al "Administrador de archivos" en el panel de control. Navega hasta la raíz de tu dominio (normalmente en public_html). Si no lo ves, activa la opción de mostrar archivos ocultos.
¿Puedo usar el .htaccess para bloquear una IP específica?
Sí, es muy útil contra ataques. Simplemente añade:
Deny from 123.456.789.000
Puedes añadir tantas líneas como necesites.
¿Es necesario que el archivo .htaccess tenga permisos 644?
Sí, es la configuración más segura y la que permite que el servidor lo lea sin problemas. Si le das permisos superiores, estás creando un agujero de seguridad.
¿Puedo configurar redirecciones con un plugin en lugar del .htaccess?
Sí, plugins como "Redirection" o "Yoast SEO" pueden gestionar redirecciones desde el panel de WordPress, lo que es más fácil si no te sientes cómodo editando archivos. Sin embargo, el .htaccess es más rápido y eficiente, ya que no carga la base de datos para cada redirección.
Conclusión: el .htaccess es tu aliado para un WordPress optimizado
Como has visto, el archivo .htaccess es una herramienta increíblemente poderosa para tu WordPress. Dominar su configuración te permite tener un control total sobre las redirecciones, la seguridad web y el rendimiento, lo que se traduce en una mejora notable del SEO de tu sitio.
No temas experimentar, pero siempre con una copia de seguridad a mano. Empieza con las configuraciones básicas (HTTPS y www) y ve añadiendo las demás poco a poco. Con esta guía, ya tienes los conocimientos fundamentales para llevar tu WordPress al siguiente nivel.
[!TIP]
Si en algún momento te sientes perdido, recuerda que puedes consultar la documentación de Apache o preguntar a tu proveedor de hosting. Muchos de ellos, como los que usan Syspanel, tienen soporte técnico que puede ayudarte con estas configuraciones.
