De ce do_robots() permite implicit Allow: /wp-admin/admin-ajax.php?

15 mar. 2022, 20:36:18
Vizualizări: 16K
Voturi: 7

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:

  1. 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.
  2. Dece aș provoca un auto-DOS permitând robotilor să acceseze un script de admin?
  3. 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?
  4. 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

6
Comentarii

https://core.trac.wordpress.org/ticket/18465 și https://core.trac.wordpress.org/ticket/33156 par să ofere câteva informații utile

birgire birgire
16 mar. 2022 00:02:03

votez întrebarea pentru a o aduce la un scor zero, dar data viitoare probabil ar fi bine să bei niște apă întâi, să te relaxezi și să te asiguri că întrebarea ta nu va suna ca un rant ;).

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

@MarkKaplun Mulțumesc, îmi iau munca în serios. De când am început să investighez acest lucru, se pare că Google este parțial responsabil pentru adăugarea acestei noi linii "sitemap:", deoarece cred că ei au codat noul wp-sitemap.xml, ceea ce este destul de important după părerea mea. Acel nou cod pentru sitemap este impresionant (deși puțin buggy) - nu știam că există. În același timp, în prezent iau niște medicamente pentru o problemă de sănătate minoră, da, am fost iritat și m-am întors să moderăm puțin tonul. Totuși, ca administrator de sistem de hosting WordPress și dezvoltator web, sunt îndreptățit să-mi pese de configurația WordPress, SEO, sitemap-uri, etc.

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

@birgire Cred că ultimul tichet este cel mai bun răspuns. Arată că această decizie a fost luată fără prea multă gândire, iar alți oameni au pus la îndoială înțelepciunea acestei decizii (nu doar eu), iar această chestiune cu admin-ajax a fost o reacție impulsivă la un mesaj trimis din greșeală prin Google Webmaster Tools, din cauza temelor care făceau legături către fișierele de admin. În opinia mea, robots.txt ar trebui să fie responsabilitatea administratorului de sistem. Poate că pot "atinge robots.txt", dar oare asta va strica wp-sitemap.xml? LOL

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

@PJBrunet tot felul de plugin-uri pot edita fișierul (de fapt nu este un fișier, este generat automat la fiecare cerere către URL). Un plugin bun nu va modifica legătura către harta site-ului. Nu recomand un plugin anume pentru că eu îmi scriu propriul cod pentru a modifica lucrurile atunci când este nevoie, așa că nu am idee care ar fi un plugin bun.

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

Google Search Console afișează o eroare de indexare pentru wp-admin/admin-ajax.php, iar apoi proprietarul site-ului dorește să rezolve această eroare. Nu există nicio soluție decât blocarea URL-ului.

AlanP AlanP
21 sept. 2022 20:04:14
Arată celelalte 1 comentarii
Toate răspunsurile la întrebare 3
5

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

15 mar. 2022 22:35:29
Comentarii

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

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

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.

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

@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

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

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.

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

Î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

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

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

16 mar. 2022 05:30:45
Comentarii

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.

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

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

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

@PJBrunet dacă este o instalare proaspătă, nu am nicio idee ce s-ar putea întâmpla. Cu siguranță nu ar trebui să se întâmple, dar dacă din orice motiv ai link-uri către acele URL-uri, motoarele de căutare sunt mai degrabă inclinate să facă ce vor.

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

Ar trebui să permiți fișierului admin-ajax.php să comunice cu motorul de căutare în WordPress. De fapt, este o cerere care funcționează cu teme / plugin-uri și motoare de căutare dacă actualizezi site-ul WordPress.

19 ian. 2024 19:01:16
Comentarii

OK, înțeleg că este necesar pentru funcționarea site-ului, dar nu-mi pot imagina că obții conținut indexabil util din admin-ajax.

Rup Rup
22 ian. 2024 12:27:16