Cómo evitar que Google indexe tu sitio WordPress

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:

  1. No visites mi web
  2. 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:

  1. 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é.
  2. 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.
  3. Guarda los cambios.
  4. 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?

1. Abres el protector de directorios con contraseña
2. Eliges la carpeta y le decides usuario y contraseña

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…

VALORA Y COMPARTE ESTE ARTÍCULO PARA MEJORAR LA CALIDAD DEL BLOG…
(8 votos, promedio: 4.5)

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

10 comentarios en “Cómo evitar que Google indexe tu sitio WordPress”

  1. 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.

  2. 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.

  3. 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.

    1. 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

      1. Gracias! Me puedes indicar los pasos exactos desde mi panel de hosting por favor, es CPanel. O un telefono directo para lamar? Mil gracias

          1. 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.

  4. 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

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Ir arriba Ir al contenido