검색엔진 최적화의 기본 : 사이트맵(sitemap)의 중요성


검색엔진에 인덱스 되는것이야 말로 검색엔진 최적화의 궁극적인 목표이며 핵심이라고 볼수있습니다.

하지만 검색엔진 봇들은 사이트 깊숙이 파뭍혀 있는 링크를 찾기 힘들어 합니다.

만약 사이트의 메인페이지로부터 어떤 페이지로 가려고 하는데, 4번 이상을 클릭해서 들어가야 한다면 사용자도 찾기 힘들뿐더러, 검색엔진 봇(스파이더)들도 찾아가 페이지를 인덱스할 확률도 몹시 적어집니다.

그럼 어떻게 하는것이 검색엔진으로 하여금 페이지들을 찾기 쉽게 만드는 것일까요?

가장 좋은 방법은 네비게이션 메뉴에서 모든 페이지로의 이동이 가능하도록 만드는것이 최상책이지만, 이것은 언제까지나 규모가 작은 사이트의 경우이고, 규모가 큰 사이트의 경우는 간편한 네비게이션 메뉴와 더불어 좋은 사이트맵(sitemap)을 만드는 것입니다.

사용이 간편한 네비게이션 메뉴와 사이트맵을 생성하는 것이야 말로 검색엔진 봇에게 사이트 내에 있는 모든 링크를 인덱스 하도록 도와주는 것입니다.

 

사이트맵엔 두가지 종류가 있습니다.

사용자를 위한 사이트맵검색엔진에 등록하기 위한 사이트맵이 있습니다.


1. 사용자를 위한 사이트맵

보통 사이트맵이라고 하면 사용자가 사이트내에서 돌아다니다가 길을 잃었을때, 혹은 어떤 내용이 어디에 있는지 파악하기 쉽게 하기위해 사이트의 모든 링크들을 잘 서술해 놓은 페이지를 사이트맵이라고 합니다.

물론 이 사이트맵은 사용자를 위한 사이트맵이기도 하지만 한편으로는 검색엔진 봇을 위한 사이트맵이라고도 할수 있습니다.

사용자에겐 사이트의 구조를 잘 설명함과 동시에 검색엔진 봇에겐 사이트내에 있는 모든 링크들을 인덱스 할수 있도록 도와주는 역할을 합니다.

좋은 네비게이션을 가진 사이트의 메뉴바는 좋은 사이트맵 역할을 할것이며(텍스트 링크로 되어있을경우), 만약 메뉴바를 플래쉬로 만든경우엔 검색엔진 봇이 링크를 타고 넘어가는 것이 불가능 하므로 사이트 하단에 네비게이션을 텍스트링크로 따로 만들어 놓는것도 적절한 방법입니다.



2. 검색엔진에 등록하기 위한 사이트맵 (구글과 야후)

이것은 여러분들에게 약간 생소할수도 있고 굳이 알고있어야 하는건 아니지만, 검색엔진 최적화를 생각하신다면 반드시 필요한 부분입니다.

대체로 사이트내 모든 링크들을 나열해 만든 .txt 파일, 또는 xml feed(rss feed)가 이에 해당됩니다.


.txt파일의 예를 들자면 메모장을 하나 열어서 아래와 같이 작성하시면 됩니다.

검색엔진 최적화 : 사이트맵 샘플 - sitemap.txt

위와같이 작성한 후에 ftp를 사용해 사이트의 최상단 디렉토리에 업로드 시켜주면 됩니다.

예를들어 제 개인 홈페이지 같은경우엔 사이트맵이 http://www.bmlee.com/sitemap.txt 에 위치하고 있습니다.


rss feed 같은경우엔 블로그나 게시판을 사용하신다면 어렵지 않게 feed를 생성할수 있습니다.

예를들어 그누보들를 사용하시는 경우, 'http://www.사이트이름.com/게시판디렉토리/rss.php?bo_table=게시판이름' 이 rss feed의 주소입니다.

