Jak komentarz / odpowiedź noindex w Drupal 7

9

Używam Drupala 7 i próbuję użyć metatagu „noindex”, aby zapobiec indeksowaniu http://example.com/comment/reply/43/738 przez wyszukiwarki.

Strona komentarza / odpowiedzi jest indeksowana, mimo że użyłem następującej roli w pliku robots.txt:

Disallow: /comment/reply/

W jakim pliku szablonu muszę umieścić metatag „noindex” dla / comment / reply / pages?

Naweed Chougle
źródło
1
Jaką zasadę zapisałeś w swoim robots.txtpliku?
tostinni
@tostini: Użyłem Disallow: / comment / reply /
Naweed Chougle

Odpowiedzi:

7

Możesz użyć dowolnego z tego kodu w pliku robots.txt:

User-agent: *
Disallow: /*comment

Spowoduje to zaniedbanie każdego adresu URL zawierającego komentarz .

Możesz również użyć następujących elementów, aby pominąć każdy adres URL zawierający / komentarz .

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

Po wykonaniu tej czynności sprawdź, czy działa, czy nie, korzystając z narzędzia Google Robots.txt .

Vivek R.
źródło
Co o tym myślisz? google.co.in/support/forum/p/Webmasters/…
Naweed Chougle
Ponieważ Noindex jest metatagiem, nie będzie można zaindeksować całej strony. Teraz wyłączono indeksowanie komentarzy, aby można było usunąć indeksowane linki z Google za pomocą narzędzi dla webmasterów. przejdź do konfiguracji strony >> dostęp do robota >> Usuń adres URL. Myślę, że będzie to lepsze rozwiązanie.
Vivek R,
Po usunięciu adresów URL za pomocą narzędzi dla webmasterów pojawiają się nowe z tym samym wzorem / komentarzem / odpowiedzią /! Adresy URL zostały zindeksowane, mimo że w pliku robots użyto Disallow: / comment / reply /.
Naweed Chougle,
2
daj wyszukiwarce trochę czasu na usunięcie ... to się nie stanie z dnia na dzień, więc poczekaj trochę czasu ... może to potrwać około tygodnia.
Vivek R,
Jak powiedziałem wcześniej, adresy URL były indeksowane nawet po użyciu Disallow / comment / reply / .... Może się tak zdarzyć z powodu linków do formularza odpowiedzi pochodzącego z zewnętrznych stron. Zaktualizowałem moje pytanie i zamieściłem szczegółowe informacje na temat możliwej potrzeby użycia metatagu noindex.
Naweed Chougle,
4

W szablonie theme.php motywu lub page.tpl.php możesz sprawdzić adres URL strony, aby sprawdzić, czy strona jest stroną komentarza, a następnie dodać kod, który wstawi metatag.

Możesz to zrobić w funkcji template.php YOURTHEME_preprocess_html () lub wstawić go gdzieś u góry strony page.tpl.php. Kod do dodania byłby mniej więcej taki:

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

Zobacz drupal_add_html_head () .

jmarkel
źródło
Dzięki, @jmarkel! Czy możesz mi pomóc programowo sprawdzić, czy strona jest podobna do: example.com/comment/reply/32/409 .... żebym mogła ustawić meta noindex tylko dla takich stron?
Naweed Chougle
1
Oto problem - tak naprawdę nie ma żadnego typu węzła jako komentarza - wydają się żyć tylko z węzłami, które komentują. Tak naprawdę nie jest możliwe ogólne ich rozróżnienie. Jeśli klikniesz link bezpośredni komentarza, otrzymasz adres URL rozpoczynający się od „komentarza /”, ale to nie pomaga, ponieważ nie przenoszą tego adresu wewnętrznie. Przypuszczam, że możesz poszukać argumentu „strona” na kolejnych stronach (tj. Gdy jest więcej niż jedna strona komentarzy), ale nadal musisz rozróżniać komentarze i inne strony za pomocą pagera. Krótko mówiąc - nie jestem pewien, jak to zrobić ...
jmarkel
Na razie @jmarkel będę musiał żyć z narzędziem do usuwania adresów URL dla webmasterów Google. Przechodząc do jednego z filmów Matta Cuttsa, wydaje się, że usunięty adres URL nie pojawi się ponownie. Problem polega na tym, że widziałem nowe pojawiające się w wynikach wyszukiwania!
Naweed Chougle,
1

Aktualizacja : następujące działa, drukuje <meta name="robots" content="noindex,follow" />w sekcji nagłówka wszystkich stron, do których można uzyskać dostęp za pomocą ścieżki rozpoczynającej się od comment. Ma to obejść fakt, że strona taka jak komentarz / 3 wewnętrznie przenosi węzeł / nid jako argumenty, jak jmarkel wskazał powyżej.

<?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');
  }
}

Za pomocą pomocnego komentarza na temat funkcji arg .

Mamy nadzieję, że w końcu zostanie to rozwiązane przez moduł Meta Tags - pojawiło się żądanie funkcji , ale nie jest jeszcze jasne, czy autor modułu chce to wesprzeć.


[Mój poprzedni komentarz] Chciałem tylko dodać, że użycie robots.txt nie jest odpowiedzią - jak już zauważyłeś, linki wciąż pojawiają się w wynikach wyszukiwania pomimo użycia Disallow: /comment. Jest to oczekiwane, ponieważ robots.txt mówi botowi, aby nie indeksował tych stron, ale nie informuje Google, aby go nie indeksował. Jak wyjaśniono w SEOmoz Robots.txt i Meta Robots Najlepsze praktyki dotyczące optymalizacji pod kątem wyszukiwarek :

W większości przypadków meta roboty o parametrach „noindex, follow” powinny być stosowane jako sposób ograniczenia przeszukiwania lub indeksowania.

Blokuj przy użyciu pliku Robots.txt - informuje silniki, że nie powinny indeksować podanego adresu URL, ale informuje je, że mogą zachować stronę w indeksie i wyświetlić ją w wynikach.

Blokuj za pomocą Meta NoIndex - informuje silniki, które mogą odwiedzić, ale nie mogą wyświetlać adresu URL w wynikach. (Jest to zalecana metoda) Tak więc naprawdę potrzebujesz metatagu noindex, którego szukasz.

arjan
źródło
To prawda, @arjan, odtworzyłeś jeden z moich komentarzy z dodatkowymi szczegółami. Szukam sposobu na ustawienie meta noindex dla stron, których nie chcę w wynikach wyszukiwania.
Naweed Chougle,
1
Tak, wyglądało na to, że nie jesteś w 100% pewien, więc chciałem dodać, że to prawda;)
arjan
@ProgrammingEnthusiast: patrz aktualizacja powyżej.
arjan