Perché do_robots() consente /wp-admin/admin-ajax.php di default?
Questo accade con un'installazione nuova e fresca di WordPress. Ma tutto ciò che devi fare è guardare la strana funzione do_robots(), che produce quanto segue...
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://knowingart.com/wp-sitemap.xml
Inviare i robot in "wp-admin" (di default) non ha alcun senso:
- Perché dovrei inviare robot casuali nella mia directory admin?! La directory admin è solo per me. I robot/crawler non dovrebbero fare nulla nella mia directory admin.
- Perché dovrei auto-infliggermi un attacco DOS inviando robot a uno script admin?
- Se fossi uno sviluppatore di bot, potrei (erroneamente) interpretare questo "allow" come una negazione del disallow, poiché l'allow viene dopo il disallow ed è la stessa directory. Perché il robots.txt si contraddice qui?
- Questo strano robots.txt (di default) sembra rompere DuckDuckGo. Ad esempio il primo risultato di ricerca è la mia directory wp-admin?! Sembra che DuckDuckGo abbia letto il mio robots.txt, sia entrato in wp-admin perché glielo ha detto il robots.txt, e questa è la directory sbagliata. Il crawler di DDG è stato confuso dal file robots.txt strano? Ora penso che DDG abbia scansionato il mio blog prima che ci fosse alcun contenuto disponibile, e semplicemente non si è ancora aggiornato, questa sembra una spiegazione più probabile.
Perché WordPress invia i crawler dei robot in una directory admin che non ha alcun contenuto?! Non ha alcun senso per me, motivo per cui sono qui cercando di capirlo. Posso solo immaginare che l'autore di questo codice do_robots() non abbia compreso lo scopo del robots.txt

Primo: leggi qualcosa sul robots.txt, se non l'hai già fatto. Un altro buon riferimento è questo di Yoast.
L'esempio che hai postato:
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://knowingart.com/wp-sitemap.xml
...indica a tutti gli user-agent (cioè tutti i crawler) che non sono autorizzati a scansionare nulla nella tua directory wp-admin
tranne /wp-admin/admin-ajax.php
, che è richiesto da WordPress per il corretto funzionamento di AJAX.
Non sta dicendo ai robot di andare nella tua directory /wp-admin/
; sta dicendo loro che non sono i benvenuti lì (tranne che per il requisito AJAX).
Per quanto riguarda la tua domanda #4, purtroppo non ho una risposta per quella.

@PJBrunet admin-ajax.php è molto comunemente utilizzato per richieste AJAX pubbliche sul frontend del sito web. Se le richieste a questo file da parte dei bot sono bloccate, quando un bot di un motore di ricerca esegue il crawling del tuo sito queste richieste non funzionerebbero e il bot potenzialmente vedrebbe una versione incompleta della pagina.

robots.txt
non ha nulla a che fare con l'accesso di WordPress a se stesso. È pensato come istruzioni per i crawler dei motori di ricerca, per indicare loro dove possono (e, cosa più importante) non possono andare su un sito.

@JacobPeattie Capisco il punto di Jacob, Google sta facendo qualche magia speciale per renderizzare la pagina e in qualche modo analizzare l'UI, cosa vera fin dai tempi di Matt Cutts. Tuttavia, il ruolo di robots.txt non è quello di accontentare specificamente Googlebot. Se è davvero un problema, lascia che lo sviluppatore del tema lo risolva, o solleva la questione con Google. Capisco che il SEO su Google sia molto importante per le persone, ma è solo uno tra molti bot - e francamente non mi interessa se il tema di qualcuno ha bisogno di admin-ajax.php per renderizzare correttamente. Problemi SEO specifici del tema (temi che non falliscono in modo elegante) non dovrebbero influenzare robots.txt

Anche se ho votato positivamente la tua risposta, vedo dei problemi qui. Innanzitutto, la mia preoccupazione riguardo all'ordine di allow/disallow è un problema reale https://core.trac.wordpress.org/ticket/33156#comment:18 Indipendentemente dalle specifiche del robots.txt, è meglio essere specifici e chiari perché ogni robot interpreterà il robots.txt a modo suo, a prescindere dalle specifiche.

Per quanto riguarda il problema AJAX, in relazione ai temi che si rendono correttamente per Googlebot o a causa di un malfunzionamento in Webmaster Tools, nessuno dei due problemi appartiene al robots.txt. Le pagine AJAX non hanno bisogno di AJAX per essere renderizzate da un motore di ricerca. Il contenuto a "caricamento lazy" non dovrebbe rompere Googlebot. Gli sviluppatori AJAX potrebbero e dovrebbero caricare contenuti segnaposto, in altre parole le sezioni di contenuto AJAX possono e dovrebbero fallire in modo elegante. I temi scritti male non dovrebbero inquinare il robots.txt

la verità è che probabilmente nulla dovrebbe essere bloccato in robots.txt
dal core (se ben ricordo questa era la posizione di Joost sulla questione) poiché WordPress è una piattaforma aperta e i contenuti frontend e lo stile possono essere generati in tutti i tipi di directory che potrebbero non avere molto senso per te e me. WordPress non ha il compito di impedire ai proprietari di siti di installare plugin scritti male.
Perché hai pagine indicizzate da un motore di ricerca? WordPress utilizza una sorta di intestazioni "non indicizzare" per tutte le pagine di amministrazione, quindi molto probabilmente hai del codice scritto male che impedisce l'invio dell'intestazione. (questo presuppone che non ci sia un bug in Bing, che è il motore di ricerca che alimenta DDG).
Forse vale la pena ricordare che robots.txt è solo un file consultivo, spetta al motore di ricerca decidere se e come rispettarlo. Se ben ricordo, Google non lo rispetterà completamente se c'era un link a una pagina che dovrebbe essere esclusa da robots.txt

Concordo che "nulla dovrebbe essere bloccato", infatti WordPress non dovrebbe generare automaticamente il robots.txt. La risposta è: WordPress ha commesso un errore. Storicamente, lo scopo del robots.txt è quello di fornire indicazioni ai crawler. Tuttavia, sento molte persone parlare di robots.txt in relazione ai temi, al "front end" ecc. Anche se ci fosse un problema con Google che segnala qualcosa via email attraverso Webmaster Tools, non è questo il ruolo del robots.txt (Googlebot è solo uno tra i tanti crawler.) E ovviamente, se ci sono problemi con Googlebot che non possono essere risolti con Google, NginX/Apache/ecc possono gestire queste cose.

"Molto probabilmente hai del codice scritto male" No, è un'installazione fresca di WordPress da latest.tar.gz, utilizzando un tema di Automattic scaricato tramite la dashboard. Detto questo, sembra che DDG si sia già aggiornato e abbia corretto l'errore.