만약 태터툴즈를 사용하신다면 'http://www.사이트이름.com/rss 가 피드주소...라고는 하지만 사실 정확한 주소는 'http://www.사이트이름.com/rss/index.php' 입니다.

위처럼 사이트맵이 준비되는대로 구글과 야후에 등록하면 됩니다.

두가지 모두 있어야하는건 아니고, 둘중 아무거나 있으면 됩니다.

글이 길어지는 관계로 구글 웹마스터툴(http://www.google.com/webmasters/)과 야후(http://siteexplorer.search.yahoo.com/)에 사이트맵을 등록하는 방법은 담번에 알려드리겠습니다.



참고 :
검색엔진 최적화의 기본 : 사이트맵(sitemap)의 중요성
검색엔진 최적화의 기본 : 구글에 사이트맵 등록하기 1
검색엔진 최적화의 기본 : 구글에 사이트맵 등록하기 2
검색엔진 최적화의 기본 : 야후에 사이트맵 등록하기
이올린에 북마크하기(0) 이올린에 추천하기(0)
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 평상심

트랙백 보낼 주소 : http://www.seo-korea.com/trackback/9 관련글 쓰기

  1. 내 블로그를 검색엔진에 최적화 시키기

    2007/05/31 22:18
    삭제
    부제 : 당신의 블로그에 트래픽을 증가시키세요. (구글스럽게) 여기서 써내려갈 내용은 2007년 3월 블로그로 재 오픈하면서 그 동안 sb가 경험했던 검색 엔진 최적화라는 개념의 여러 시도들을 설명하고, 참조했던 자료들을 공유하는 글입니다. (* 우선 많은 블로거분들의 글을 참조했음을 밝히며, 블로그를 처음 접하시는 분들을 대상으로 하겠습니다.) 검색엔진 최적화에 대해서 제가 거창하게 쓸 위치는 아닙니다만, 블로거들이 자신의 생각과 아이디어를 혼자만..
  2. 검색엔진 최적화 웹사이트 만들기

    2009/03/08 22:49
    삭제
    요즘 틈틈히 정리하고 있는 숙제 하나. 불황에는 마케팅부서의 영역이 좁아진다. (쓸데 없이)돈쓰는 일 = 마케팅 부서의 업무라는 윗분들의 생각 때문에 새로운 일은 일단 머리속에 keeping. 그리하여 요즘 고민하는 것 중 하나. 온라인 플랫폼을 정비하여 컨텐츠를 노출이 용이한 형태로 재구성하려고 연구하고 있다. 서치 중에 발견한 팁 하나~! 사이트맵의 중요성을 새삼 깨닫게 해주는 글을 담아왔다. 좋은 정보를 알려주신 평상심님에게 감사의 인사를!!

댓글을 달아주세요

  1. 2007/04/12 11:20
    댓글 주소 수정/삭제 댓글
    그리고.. 깜빡하고 안썼는데요,
    검색엔진에 제출하는 사이트맵은 검색엔진 봇이 해당사이트를 방문했을때 어디를 가야할지 알려주는 역할을 합니다.
  2. 2007/04/26 19:02
    댓글 주소 수정/삭제 댓글
    그렇군요 저의 사이트도 검색엔진의 방문이 편하도록 손을 봐야 할듯 하네요..
    좋은 정보 감사합니다
    • 2007/04/27 16:17
      댓글 주소 수정/삭제
      방문 감사합니다.
      좋은 사이트를 운영하고 계시네요. 나중에 온라인으로 책살일 있으면 종종 들르도록 하죠. ^^
  3. 2007/11/27 12:01
    댓글 주소 수정/삭제 댓글
    안녕하세요.
    예전에도 보고 간 글인데..
    저 혼자 해보다가 구글싸이트맵이 잘 안되길래
    속상해서 댓글도 안달고 나갔었어요.ㅋ

    근데 구글은 저렇게 안하고 rss 주소로
    바로 등록하는거 맞죠?

    저는 그걸 몰라가지고..ㅜㅜ
    • 2007/11/28 00:01
      댓글 주소 수정/삭제
      구글 웹마스터 도구에는 rss 피드 이외에도 위와같은 .txt파일도 등록가능합니다. ^^;
  4. 김민
    2008/03/20 07:23
    댓글 주소 수정/삭제 댓글
    그누보드 사용자인데 rss.php 내용을 보니
    <?
    header("Location: 게시판디렉토리/rss.php?bo_table=게시판이름";);
    ?>
    요런식으로 되어 있는데요...각 게시판이 "20"개 정도 되는데 어떻게 올려야 되나요?

    <?
    header("Location: bbs/rss.php?bo_table=1_1";);
    header("Location: bbs/rss.php?bo_table=1_2";);
    header("Location: bbs/rss.php?bo_table=1_3";);
    ?>

    이런씩으로 추가해야 되나요?
    • 2008/03/23 21:41
      댓글 주소 수정/삭제
      이래저래 답글이 늦었네요. 괜시리 하는일이 많아서요 블로그에 신경을 별로 못쓰고 있습니다. -_-;

      rss.php 파일을 루트 디렉토리에 만들어 놓으시구,
      rss.php 파일안에
      <?
      header("Location: 게시판디렉토리/rss.php?bo_table=게시판이름" ) ;
      ?>
      위의 코드만 넣어주시구요, 웹마스터툴에 등록할때
      rss.php?bo_table=1_1
      rss.php?bo_table=1_2
      rss.php?bo_table=1_3
      ...
      이런식으로 20개를 등록하시면 됩니다.
      간단하게 말해서 루트에 있는 rss.php 파일이 '게시판디렉토리/rss.php' 파일로 리디렉트 해주는것입니다.

      그런데 요즘엔 header 커맨드가 안먹힐지도 몰라요.
      안해봐서 확실히 모르겠습니다. 구글 웹마스터툴이 자꾸만 업데이트가 되서요..
      만약 위의 방법이 안된다면,
      아래 방법을 써보세요. 요즘 제가 쓰고 있는 코드입니다.
      <?
      include_once("./_common.php";);

      $g4[board_table] = "g4_board";
      $bo_table = $_GET[bo_table];
      $g4[charset] = "utf-8";
      $g4[write_prefix] = "g4_write_";
      $g4[url] = "http://www.bmlee.com";
      $g4[bbs] = "bbs";

      include_once "lib/common.lib.php";
      include_once "include/inc_class.php";
      include_once "include/functions.php";
      include_once "include/var.php";

      $db = &new MySql($dbHost, $dbUser, $dbPass, $dbName);

      // 특수문자 변환
      function specialchars_replace($str, $len=0) {
      if ($len) {
      $str = substr($str, 0, $len);
      }

      $str = preg_replace("/&/", "&amp;", $str);
      $str = preg_replace("/</", "&lt;", $str);
      $str = preg_replace("/>/", "&gt;", $str);
      return $str;
      }

      $sql = " select gr_id, bo_subject, bo_page_rows, bo_read_level, bo_use_rss_view from $g4[board_table] where bo_table = '$_GET[bo_table]' ";
      $row = sql_fetch($sql);
      $subj2 = specialchars_replace($row[bo_subject], 255);
      $lines = 500;

      // 비회원 읽기가 가능한 게시판만 RSS 지원
      if ($row[bo_read_level] >= 2) {
      echo "비회원 읽기가 가능한 게시판만 RSS 지원합니다.";
      exit;
      }

      // RSS 사용 체크
      if (!$row[bo_use_rss_view]) {
      echo "RSS 보기가 금지되어 있습니다.";
      exit;
      }

      Header("Content-type: text/xml";);
      header("Cache-Control: no-cache, must-revalidate";);
      header("Pragma: no-cache";);

      $sql = " select gr_subject from $g4[group_table] where gr_id = '$row[gr_id]' ";
      $row = sql_fetch($sql);
      $subj1 = specialchars_replace($row[gr_subject], 255);

      echo "<?xml version=\"1.0\" encoding=\"$g4[charset]\"?>\n";
      echo "<rss version=\"2.0\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\">\n";
      echo "<channel>\n";
      echo "<title>".specialchars_replace("$config[cf_title] > $subj1 > $subj2";)."</title>\n";
      echo "<link>".specialchars_replace("$g4[url]/$g4[bbs]/board.php?bo_table=$_GET[bo_table]";)."</link>\n";
      echo "<description>테스트 버전 0.2 (2004-04-26)</description>\n";
      echo "<language>ko</language>\n";

      $sql = " select wr_id, wr_subject, wr_content, wr_name, wr_datetime, wr_option
      from $g4[write_prefix]$_GET[bo_table]
      where wr_is_comment = 0
      and wr_option not like '%secret%'
      order by wr_num, wr_reply limit 0, $lines ";
      $result = sql_query($sql);
      for ($i=0; $row=sql_fetch_array($result); $i++) {
      $file = "";

      if (strstr($row[wr_option], 'html'))
      $html = 1;
      else
      $html = 0;

      echo "<item>\n";
      echo "<title>".specialchars_replace($row[wr_subject])."</title>\n";
      echo "<link>".specialchars_replace("$g4[url]/$g4[bbs]/board.php?bo_table=$bo_table&wr_id=$row[wr_id]";)."</link>\n";
      echo "<description><![CDATA[".$file . conv_content($row[wr_content], $html)."]]></description>\n";
      echo "<dc:creator>".specialchars_replace($row[wr_name])."</dc:creator>\n";
      $date = $row[wr_datetime];
      // rss 리더 스킨으로 호출하면 날짜가 제대로 표시되지 않음
      $date = substr($date,0,10) . "T" . substr($date,11,8) . "+09:00";
      //$date = date('r', strtotime($date));
      echo "<dc:date>$date</dc:date>\n";
      echo "</item>\n";
      }

      echo "</channel>\n";
      echo "</rss>\n";
      ?>

      약간의 코드 수정이 불가피하긴 합니다만, 조금의 php 코딩을 할줄 아신다면 이해하시리라 생각합니다.
      실제 '게시판디렉토리/rss.php' 파일을 제 웹사이트에 맞게 수정한거거든요.

      그럼~

검색엔진 최적화의 기본 : 이미지와 플래쉬 (image와 flash) 
 

화려한 그래픽으로 만들어진 페이지는 검색엔진 최적화에 도움이 되지 않습니다.


웹디자이너들이 간혹 사이트 전체를 이미지 또는 플래쉬로 만드는 경우가 있습니다.

사용자의 눈을 즐겁게 하기위해 최대한 페이지를 화려하고 이쁘게 만든 사이트는
검색엔진 최적화에 대해서는 포기한 사이트라고 말해도 과언이 아닙니다.

만약 사이트의 규모가 엄청크고, 웬만한 사람들이면 누구나 다 알고 자주 방문하는 사이트라면 이야기가 달라지겠지만,
그렇지 않은경우, 검색엔진 최적화에 신경을 쓰시는 분이라면 플래쉬와 이미지를 가급적이면 피해야 합니다.

intro 페이지를 플래쉬나 이미지로 만들지 마십시요.
비용도 비쌀뿐 더러 사람들이 검색엔진에서 찾기도 힘들것입니다.

플래쉬나 이미지로 페이지 전체를 덮을경우, 텍스트는 거의 찾아보기 힘들게되며,
그 결과 검색엔진 봇(bot)들로 하여금 인덱스할 내용을 다 빼앗아 버리는 경우가 됩니다.

그래서 이미지를 많이 사용하는 경우
< img src="pda.jpg" alt="HP iPAQ hx4700">
위와같이 alt 태그를 반드시 사용해야 하며, 그렇지 않을 경우엔 이미지 사용을 피해야 합니다.

특히 플래쉬로 가동되는 메뉴 네비게이션은 검색엔진 최적화의 기준으로 봤을때 최악의 수준입니다.
플래쉬로 메뉴 네비게이션을 만들경우, 검색엔진 봇이 플래쉬 안에 들어있는 텍스트와 링크를 하나도 인식 못하게 되고
더 이상은 갈곳이 없다고 판단해서 그냥 돌아가게 됩니다.

메뉴 네비게이션은 되도록이면 텍스트로 만들어야 하며, 또 그렇게 해야지만 검색엔진 봇들이 링크를 인식하게 되고,
그 링크를 따라가서 그 다음 페이지를 인덱스 하게 됩니다.
이올린에 북마크하기(0) 이올린에 추천하기(0)
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 평상심

트랙백 보낼 주소 : http://www.seo-korea.com/trackback/4 관련글 쓰기

댓글을 달아주세요

  1. morefree
    2007/07/08 12:49
    댓글 주소 수정/삭제 댓글
    누군가 플래쉬도 인식할 수 있다고 하는 엉뚱한 소리를 하더군요. 가능한 것인지 또한 국내의 경우 주로 상단을 플래쉬 메뉴로 도배를 많이 하는데, 이경우 캡쳐해서 차라리 img 메뉴로 변경할 경우 얼마나 도움이 될지 궁금하군요.^^
    • 2007/07/09 01:04
      댓글 주소 수정/삭제
      제가 알기론 검색엔진 봇들이 플래쉬 인식 못합니다.
      간단하게 해당 페이지에서 오른쪽 마우스 클릭한후 소스보기를 해서 html 태그와 자바스크립트, stylesheet을 걸러내어 본다면 쉽게 알수 있죠.


      텍스트링크 보다는 못하지만, 차라리 이미지가 플래쉬보다 낫습니다.
      그나마 검색엔진 봇이 적어도 링크는 인식을 하니까요.
      alt 나 title 만 사용하신다면 더욱더 좋구요.


      그리고 만약 플래쉬의 사용이 불가피 할경우는 페이지 하단에 플래쉬 메뉴대신 텍스트로 링크모음을 만들어 놓는것도 좋은 방법입니다.
  2. morefree
    2007/07/10 08:38
    댓글 주소 수정/삭제 댓글
    네, 좋은 조언 감사합니다.^^
  3. morefree
    2007/08/06 09:41
    댓글 주소 수정/삭제 댓글
    ^______________^, ㅋㅋ 그런가요?
    감사합니다. 덕분에 나날히 발전하고 있습니다.
    적용하면 나중에 한번 보여드리죠.^^
    • 2007/08/07 04:29
      댓글 주소 수정/삭제
      궁금하군요, 적용하면 꼭 보여주시기 바랍니다. ^^
  4. 2007/08/09 10:21
    댓글 주소 수정/삭제 댓글
    비밀댓글 입니다
    • 2007/08/09 11:07
      댓글 주소 수정/삭제
      오.. 괜찮은데요?
      텍스트를 플래쉬 밑으로 깔아도 괜찮을거 같아보이는데, 그건 가능한가요?
      어째튼 축하드립니다.
      저도 새로운거 알게되서 고맙군요.


      이미 이런 툴을 쓰고 계실지 모르나, 영문으로 최적화를 하시니 http://developers.evrsoft.com/seotool/
      이곳을 방문하셔서 '모든 페이지'의 키워드 밀도를 조절해 보시고, 마지막 손질을 해서 다듬어 보세요. ^^
      핵심 키워드들의 밀도를 'optimal'로 맞춰만 놓으면 검색엔진에서 정말 잘 걸립니다.
      아쉽게도 한글은 안통하더라구요.


BLOG main image
검색엔진 최적화에 대한 모든것!!! by 평상심

카테고리

분류 전체보기 (23)
사이트내 최적화 (7)
사이트외 최적화 (2)
검색엔진 최적화 팁 (11)
검색엔진 최적화를 위한 CSS (1)
기타등등 (2)