[첫화면으로]UseModWiki소스수정/RobotsMetaTag

마지막으로 [b]

1. Robots Meta Tag
1.1. 헤더에 meta 태그 출력
1.1.1. 패치의 이유
1.1.2. 현재 설정된 허용/금지 기준
1.2. a 태그에 rel 속성 출력
1.2.1. 패치의 이유
1.2.2. 현재 설정된 허용/금지 기준
1.3. 부작용
1.4. wiki.pl 수정
1.5. 추가 업데이트 내역
1.6. 사용자 의견

1. Robots Meta Tag

검색엔진봇이 이 페이지를 저장할 것인지(index), 이 페이지에 있는 링크를 따라갈 것인지(follow)를 허용 또는 금지하는 태그를 출력한다.

1.1. 헤더에 meta 태그 출력

html출력의 head 부분에 검색로봇 관련 meta 태그를 출력한다.

예: 둘 다 금지하는 경우는 아래와 같은 라인이 출력에 포함된다.
<META NAME='robots' CONTENT='noindex,nofollow'/>

1.1.1. 패치의 이유

무엇보다도, 페이지의 이전 수정본(old revision)이 검색 엔진에 등록되는 것을 막기 위해서이다.

스패머가 페이지를 수정하거나 코멘트,트랙백 등을 이용하여 스팸을 남기고, 사용자가 페이지를 다시 복원하더라도, 스팸은 여전히 이전 수정본에 그대로 남아있게 된다. 스팸이 포함된 수정본이 검색엔진에 등록되면 다음과 같은 문제가 있다. (UseMod:WikiSpam에 있는 설명입니다.)

첫째, 구글이 페이지랭크를 계산할 때 스패머가 광고한 사이트 링크가 계속 집계가 되기 때문에, 스패머가 의도한 목적을 그대로 이루게 된다. 이 패치로 그것을 방지할 수는 있겠지만, 이건 스팸을 줄이는 방법이 되지는 않는다. (스패머는 이런 패치가 적용되었는지 아닌지에 관심을 두지 않을테니)

둘째, 스패머는 기존의 스팸 문구를 검색함으로써 스팸을 남길 장소를 찾는다고 한다. 따라서 이전 수정본을 검색 엔진에 노출되지 않게 함으로써 스패머가 이곳을 찾아내는 것을 조금이라도 막을 수 있다. 이런 면에서는 이 패치도 스팸을 줄이는 수단이 될 수 있을 것이다.

1.1.2. 현재 설정된 허용/금지 기준

허용/금지 기준은 다음과 같다.

UseMod:WikiPatches/RobotsNoFollow와, 좀 더 개선한 UseMod:WikiPatches/RobotsMetaTag의 내용 중에서 제일 깔끔하고 무난해 보이는 패치(UseMod:WikiPatches/RobotsNoFollow의 RobotsNoFollowD)를 적용하면서, 검색 결과와 역링크 출력 화면을 noindex/nofollow로 처리하기 위해 수정.

1.2. a 태그에 rel 속성 출력

위키 소스 내에서, ScriptLink()또는 ScriptLinkChar()를 불러서 a 태그를 출력하는 경우, 즉 의 경우에, 필요에 따라 "rel="nofollow" 를 추가한다.

1.2.1. 패치의 이유

헤더에 메타 태그를 붙이는 것 만으로는, 검색로봇이 저장할 필요가 없는 페이지로 "들어가는" 것을 막아주질 못한다.

  1. UseModWiki소스수정 페이지는 index, follow로 설정되어 있으니 저장하고, 링크들을 따라 탐색한다
  2. "변경내역(history) 보기"를 따라 들어감 - 들어갈 필요가 없다.
  3. 변경내역 화면은 저장하지 않고 (메타 태그의 noindex)
  4. 변경내역 화면에서 링크되어 있는 예전 수정본들의 링크도 따라가지 않는다. (메타 태그의 nofollow)

