Sådan stopper du dyr fra at grave under dit hegn

Jeg vil kun tillade gennemsøgning af mit websted, hvis webadressen starter med accepterede region / sprogkombinationer, som er us/en, gb/en og fr/fr. Andre sprogkombinationer skal begrænses. På den anden side skal crawler være i stand til at kravle / eller /aboutosv. For eksempel:

example.com/us/en/videos # should be allowed example.com/de/en/videos # should be blocked example.com/users/mark # should be allowed 

Igen skal den kun blokeres, hvis den starter med uaccepterede region / sprogkombinationer. Det, jeg har gjort indtil videre, fungerer ikke:

Disallow: /*? Disallow: /*/*/cart/ Disallow: /*/*/checkout/ Disallow: /*/*/ Allow: /*.css? Allow: /*.js? Allow: /us/en/ Allow: /gb/en/ Allow: /fr/fr/ 

Jeg testede det med Googles online robots.txt-tester.

  • Forudsat at du har User-agent: * linje, så fungerer det, du har sendt, som beregnet i "Googles online robots.txt-tester". Hvis du har gået glip af brugeragentlinjen, rapporterer værktøjet en stak fejl: "Ingen brugeragent angivet". (?)
  • @MrWhite, ja, jeg tilføjede user-agent line. men det fungerer ikke som jeg forventer.
  • "det fungerer ikke som jeg forventer" - og hvad forventer du? Da jeg sagde, at det "fungerer som beregnet", mener jeg, at det opfylder de 3 kriterier, du har angivet. dvs. /us/en/videos Er tilladt, /de/en/videos ER blokeret og /users/mark Er tilladt. (?)
  • @MrWhite, nej. når jeg tester det på Googles værktøj, blokerer det dem alle. og det siger det /*/*/ regel er årsagen til blokering.
  • Inkluderer du skråstregpræfikset på dit input?

Forudsat at du har User-agent: * direktiv på første linje, så ser det ud, som du har indsendt, at fungere som beregnet i "Googles online robots.txt-test". I og med at den opfylder de 3 (eller flere) kriterier, du har angivet:

  1. example.com/us/en/videos ER tilladt
  2. example.com/de/en/videos ER SPÆRRET
  3. example.com/users/mark ER tilladt
  4. example.com/ ER tilladt
  5. example.com/about ER tilladt
  6. example.com/us/en/ (med eller uden skråstreg) IS tilladt
  7. example.com/gb/en/ (med eller uden skråstreg) IS tilladt
  8. example.com/fr/fr/ (med eller uden skråstreg) IS tilladt

I henhold til skærmbillederne nedenfor ...

1. eksempel.com/us/da/videoer

2. eksempel.com/de/da/videoer

3. eksempel.com/brugere / mærke

4. eksempel.com/

5. eksempel.dk/om

  • ok, nu ser jeg, hvad der er min fejl. Jeg testede det med https://sites.google.com/site/ezizdurdy/. undskyld at spilde din tid. : /

Jeg har ikke set ? tegn i en robots.txt-fil før. Er du sikker på, at du ikke mener at bruge $ i stedet for, hvilket betegner slutningen af ​​strengen?

Derudover skal din fil angive bruger-agent øverst for hvilke bots der skal påvirkes. Her er en revideret fil:

User-agent: * Disallow: /*? Disallow: /*/*/cart/ Disallow: /*/*/checkout/ Disallow: /*/*/ Allow: /*.css$ Allow: /*.js$ Allow: /us/en/ Allow: /gb/en/ Allow: /fr/fr/ 

Dette er tættere på, hvad du vil have. For kun at påvirke Googlebot skal du ændre User-agent: * til User-agent: Googlebot.

Men det ser ud til, at forskellige robots.txt-kontrolværktøjer læser det forskelligt. Googles værktøjsblokke /us/en/cart/for eksempel, mens technicalseos værktøj og seobook.com's værktøj begge tillader den samme URL. Ikke sikker på, hvordan man kan forene den ene.

  • Det ? er bare en bogstavelig ? - så dette ville matche webadresser, der indeholder en forespørgselsstreng (i tilfælde af CSS- og JS-filer kan dette muligvis bruges til at angive version / cache-busting). "teknisk seos værktøj" ser ud til ikke tillade den URL, da jeg prøvede, ikke "tillade" den? Selvom "seobook.com's værktøj" ser ud til at (forkert) tillade det. (?)
  • "Seobook.com's værktøj" ser ud til bare at behandle ethvert direktiv, og uanset hvad slutresultatet spytter, er det, det går med - hvilket (AFAIK) ikke er, hvordan nogen reel crawler opfører sig.

arbejdet for dig: Charles Robertson | Ønsker du at kontakte os?