Normalmente buscarías justo lo contrario, cómo hacer que Google indexe tu sitio WordPress, y cuanto más arriba mejor ¿no?
Pero hay ocasiones en que no quieres que Google indexe tu web o blog, o que no indexe todo, o que no lo haga hasta que no hayas terminado tu web.
Por ejemplo, cuando creas un nuevo sitio, seguro que no quieres que Google indexe la entrada y página de prueba de toda instalación nueva de WordPress y empezar en sus índices compitiendo con contenido duplicado por otras miles de webs ¿verdad?
Está claro entonces que no siempre vas a querer que Google – y otros buscadores – indexen tu web, así que vamos a ver qué estrategias puedes aplicar para conseguirlo.
Que WordPress disuada a los buscadores
La primera opción, y más sencilla, es simplemente pasarte por tu escritorio y en Ajustes > Lectura, activar la casilla denominada Disuade a los motores de búsqueda de indexar este sitio.
Robots.txt virtual
Guarda los cambios y WordPress creará un archivo robots.txt virtual con la siguiente sintaxis:
User-agent: * Disallow: /
Si no entiendes inglés o no conoces los comandos básicos de los archivos robots.txt, básicamente indica a todos (* es el símbolo comodín para indicar que afecta a todos) los «User-agent» (bots de los buscadores, navegadores, etc.) que no entre (Disallow) a la carpeta principal ni a nada de lo que haya bajo ella (con la barra / que define la carpeta raíz de tu instalación).
Y digo que es un archivo virtual porque si echas un vistazo a la carpeta raíz de tu instalación no verás físicamente ningún archivo llamado «robots.txt» pero si accedes a tudominio.es/robots.txt podrás ver su contenido aunque no exista físicamente.
Pero funcionar funciona igual, lo que los rastreadores buscan es la ruta, y ahí está, con las indicaciones de que no pase. Piensa en este archivo robots.txt como el segurata de tu web, que dice a todos que ahí no entren, que está cerrado.
Meta noindex
Ahora bien ¿impide eso que indexen tu web los rastreadores? No, para eso hacen falta las etiquetas meta noindex, y WordPress también las añade cuando marcas la casilla de marras.
Para una comprobación más exhaustiva, solo tienes que revisar el código fuente de tu web y comprobar que WordPress ha añadido la etiqueta meta noindex así:
Con este sencillo método, que tu WordPress incluye, le indicas dos cosas a los rastreadores:
- No visites mi web
- No indexes mi web
¿Hacen caso los rastreadores a WordPress?
La mayoría sí, al menos Google sí atiende educadamente a estas 2 indicaciones.
Robots.txt real
Por supuesto, da igual lo que tengas puesto en los ajustes de WordPress, puedes crear tú mismo el fichero robots.txt y añadirle las reglas de disallow manualmente.
También el plugin Yoast SEO tiene una página desde la que crear y editar el archivo robots.txt, en SEO > Herramientas > Editor de archivos.
Bloquea a los buscadores desde .htaccess
Hay varios modos de evitar que rastreadores, e incluso visitantes, visiten e indexen tu web WordPress usando el archivo de Apache .htaccess, situado en la carpeta raíz de tu instalación. Estos son los más interesantes…
Bloqueo por IP desde .htaccess
Simplemente añade unas líneas como estas, cambiando la IP de ejemplo por las tuyas:
order deny,allow deny from all allow from 99.999.999.999
Permitir acceso solo a wp-admin
Otro modo elegante es redirigir todo el tráfico automáticamente a /wp-admin, con lo que solo los usuarios ya registrados podrán ver el contenido, como harías con los plugins que existen para estas cosas, pero desde .htaccess.
Solo tienes que añadir estas líneas:
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ [OR] RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$ RewriteRule ^(.*)$ - [R=403,L] </IfModule>
Si quieres sumar a estas reglas el truco anterior, y limitar también por IP el código sería algo así:
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ [OR] RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$ RewriteCond %{REMOTE_ADDR} !^99\.999\.999\.999$ RewriteRule ^(.*)$ - [R=403,L] </IfModule>
Cualquier visitante no deseado verá una preciosa página de error 403.
Bloqueo mediante .htpasswd
Los pasos para restringir acceso mediante un archivo .htpasswd son estos:
- Crea un archivo nuevo llamado .htpasswd (no olvides el punto delante) en la carpeta raíz de tu instalación. Es importante que lo crees desde el editor de código del cPanel de tu hosting, luego verás porqué.
- Añade las combinaciones de usuario/contraseña al archivo .htpasswd. Para ello usa esta herramienta online u otra para crearlas ya codificadas y las copias y pegas una vez generadas las líneas codificadas en tu archivo .htpasswd.
Paso 1 Paso 2 - Guarda los cambios.
- Añade un código como el siguiente (cambiando la ruta de tu archivo .htpasswd) al archivo .htaccess para que utilice el archivo .htpasswd.
AuthType Basic AuthName "Zona restringida" AuthUserFile /home/xxxx/public_html/midominio.es/.htpasswd Require valid-user
Para saber la ruta completa de tu archivo .htpasswd mira en la URL del editor de código de tu cPanel cuando tengas abierto el archivo.
Una variación de este truco es usar la protección mediante archivo .htpasswd pero solo para el acceso a la administración de WordPress, que no es objeto de este artículo, pero ya que estamos que sepas que entonces el código a añadir en .htaccess sería más o menos así:
<Files wp-login.php> AuthType Basic AuthName "Zona restringida" AuthUserFile /home/xxxx/public_html/midominio.es/.htpasswd Require valid-user </Files>
Al llegar a la ruta protegida mediante archivo .htpasswd el navegador mostrará una ventana emergente que solicitará al visitante – con una pantalla blanca de fondo – su usuario y contraseña, que deberán existir en el archivo .htpasswd.
Si los introduce bien ya verá la web, en caso contrario, al ser una restricción directa de servidor completa el usuario infractor que no sepa el usuario y contraseña accederá a un bonito Error 500.
Bloqueo desde cPanel del hosting
Una variación del procedimiento anterior es conseguir lo mismo pero a golpe de clic, desde el cPanel de tu proveedor de hosting.
Para ello solo tienes que abrir la utilidad de proteger directorios con contraseña, que en estas 2 capturas queda de sobra explicado ¿verdad?
Bloqueo con plugins
Hay algunos plugins con los que puedes ocultar e impedir el acceso a tu web, también a Google y otros buscadores, aquí tienes solo los que me son más de confianza:
- Members: Además de poder crear y modificar perfiles y capacidades de usuarios también tiene la opción de hacer privado tu sitio, la activas y punto, toda visita se redirige a la pantalla de acceso.
- My Private Site: Plugin muy específico para redirigir a cualquier intento de acceso a tu web, con la posibilidad de enviarlos a una página concreta o simplemente a la de acceso.
¿Sabes algún otro modo de evitar que Google u otros rastreadores indexen tu WordPress?
Te toca…
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
Muy útil el post! 😉 Desde el Yoast SEO también se puede poner NO index NO follow a las páginas que no quieras que indexe Google.
Cierto, pero eso es ya para cosas concretas, aquí más me quería centrar en no indexar a lo burro y tal jeje
Era lo q estaba buscando
Todo muy bien hasta que he anadido el codigo en Yoast SEO en Herramientas configuracion como decis en el post:
RewriteEngine on
RewriteCond %{REQUEST_URI} ^(.*)?wp-login.php(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
RewriteRule ^(.*)$ – [R=403,L]
Me sale esto:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator at [email protected] to inform them of the time this error occurred, and the actions you performed just before this error.
More information about this error may be available in the server error log.
Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
Necesito ayuda que ahora no me funciona nada en wordpress.
Hola Fernando,
Muchas gracias por el post me ha servido muchisimo hasta que he introducido el siguiente codigo como dices para no indexar mi wordpress ya que lo estoy construyendo.
6
RewriteEngine on
RewriteCond %{REQUEST_URI} ^(.*)?wp-login.php(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
RewriteRule ^(.*)$ – [R=403,L]
Una vez hecho me ha dado un error que no puedo acceder a mi Wordpress escritorio para realizar nada. Esta colapsado. Este es el texto que me muestra. Por favor necesito una solucion. Muchisimas gracias
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator at [email protected] to inform them of the time this error occurred, and the actions you performed just before this error.
More information about this error may be available in the server error log.
Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
Algo debiste copiar mal del código, alguna comilla o similar, o simplemente tu servidor no lo acepta.
Borra el .htaccess o elimina el código del mismo y guarda, desde FTP o el panel de tu hosting
Gracias! Me puedes indicar los pasos exactos desde mi panel de hosting por favor, es CPanel. O un telefono directo para lamar? Mil gracias
es decir, desde donde tengo que acceder enlace por enlace?
CPanel > Administrador de archivos > Selecciona el archivo .htaccess > Renómbralo. Con eso ya te debería dejar entrar. Ahora ve a Ajustes > Enlaces permanentes y guarda cambios para crear un .htaccess limpio.
Hola Fernando quiero decirte que compro siempre tus libros desde que inicie en el mundo de WordPress en la versión 4 una pregunta sabes cómo hago para que no indexen las páginas que se generan por default cuando se hace una búsqueda?
De antemano mil gracias