¿Por qué do_robots() permite Allow: /wp-admin/admin-ajax.php por defecto?

15 mar 2022, 20:36:18
Vistas: 16K
Votos: 7

Esto ocurre con una instalación nueva y fresca de WordPress. Pero solo necesitas mirar la función do_robots(), que muestra lo siguiente...

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

Sitemap: https://knowingart.com/wp-sitemap.xml

Enviar robots a "wp-admin" (por defecto) no tiene sentido:

  1. ¿Por qué enviaría robots aleatorios a mi directorio de administración?! El directorio admin es solo para mí. Los robots/rastreadores no deberían estar en mi directorio admin haciendo nada.
  2. ¿Por qué me haría un ataque DOS enviando robots a un script de administración?
  3. Si fuera un desarrollador de bots, podría interpretar (erróneamente) este "allow" como una negación del disallow, porque el allow viene después del disallow y es el mismo directorio. ¿Por qué robots.txt se contradice aquí?
  4. Este robots.txt (por defecto) extraño parece romper DuckDuckGo. Por ejemplo ¡el primer resultado de búsqueda es mi directorio wp-admin?! Parece que DuckDuckGo leyó mi robots.txt, entró a wp-admin porque robots.txt le dijo que fuera allí, y ese es el directorio incorrecto. ¿El rastreador de DDG se confundió con el archivo robots.txt extraño? Ahora pienso que DDG rastreó mi blog antes de que hubiera contenido disponible, y simplemente no se ha actualizado aún, esa parece una explicación más probable.

¿Por qué WordPress envía robots rastreadores a un directorio de administración que no tiene contenido?! No tiene sentido para mí, por eso estoy aquí tratando de entenderlo. Solo puedo imaginar que el autor de este código do_robots() no entendió el propósito de robots.txt

6
Comentarios

voto a favor de la pregunta para llevarla a una puntuación cero, pero la próxima vez probablemente deberías beber un poco de agua primero para asegurarte de estar lo suficientemente relajado y que tu pregunta no termine sonando como un desahogo ;).

Mark Kaplun Mark Kaplun
16 mar 2022 05:33:00

@MarkKaplun Gracias, me tomo mi trabajo en serio. Desde que empecé a investigar esto, parece que Google es en parte responsable de añadir esta nueva línea "sitemap:", porque creo que ellos programaron el nuevo wp-sitemap.xml, lo cual es algo importante en mi opinión. Ese nuevo código de mapa del sitio es impresionante (aunque un poco buggy), no tenía idea de que estaba ahí. Dicho esto, actualmente estoy tomando medicación por un problema de salud menor, sí, estaba de mal humor y volví para suavizar un poco el tono. Sin embargo, estoy justificado como administrador de sistemas de hosting WordPress y desarrollador web para preocuparme por la configuración de WordPress, SEO, mapas de sitio, etc.

Jay Brunet Jay Brunet
16 mar 2022 21:45:52

@birgire Creo que el último ticket es la mejor respuesta. Muestra que esta decisión se tomó sin mucha reflexión, y otras personas cuestionaron la sabiduría de esta decisión (no solo yo) y este tema de admin-ajax fue una reacción impulsiva a algún correo masivo de Google Webmaster Tools que se envió por error, debido a temas que enlazaban a archivos de administración. En mi opinión, robots.txt debería ser responsabilidad del administrador del sistema. Tal vez pueda "tocar robots.txt" pero ¿eso romperá wp-sitemap.xml? LOL

Jay Brunet Jay Brunet
16 mar 2022 22:15:09

@PJBrunet todo tipo de plugins pueden editar el archivo (en realidad no es un archivo, se genera automáticamente en cada solicitud a la URL). Un buen plugin no cambiará el enlace al mapa del sitio. No recomiendo un plugin porque escribo mi propio código para modificar cosas cuando es necesario, así que no tengo idea de cuál sería un buen plugin.

Mark Kaplun Mark Kaplun
17 mar 2022 05:19:12

La consola de búsqueda de Google muestra un error de indexación para wp-admin/admin-ajax.php y luego el propietario del sitio quiere que se solucione este error. No hay solución a menos que la URL sea bloqueada.

AlanP AlanP
21 sept 2022 20:04:14
Mostrar los 1 comentarios restantes
Todas las respuestas a la pregunta 3
5

Primero: infórmate sobre el robots.txt, si aún no lo has hecho. Otra buena referencia es esta de Yoast.

El ejemplo que publicaste:

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

Sitemap: https://knowingart.com/wp-sitemap.xml

...indica a todos los agentes de usuario (es decir, todos los rastreadores) que no tienen permiso para rastrear nada en tu directorio wp-admin, excepto /wp-admin/admin-ajax.php, que es requerido por WordPress para el correcto funcionamiento de AJAX.

No está diciéndole a los robots que vayan a tu directorio /wp-admin/; les está diciendo que no son bienvenidos allí (excepto para el requisito de AJAX).

En cuanto a tu pregunta #4, me temo que no tengo una respuesta para esa.

15 mar 2022 22:35:29
Comentarios

@PJBrunet admin-ajax.php se usa comúnmente para solicitudes AJAX públicas en el front-end del sitio web. Si se bloquean las solicitudes a este archivo desde bots, cuando un bot de motor de búsqueda rastree tu sitio, estas solicitudes no funcionarían y el bot potencialmente estaría viendo una versión rota de la página.

