Wie man einen Kommentar / eine Antwort in Drupal 7 nicht indiziert

9

Ich verwende Drupal 7 und versuche, das Meta-Tag "noindex" zu verwenden, um zu verhindern, dass http://example.com/comment/reply/43/738 von Suchmaschinen indiziert wird.

Die Kommentar- / Antwortseite wird indiziert, obwohl ich in robots.txt die folgende Rolle verwendet habe:

Disallow: /comment/reply/

In welche Vorlagendatei muss ich das Meta-Tag "noindex" für / comment / reply / pages einfügen?

Naweed Chougle
quelle
1
Welche Regel haben Sie in Ihre robots.txtDatei geschrieben?
Tostinni
@tostini: Ich habe Disallow verwendet: / comment / reply /
Naweed Chougle

Antworten:

7

Sie können jeden dieser Codes in robots.txt verwenden:

User-agent: *
Disallow: /*comment

Dadurch wird jede URL, die einen Kommentar enthält, vernachlässigt .

Sie können auch Folgendes verwenden, um jede URL zu vernachlässigen, die / comment enthält .

User-agent: *
Disallow: /comment/reply
User-agent: *
Disallow: /comment

Überprüfen Sie anschließend mit dem Google Robots.txt-Checker , ob es funktioniert oder nicht .

Vivek R.
quelle
Was denkst du darüber? google.co.in/support/forum/p/Webmasters/…
Naweed Chougle
Da Noindex das Meta-Tag ist, wird verhindert, dass die gesamte Seite indiziert wird. Jetzt haben Sie das Crawlen der Kommentare deaktiviert, sodass Sie die indizierten Links mithilfe der Webmaster-Tools von Google entfernen können. Gehen Sie zur Site-Konfiguration >> Crawler-Zugriff >> URL entfernen. Ich denke, dies ist die bessere Lösung.
Vivek R
Nachdem ich die URLs mit den Webmaster-Tools entfernt habe, werden neue mit demselben Muster / Kommentar / Antwort / angezeigt! Und die URLs wurden indiziert, obwohl Disallow: / comment / reply / in der Robots-Datei verwendet wurde.
Naweed Chougle
2
Geben Sie der Suchmaschine etwas Zeit zum Entfernen. Es wird nicht über Nacht geschehen. Warten Sie also einige Zeit. Möglicherweise dauert es eine Woche oder so.
Vivek R
Wie ich bereits sagte, wurden die URLs indiziert, selbst nachdem ich Disallow / comment / reply / .... verwendet hatte. Dies kann aufgrund von Links zum Antwortformular geschehen, die von externen Websites stammen. Ich habe meine Frage aktualisiert und Details zur möglichen Notwendigkeit des Meta-Noindex-Tags hinzugefügt.
Naweed Chougle
4

In der template.php Ihres Themas oder in page.tpl.php können Sie die URL der Seite überprüfen, um festzustellen, ob es sich bei der Seite um eine Kommentarseite handelt, und dann Code hinzufügen, der das Meta-Tag einfügt.

Sie können dies in der template.php-Funktion YOURTHEME_preprocess_html () tun oder irgendwo oben auf page.tpl.php einfügen. Der hinzuzufügende Code wäre ungefähr so:

    <?php
      $element = array(
        '#tag' => 'meta', 
        '#attributes' => array(
          'property' => 'robots',
          'content' => 'noindex',
        ),
      );
    drupal_add_html_head($element, 'robots');
?>

Siehe drupal_add_html_head () .

jmarkel
quelle
Danke, @jmarkel! Können Sie mir helfen, programmgesteuert zu überprüfen, ob die Seite ungefähr so lautet: example.com/comment/reply/32/409 .... damit ich den Meta-Noindex nur für solche Seiten festlegen kann?
Naweed Chougle
1
Hier ist das Problem - es gibt wirklich keinen solchen Knotentyp wie einen Kommentar - sie scheinen nur mit den Knoten zu leben, die sie kommentieren. Es ist also nicht wirklich möglich, sie generisch zu unterscheiden. Wenn Sie auf den Permalink eines Kommentars klicken, erhalten Sie eine URL, die mit 'comment /' beginnt. Dies hilft jedoch nicht, da diese URL nicht intern enthalten ist. Ich nehme an, Sie könnten auf nachfolgenden Seiten nach dem Argument "Seite" suchen (dh wenn es mehr als eine Seite mit Kommentaren gibt), aber Sie müssen immer noch mit einem Pager zwischen Kommentaren und anderen Seiten unterscheiden. Lange
Rede,
Im Moment, @jmarkel, muss ich mit dem URL-Entfernungstool des Google-Webmasters leben. Wenn Sie sich eines der Videos von Matt Cutts ansehen, wird eine einmal entfernte URL anscheinend nicht wieder angezeigt. Das Problem ist, dass ich neue in den Suchergebnissen gesehen habe!
Naweed Chougle
1

Update : Das Folgende funktioniert, es wird <meta name="robots" content="noindex,follow" />im Kopfbereich aller Seiten gedruckt, auf die über einen Pfad zugegriffen wird, der mit beginnt comment. Dies dient dazu, die Tatsache zu umgehen, dass eine Seite wie comment / 3 intern node / nid als Argumente enthält, wie oben erwähnt.

<?php
function metarobots_comment_help() {
  $url_components = explode('/', request_uri());
  if ($url_components[1] == 'comment') {
    $elements = array(
      '#tag' => 'meta',
      '#attributes' => array(
        'name' => 'robots',
        'content' => 'noindex,follow',
      ),
    );
   drupal_add_html_head($elements, 'robots');
  }
}

Mit Hilfe eines hilfreichen Kommentars zur arg-Funktion .

Hoffentlich wird dies irgendwann vom Meta-Tags-Modul behoben - es gibt eine Funktionsanforderung , aber es ist noch nicht klar, ob der Modulautor dies unterstützen möchte.


[Mein vorheriger Kommentar] Ich wollte nur hinzufügen, dass die Verwendung von robots.txt nicht die Antwort ist - wie Sie bereits bemerkt haben, werden trotz der Verwendung weiterhin Links in den Suchergebnissen angezeigt Disallow: /comment. Dies wird erwartet, da robots.txt den Bot anweist, diese Seiten nicht zu crawlen, Google jedoch nicht anweist, sie nicht zu indizieren. Wie unter SEOmoz Robots.txt und Meta Robots Best Practices für die Suchmaschinenoptimierung erläutert :

In den meisten Fällen sollten Metaroboter mit den Parametern "noindex, follow" verwendet werden, um das Crawlen oder die Indexierung einzuschränken.

Blockieren mit Robots.txt - Dies weist die Engines an, die angegebene URL nicht zu crawlen, sondern sie sollen die Seite im Index behalten und in den Ergebnissen anzeigen.

Mit Meta NoIndex blockieren - Hiermit wird mitgeteilt, dass Engines besucht werden können, die URL jedoch nicht in den Ergebnissen angezeigt werden darf. (Dies ist die empfohlene Methode.) Das Noindex-Meta-Tag, nach dem Sie suchen, ist also genau das, was Sie brauchen.

Arjan
quelle
Das stimmt, @arjan, Sie haben einen der Kommentare, die ich gemacht habe, mit zusätzlichen Details wiederholt. Ich suche nach einer Möglichkeit, den Meta-No-Index für die Seiten festzulegen, die ich nicht in den Suchergebnissen haben möchte.
Naweed Chougle
1
Ja, es schien, dass Sie nicht 100% sicher waren, also wollte ich hinzufügen, dass es richtig ist;)
Arjan
@ProgrammingEnthusiast: siehe Update oben.
Arjan