Drupal 7에서 주석 / 응답 색인을 생성하지 않는 방법


9

Drupal 7을 사용하고 있으며 "noindex"메타 태그를 사용하여 http://example.com/comment/reply/43/738 이 검색 엔진에 의해 색인이 생성되는 것을 방지하려고합니다 .

robots.txt에서 다음 역할을 사용했지만 댓글 / 응답 페이지가 색인되고 있습니다.

Disallow: /comment/reply/

/ comment / reply / 페이지에 "noindex"메타 태그를 통합해야하는 템플릿 파일은 무엇입니까?


1
robots.txt파일 에 어떤 규칙을 작성 했습니까?
tostinni

@tostini : 나는 허용 안 사용했습니다 : / 의견 / 응답 /
Naweed Chougle

답변:


7

robots.txt에서이 코드를 사용할 수 있습니다.

User-agent: *
Disallow: /*comment

이것은 주석 이 포함 된 모든 URL을 무시합니다 .

/ comment가 포함 된 모든 URL을 무시하기 위해 다음을 사용할 수도 있습니다 .

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

이 작업을 수행 한 후 Google Robots.txt 검사기를 사용하여 작동하는지 확인하십시오 .


이것에 대해 어떻게 생각하십니까? google.co.in/support/forum/p/Webmasters/…
Naweed Chougle

Noindex는 메타 태그이므로 전체 페이지의 색인이 생성되지 않습니다. 이제 웹 마스터 도구를 사용하여 주석이 크롤링되지 않도록 설정하여 Google에서 색인화 된 링크를 제거 할 수 있습니다. 사이트 구성 >> 크롤러 액세스 >> URL 제거로 이동하십시오. 이것이 더 나은 해결책이라고 생각합니다.
Vivek R

웹 마스터 도구를 사용하여 URL을 삭제하면 / comment / reply /와 같은 패턴을 가진 새로운 URL이 나타납니다! 그리고 로봇 파일에서 Disallow : / comment / reply /를 사용하더라도 URL의 색인이 생성되었습니다.
Naweed Chougle

2
검색 엔진을 제거 할 시간을줍니다. 밤새 발생하지 않으므로 잠시 기다리십시오. 일주일 정도 소요될 수 있습니다.
Vivek R

앞에서 말했듯이 Disallow / comment / reply / ...를 사용한 후에도 URL 색인이 생성되었습니다. 외부 사이트에서 오는 회신 양식 링크로 인해 발생할 수 있습니다. 내 질문을 업데이트하고 메타 noindex 태그의 가능한 필요성에 대한 세부 정보를 포함 시켰습니다.
Naweed Chougle

4

테마의 template.php 또는 page.tpl.php에서 페이지의 URL을 확인하여 페이지가 주석 페이지인지 확인한 다음 메타 태그를 삽입하는 코드를 추가 할 수 있습니다.

template.php 함수 YOURTHEME_preprocess_html ()에서이 작업을 수행하거나 page.tpl.php 상단 근처에 삽입 할 수 있습니다. 추가 할 코드는 다음과 같습니다.

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

drupal_add_html_head ()를 참조하십시오 .


감사합니다, @jmarkel! 프로그래밍 방식으로 페이지가 example.com/comment/reply/32/409같은지 확인하는 데 도움을 줄 수 있습니까 ?. 그런 페이지에 대해서만 메타 noindex를 설정할 수 있습니까?
Naweed Chougle

1
여기에 문제가 있습니다-실제로 주석과 같은 노드 유형이 없습니다-주석을 달고있는 노드와 함께 사는 것 같습니다. 따라서 일반적으로 그것들을 구별하는 것은 불가능합니다. 주석의 퍼머 링크를 클릭하면 'comment /'로 시작하지만 내부적으로 해당 URL을 전달하지 않기 때문에 도움이되지 않는 URL이 나타납니다. 후속 페이지에서 "페이지"인수를 찾을 수 있다고 가정합니다 (즉, 여러 페이지의 주석이있는 경우). 여전히 호출기를 사용하여 주석과 다른 페이지를 구분해야합니다. 간단히 말해-어떻게
해야할지 모르겠다

지금은 @jmarkel, Google 웹 마스터의 URL 삭제 도구를 사용해야합니다. Matt Cutts 비디오 중 하나를 지나면 한 번 제거 된 URL이 다시 나타나지 않는 것 같습니다. 문제는 검색 결과에 새로운 것이 표시되는 것입니다!
Naweed Chougle

1

업데이트 : 다음은 작동 <meta name="robots" content="noindex,follow" />하며로 시작하는 경로를 통해 액세스 된 모든 페이지의 헤드 섹션에 인쇄 됩니다 comment. 이것은 jmarkel이 위에서 지적한 것처럼 comment / 3와 같은 페이지가 내부적으로 node / nid를 인수로 전달한다는 사실을 해결하기위한 것입니다.

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

arg 함수에 대한 유용한 주석도움으로 .

바라건대 이것은 결국 메타 태그 모듈에 의해 해결 될 것입니다. 기능 요청 이 있지만 모듈 작성자가이를 지원하고자하는지 아직 확실하지 않습니다.


[이전 의견] 방금 robots.txt를 사용하는 것이 답이 아니라는 것을 추가하고 싶었습니다. 이미 알고 있듯이을 사용하더라도 링크가 검색 결과에 계속 나타납니다 Disallow: /comment. robots.txt는 봇에게 해당 페이지를 크롤링하지 말라고 지시하지만 Google이 색인을 생성하지 않도록 지시하지 않기 때문입니다. 검색 엔진 최적화를위한 SEOmoz Robots.txt 및 메타 로봇 ​​모범 사례에 설명 된 대로 :

대부분의 경우, 크롤링 또는 인덱싱을 제한하는 방법으로 매개 변수 "noindex, follow"가있는 메타 로봇을 사용해야합니다.

Robots.txt로 차단-엔진에 지정된 URL을 크롤링하지 말고 페이지를 색인에 유지하여 결과로 표시 할 수 있음을 알려줍니다.

메타 색인이없는 차단-엔진에 방문 할 수 있지만 결과에 URL을 표시 할 수는 없습니다. (이것이 권장되는 방법입니다.) 따라서 noindex 메타 태그가 실제로 필요한 것입니다.


사실, @arjan, 내가 추가 세부 사항으로 작성한 의견 중 하나를 다시 설정했습니다. 검색 결과에서 원하지 않는 페이지에 대해 메타 noindex를 설정하는 방법을 찾고 있습니다.
Naweed Chougle

1
네, 당신이 100 % 확실하지 않은 것 같아서 그것이 정확하다고 덧붙이고 싶었습니다.)
arjan

@ProgrammingEnthusiast : 위 업데이트를 참조하십시오.
arjan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.