Jacob Peattie Jacob Peattie
16 mar 2022 00:38:12

robots.txt no tiene nada que ver con el acceso interno de WordPress. Está diseñado como instrucciones para los rastreadores de motores de búsqueda, indicándoles dónde pueden (y, más importante) dónde no pueden ir en un sitio.

Pat J Pat J
16 mar 2022 00:55:01

@JacobPeattie Entiendo el punto de Jacob, Google está haciendo alguna magia especial para renderizar la página y de alguna manera analizar la UI, lo cual ha sido cierto desde los tiempos de Matt Cutts. Sin embargo, el rol de robots.txt no es complacer específicamente a Googlebot. Si eso realmente es un problema, que el desarrollador del tema lo solucione, o que lleven el problema a Google. Entiendo que el SEO de Google es muy importante para la gente, pero es solo un robot entre muchos—y francamente no me importa si el tema de alguien necesita admin-ajax.php para renderizar correctamente. Los problemas de SEO específicos del tema (temas que no fallan correctamente) no deberían filtrarse en robots.txt

Jay Brunet Jay Brunet
16 mar 2022 22:51:03

Aunque voté a favor de tu respuesta, veo problemas aquí. Primero, mi preocupación sobre el orden de allow/disallow es un problema real https://core.trac.wordpress.org/ticket/33156#comment:18 Independientemente de la especificación de robots.txt, es mejor ser específico y claro porque cada robot interpretará robots.txt a su manera, sin importar la especificación.

Jay Brunet Jay Brunet
16 mar 2022 23:09:57

En cuanto al problema de AJAX, en relación con los temas que se renderizan correctamente para Googlebot o debido a un fallo en Webmaster Tools, ninguno de estos problemas pertenece a robots.txt. Las páginas AJAX no necesitan AJAX para renderizarse en un motor de búsqueda. El contenido de "carga diferida" no debería romper Googlebot. Los desarrolladores de AJAX podrían y deberían cargar contenido de marcador de posición, en otras palabras, las secciones de contenido AJAX pueden y deberían fallar de manera elegante. Los temas mal codificados no deberían contaminar robots.txt

Jay Brunet Jay Brunet
16 mar 2022 23:14:15
3

la verdad es que probablemente nada debería ser bloqueado en robots.txt por el núcleo (esto es, si mal no recuerdo, era la posición de Joost sobre el tema) ya que WordPress es una plataforma abierta y el contenido y estilo del front-end puede y es generado en todo tipo de directorios que quizás no tengan mucho sentido para ti o para mí. WordPress no está en el negocio de evitar que los propietarios de sitios instalen plugins mal escritos.

¿Por qué tienes páginas indexadas por un motor de búsqueda? WordPress utiliza un tipo de cabeceras "no indexar" para todas las páginas de administración, así que lo más probable es que tengas algún código mal escrito que impide que se envíe la cabecera. (esto asume que no hay un error en Bing, que es el motor de búsqueda que alimenta a DDG).

Quizás valga la pena recordar que robots.txt es solo un archivo de recomendaciones, depende del motor de búsqueda decidir si y cómo respetarlo. Si mal no recuerdo, Google no lo respetará completamente si había un enlace a una página que se supone que debe estar excluida por robots.txt

16 mar 2022 05:30:45
Comentarios

Estoy de acuerdo en que "nada debería ser bloqueado", de hecho WordPress no debería generar automáticamente el archivo robots.txt en absoluto. La respuesta es: WordPress cometió un error. Históricamente, el propósito de robots.txt es asesorar a los rastreadores. Sin embargo, escucho a mucha gente hablar de robots.txt en relación a temas, el "front end", etc. Incluso si hubiera un problema con Google enviando correos molestos a través de Webmaster Tools, ese no es el papel de robots.txt (Googlebot es solo un rastreador entre muchos). Y, por supuesto, si hay problemas con Googlebot que no se pueden resolver con Google, NginX/Apache/etc pueden manejar esas cosas.

Jay Brunet Jay Brunet
16 mar 2022 22:01:27

"Lo más probable es que tengas algún código mal escrito" No, es una instalación fresca de WordPress desde latest.tar.gz, usando un tema de Automattic descargado a través del panel. Dicho esto, parece que DDG ya se actualizó y corrigió el error.

Jay Brunet Jay Brunet
16 mar 2022 22:21:49

@PJBrunet si es una instalación nueva, no tengo idea de qué podría estar pasando. Seguro que no debería ocurrir, pero si por alguna razón tienes enlaces entrantes a esas URLs, los motores de búsqueda son más propensos a hacer lo que quieran.

Mark Kaplun Mark Kaplun
17 mar 2022 05:14:58
1

Deberías permitir que admin-ajax.php se comunique con el motor de búsqueda en WordPress. En realidad, es una solicitud que funciona con temas/plugins y motores de búsqueda cuando actualizas el sitio web de WordPress.

19 ene 2024 19:01:16
Comentarios

OK, puedo ver que es necesario para que el sitio funcione, pero no puedo imaginar que realmente obtengas contenido indexable útil de admin-ajax.

Rup Rup
22 ene 2024 12:27:16