sitemap.html? sitemap.xml 사이트맵!

Sitemap?

Sitemap은 웹마스터가 크롤링에 사용할 수 있는 사이트의 페이지에 대한 정보를 검색 엔진에 알리는 손쉬운 방법입니다. Sitemap의 가장 간단한 형식은 검색 엔진에서 사이트를 보다 지능적으로 크롤링할 수 있도록 각 URL에 대한 추가 메타데이터(마지막 업데이트된 날짜, 변경 빈도, 사이트의 다른 URL에 상대적인 중요도)와 함께 사이트에 대한 URL을 나열하는 XML 파일입니다.

웹크롤러는 보통 해당 사이트 및 기타 사이트의 링크에서 페이지를 검색합니다.Sitemap은 해당 데이터를 보완하여 Sitemap을 지원하는 크롤러가 해당 Sitemap에 있는 모든 URL을 선택하고 관련 메타데이터를 사용하여 이들 URL에 대해 파악할 수 있도록 합니다.Sitemap 프로토콜을 사용하더라도 웹페이지가 반드시 검색 엔진에 포함되는 것은 아니지만 이를 통해 웹크롤러가 귀하의 사이트를 보다 효과적으로 크롤링하기 위한 힌트를 얻을 수 있습니다.

Sitemap 0.90은 Attribution-ShareAlike Creative Commons License의 약관에 따라 제공되며 Google, Yahoo! 및 Microsoft의 지원을 비롯하여 널리 채택되고 있습니다.

sitemaps.org 에서 이야기 하는 Sitemap의 의미

Sitemap 은 사이트의 웹페이지 등을 나열하는 파일로 사이트 콘텐츠 구성을 구글, 네이버, 다음, Bing 등 다양한 검색 엔진에 알리는데 사용되는 파일입니다. 예전에는 웹페이지만을 이야기 했지만 최근에는 사이트에 있는 페이지 외에도, 동영상 및 이미지, 기타 파일과 각 관계에 관한 정보를 제공할 수 있습니다. 검색엔진은 이 파일을 읽고 사이트를 크롤링하여 검색 요청에 대응하기 위한 인덱스를 만들게 됩니다. 쉽게 말해서 사이트맵은 나의 사이트에서 중요하다고 생각하는 페이지와 파일을 검색엔진에 전달하여 검색 결과에 노출되게 하기 위한 기초적인 데이터입니다.

반대로 이야기하면 나의 웹사이트를 검색엔진에 노출되게 하기 위한 가장 편리한 방법이 사이트맵을 제작하여 검색엔진에 제공하는 것입니다. 조금 딱딱한 내용이지만 이런 사이트맵에 관한 내용은 글로벌 검색엔진 업체들의 협약으로 만들어졌습니다. 반대로 이야기하면 자기들이 좀 더 쉽게 검색할 데이터를 얻기 위해서 만들었다고 봐도 되지만, 그 덕택에 새로운 자료를 검색엔진에 노출하기가 더 용이해지기도 하였습니다. 구글, 야후, 마이크로소프트(빙) 등이 채택한 사이트맵 표준은 sitemaps.org 에 정의되어 있습니다.

Sitemap 만들기

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
   <url>
      <loc>http://www.example.com/</loc>
      <lastmod>2005-01-01</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.8</priority>
   </url>
</urlset> 

위 샘플코드를 보시면 쉽게 이해가 되겠지만 URL(절대경로)과 페이지가 마지막으로 업데이트된 날짜, 페이지 변경 빈도, 페이지의 중요성을 부가 정보로 추가할 수 있습니다. URL 외의 내용은 생략이 가능하며 최근의 매우 똑똑해진 검색엔진(구글 이라든가 google 이라든가..)은 해당 내용이 없어도 자신이 만든 기준으로 크롤링을 하고 중요도를 판단하고 있습니다. 실제로 구글은 공식적으로 <changefreq> 값과 <priority>값은 무시하기 때문에 사이트맵에 넣지 않도록 안내하고 있습니다.

사이트맵은 위 샘플코드 처럼 XML로 제작하는 것이 일반적입니다. 다만 블로그의 경우 RSS, mRSS, Atom와 같은 표준 feed관리 코드로 검색엔진에 등록이 가능합니다. 그외에 지원하는 포맷은 TEXT입니다. 단순 URL을 한줄에 하나씩 넣은 txt 파일을 사이트맵으로 사용할 수 있습니다. 하지만 대부분의 경우 XML포맷을 이용합니다.

또한 사이트맵의 XML 파일 안에 별도의 XML을 포함시킬 수 있습니다. 이것은 개발 운영 관점에서 매우 유용합니다. 프로그램으로 등록 / 관리되는 콘텐츠가 있다면(보통은 상품목록과 같은 것들이 해당됩니다.) 해당 콘텐츠의 URL만 별도의 XML로 일단위/주단위/월단위 등 주기적으로 생성하여 관리하고, 고정된 콘텐츠의 URL 묶음의 XML로 별도로 관리하면 굉장히 관리가 편리해 집니다. 또한 이벤트와 같이 freq가 높은 콘텐츠의 경우 daily로 관리한다면 검색엔진에 등록/관리하기가 유용해집니다. 또한 용량이 큰 경우 압축하여 관리할 수 있습니다. 한개의 사이트맵 파일은 50MB, 50,000개 이하의 URL만 가져야 합니다.

<?xml version="1.0" encoding="UTF-8"?>
  <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <sitemap>
      <loc>http://www.example.com/sitemap1.xml.gz</loc>
    </sitemap>
    <sitemap>
      <loc>http://www.example.com/sitemap2.xml.gz</loc>
    </sitemap>
  </sitemapindex> 

Sitemap 등록

사이트맵을 만드는 것은 익숙하지 않은 개발자에게는 꽤 오류를 만드는 작업입니다. 이것은 XML 파일을 만들면서 URL등의 이스케이프 처리가 익숙하지 않아서 발생하는 문제인데 작업 후 인터넷으로 무료 이용 가능한 무료 XML 사이트맵 확인기와 같은 서비스를 이용하여 검사하는 것이 좋습니다.

사이트맵의 등록은 검색엔진들이 운영하는 search consol, webmaster tools 와 같은 서버스에 등록하거나, 웹 사이트 root에 robots.txt 에 아래 샘플코드와 같이 삽입하여 처리합니다.

User-agent: *
Allow: /

Sitemap: http://www.example.com/sitemap.xml

Sitemap이 필요하지 않은 경우

하지만 사이트맵 파일이 전혀 필요치 않은 경우도 있습니다.

  1. 사이트의 크기가 적당히 작은 경우, 총 페이지가 500개 이하인 경우 특별히 만들어서 제공할 필요가 없습니다.
  2. 사이트의 모든 페이지들이 유기적으로 링크되어 있어 검색엔진의 크롤러가 직접 접속하여 확인이 가능한 경우
  3. 외부에 알려진 서비스로 제작된 사이트의 경우 (예를 들면 Wix와 같은 경우 별도의 작업이 필요 없습니다.)

특히 2번의 경우를 주목하여야 합니다. 우리가 만드는 서비스는 내부의 링크를 유기적으로 관리하여 검색엔진이 직접 크롤이 가능하도록 설계할 필요가 있습니다. 기회가 되면 이 내용으로 별도의 내용을 포스팅하겠습니다.

댓글을 남겨주시거나 메일을 부탁드립니다.