¿Por qué do_robots() permite Allow: /wp-admin/admin-ajax.php por defecto?
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:
- ¿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.
- ¿Por qué me haría un ataque DOS enviando robots a un script de administración?
- 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í?
- 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

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.

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

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.

@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

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.

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

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

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.

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