저장하지도 않고 그 안의 링크를 탐색하지도 않을 그런 페이지에 애초에 들어갈 필요가 없다. 검색엔진 입장에서도 낭비지만, 위키가 있는 서버 쪽에서도 무의미하게 화면을 출력해야 해서 낭비다. 특히나 (/섹션단위수정 패치를 적용한 이후로, 헤드라인에 붙어 있는 "edit"링크를 죄다 따라 들어가게 된다. (/History 페이지 같은 경우는 헤드라인만 약 100개다 -_-; 웹 서버 로그를 살펴보다가 구글봇이 이런 섹션 편집 링크를 죄다 들어가는 것을 보고 기겁한 것이 이 rel 속성 패치를 하게 된 계기)

1.2.2. 현재 설정된 허용/금지 기준

메타 태그의 경우와 유사하다.

1.3. 부작용

부작용까지는 아니지만, 저 메타 태그를 준수해주지 않는 검색엔진 봇에게는 소용 없음. 국내 검색 엔진들은 요즘 어떤가... -_-?

이미 구글 등 검색엔진에 들어가버린 수정본들을 제거해 줄 수는 없을 듯.

자기 위키의 이전 수정본들이 검색 엔진에 등록되지 않는 것이 오히려 싫은 사람도 있을 수 있겠다.

1.4. wiki.pl 수정

sub GetHtmlHeader {
    ...

### RobotsMetaTag - 이 단락 추가
    my $action = lc(&GetParam('action',''));
    my $search = &GetParam('search','').&GetParam('dosearch','').&GetParam('reverse','');
    if (
            ($search eq "") &&          # not search result
            ($action eq "" ||           # regular page browse
             $action eq "rc" ||         # recent changes
             $action eq "index")        # page list
       ) {
        $html .= "<META NAME='robots' CONTENT='index,follow'/>\n";
    } else {
        $html .= "<META NAME='robots' CONTENT='noindex,nofollow'/>\n";
    }
# 여기까지

### 사용자 정의 헤더
    $html .= $UserHeader;
    $html .= "\n";
    ...
}

ScriptLink()함수와 ScriptLinkClass() 수정

sub ScriptLink {
    my ($action, $text) = @_;
    my $rel;

    if ($action =~ /action=(.+?)\b/i) {
        if ((lc($1) ne "index") && (lc($1) ne "rc")) {
            $rel = 'rel="nofollow"';
        }
    }

    return "<a $rel href=\"$ScriptName" . &ScriptLinkChar() . "$action\">$text</a>";
}

sub ScriptLinkClass {
    my ($action, $text, $class) = @_;
    my $rel;

    if ($action =~ /action=(.+?)\b/i) {
        if ((lc($1) ne "index") && (lc($1) ne "rc")) {
            $rel = 'rel="nofollow"';
        }
    }

    return "<a $rel href=\"$ScriptName" . &ScriptLinkChar() . "$action\" class=\"$class\">$text</a>";
}

1.5. 추가 업데이트 내역

ext2.1h - wiki.pl/action=XXX 으로 연결되는 링크에 rel="nofollow" 속성을 출력하게 함

1.6. 사용자 의견

좀 전에 로그를 다시 봤는데, 여전히 섹션 편집 화면까지 들락거린다 -_-; 어째서일까...
-- Raymundo 2007-3-10 1:45 am

며칠 지나고 나니까 섹션 편집 링크는 좀 덜 들어오는 것 같은데, 여전히 페이지 편집 화면에는 많이 들어오네... 예전에 저장했던 캐쉬데이타를 통해 들어와서 그런가? -_-; 메타태그와 rel속성 둘 다 문제는 없어 보이는데 효과는 잘 모르겠습니다 -_- 구글에서 "페이지를 편집 중 site:gypark.pe.kr"처럼 찾아보면 나오는 게 없는 걸로 봐서 noindex는 잘 지켜지는 것 같기도 한데... 근데 site:nyxity.com 하면 많이 나오는 건 바벨은 유니코드 버전 직전까지 저 태그가 없었기 때문이라고 치고, site:jof4002.net의 경우는 그런 태그가 없는데도 안 나오네요. 알쏭달쏭~
-- Raymundo 2007-3-13 9:26 am
이름:  
Homepage:
내용:
 

위키위키분류
각주:
1. 검색이나 역링크를 출력할 때도 action=을 쓰게 했었어야 하는데... 이렇게 예외적인 경우가 또 뭐가 있는지 일일이 찾기가 힘들다

마지막 편집일: 2007-3-21 12:41 pm (변경사항 [d])
936 hits | Permalink | 변경내역 보기 [h] | 페이지 소스 보기