De ce do_robots() permite implicit Allow: /wp-admin/admin-ajax.php?
Acest lucru se întâmplă chiar și la o instalare nouă, fresh de WordPress. Dar tot ce trebuie să faci este să te uiți la funcția ciudată do_robots(), care afișează următoarele...
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://knowingart.com/wp-sitemap.xml
Permiterea robotilor să acceseze "wp-admin" (implicit) nu are niciun sens:
- De ce aș permite robotilor aleatori să intre în directorul meu de admin?! Directorul admin este doar pentru mine. Roboții/crawlerii nu ar trebui să facă nimic în directorul meu de admin.
- Dece aș provoca un auto-DOS permitând robotilor să acceseze un script de admin?
- Dacă aș fi un dezvoltator de roboți, aș putea (greșit) interpreta acest "allow" ca o negare a disallow-ului, pentru că allow vine după disallow și este același director. De ce robots.txt se contrazice aici?
- Acest robots.txt ciudat (implicit) pare să îl încurce pe DuckDuckGo. De exemplu, primul rezultat de căutare este directorul meu wp-admin?! Se pare că DuckDuckGo a citit robots.txt-ul meu, a intrat în wp-admin pentru că robots.txt i-a spus să meargă acolo, iar acesta este directorul greșit. Oare crawler-ul DDG a fost confuzat de fișierul robots.txt ciudat? Acum mă gândesc că DDG mi-a indexat blogul înainte ca orice conținut să fie disponibil și pur și simplu nu s-a actualizat încă, aceasta pare o explicație mai plauzibilă.
De ce WordPress trimite roboți de indexare într-un director de admin care nu are conținut?! Nu are niciun sens pentru mine, motiv pentru care sunt aici încercând să înțeleg. Pot doar să-mi imaginez că autorul acestui cod do_robots() nu a înțeles scopul fișierului robots.txt

În primul rând: citește despre robots.txt, dacă nu ai făcut-o deja. O altă referință bună este aceasta de la Yoast.
Exemplul pe care l-ai postat:
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://knowingart.com/wp-sitemap.xml
...le spune tuturor agenților-utilizatori (adică tuturor crawlerelor) că nu au voie să indexeze nimic din directorul tău wp-admin
, cu excepția fișierului /wp-admin/admin-ajax.php
, care este necesar WordPress pentru funcționarea corectă a AJAX.
Acesta nu le spune roboților să acceseze directorul tău /wp-admin/
; le spune că nu sunt bineveniți acolo (cu excepția cerinței pentru AJAX).
În ceea ce privește întrebarea ta #4, din păcate nu am un răspuns pentru aceasta.

@PJBrunet admin-ajax.php este folosit foarte frecvent pentru cererile AJAX publice în partea frontală a site-ului web. Dacă cererile către acest fișier de la roboți sunt blocate, atunci când un robot de căutare indexează site-ul tău, aceste cereri nu vor funcționa și robotul ar putea vedea o versiune defectuoasă a paginii.

robots.txt
nu are nicio legătură cu modul în care WordPress accesează el însuși. Este destinat să fie un set de instrucțiuni pentru roboții de căutare, indicându-le unde pot (și, mai important) unde nu pot naviga pe un site.

@JacobPeattie Înțeles punctul lui Jacob, Google face niște magie specială pentru a randă pagina și cumva să analizeze interfața, lucru care este valabil încă din vremea lui Matt Cutts. Totuși, rolul fișierului robots.txt nu este să mulțumească Googlebot specific. Dacă aceasta este cu adevărat o problemă, lasă dezvoltatorul temei să o rezolve sau ridică problema la Google. Înțeleg că SEO-ul pe Google este foarte important pentru oameni, dar este doar un robot printre mulți - și sincer nu-mi pasă dacă tema cuiva are nevoie de admin-ajax.php pentru a se afișa corect. Problemele de SEO specifice temelor (teme care nu eșuează elegant) nu ar trebui să se strecoare în robots.txt

Deși ți-am dat vot pozitiv răspunsului tău, văd probleme aici. În primul rând, îngrijorarea mea cu privire la ordinea allow/disallow este o problemă reală https://core.trac.wordpress.org/ticket/33156#comment:18 Indiferent de specificațiile robots.txt, cel mai bine este să fii specific și clar, deoarece fiecare robot va interpreta robots.txt în felul său, indiferent de specificații.

În ceea ce privește problema AJAX, în relație cu temele care se afișează corect pentru Googlebot sau din cauza unei erori în Webmaster Tools, niciuna dintre aceste probleme nu aparține de robots.txt. Paginile AJAX nu au nevoie de AJAX pentru a fi afișate pentru un motor de căutare. Conținutul încărcat "lazy" nu ar trebui să creeze probleme Googlebot. Dezvoltatorii AJAX ar putea și ar trebui să încarce conținut de rezervă, cu alte cuvinte secțiunile de conținut AJAX pot și ar trebui să eșueze elegant. Temele prost codate nu ar trebui să polueze robots.txt

adevărul este că probabil nimic nu ar trebui blocat în robots.txt
de către nucleu (aceasta a fost, dacă îmi amintesc corect, poziția lui Joost în această privință) deoarece WordPress este o platformă deschisă, iar conținutul și stilizarea pentru frontend pot fi și sunt generate în tot felul de directoare care poate nu au sens pentru tine și mine. WordPress nu are rolul de a împiedica proprietarii de site-uri să instaleze plugin-uri prost scrise.
De ce ai pagini indexate de un motor de căutare? WordPress folosește un fel de anteturi "nu indexa" pentru toate paginile de administrare, așa că cel mai probabil ai un cod prost scris care împiedică trimiterea antetului. (aceasta presupune că nu există o eroare în Bing, care este motorul de căutare ce alimentează DDG).
Poate merită să reamintim că robots.txt este doar un fișier consultativ, iar la latitudinea motorului de căutare este să decidă dacă și cum să-l respecte. Dacă îmi amintesc corect, Google nu îl va respecta pe deplin dacă a existat un link către o pagină care ar fi trebuit exclusă prin robots.txt

Sunt de acord că "nimic nu ar trebui blocat"; de fapt, WordPress nici nu ar trebui să genereze automat fișierul robots.txt. Răspunsul este: WordPress a făcut o greșeală. Istoric, scopul fișierului robots.txt este să ofere recomandări crawler-ului. Totuși, aud mulți oameni vorbind despre robots.txt în legătură cu teme, "front end" etc. Chiar dacă ar exista o problemă cu Google care trimite notificări prin e-mail via Webmaster Tools, acesta nu este rolul robots.txt (Googlebot este doar un crawler printre multe altele.) Și, bineînțeles, dacă există probleme cu Googlebot care nu pot fi rezolvate cu Google, NginX/Apache/etc pot gestiona aceste lucruri.

"Cel mai probabil ai un cod prost scris" Nu, este o instalare proaspătă de WordPress din latest.tar.gz, folosind o temă de la Automattic descărcată prin panoul de control. Cu toate acestea, se pare că DDG s-a actualizat deja și a corectat eroarea.
