본문 바로가기
MAKESITE
무료 스캔 문의하기 로그인

점검 항목 · 검색 노출

sitemap.xml 없음

파일을 만드는 것은 쉽습니다. 어려운 것은 페이지가 늘고 줄어도 그 파일이 계속 맞는 상태로 남아 있게 하는 것입니다.

심각도 보통 검색 노출 무료 스캔 판정 항목 /check/sitemap-xml

01DEFINITION

한 줄로 말하면

사이트맵은 "이 사이트에 어떤 페이지가 있다"를 검색엔진에 직접 건네는 목록입니다. 메뉴를 따라가는 것만으로는 닿기 어려운 페이지 — 목록 깊숙한 상세, 방금 올린 글 — 이 색인되는 속도가 눈에 띄게 달라집니다. 페이지가 늘고 줄 때 손으로 고치는 파일로 두면 반드시 틀어지므로, 목록에서 자동으로 만들어 내보내는 것이 원칙입니다.

02RISK

없으면 무슨 일이 생기나

검색엔진은 링크를 따라가며 페이지를 찾습니다. 메뉴에서 세 번 눌러야 나오는 상세 페이지, 목록의 끝쪽에 밀려난 오래된 글, 방금 올려서 아직 아무도 링크하지 않은 페이지는 그 여정에서 뒤로 밀리거나 아예 닿지 않습니다. 사이트맵은 그 목록을 한 번에 건네는 지름길입니다.

없는 것보다 나쁜 것은 틀린 것입니다. 손으로 만든 사이트맵에는 이미 삭제한 페이지가 남아 있고 새로 만든 페이지는 빠져 있습니다. 검색엔진이 그 목록을 따라가 404 를 여러 번 만나면 목록 자체의 신뢰도가 떨어져, 정작 맞는 주소까지 늦게 처리됩니다.

리다이렉트가 실려 있는 경우도 같은 문제입니다. 사이트맵에 적는 주소는 최종 주소여야 합니다. 옮겨 간 주소를 계속 싣고 있으면 색인해 달라고 건넨 목록이 전부 다른 곳으로 넘기는 주소가 되어 크롤링 예산만 소모합니다.

03CHECK IT YOURSELF

직접 확인하는 방법

아래는 저희를 거치지 않고 지금 해 보실 수 있는 방법입니다. 결과를 저희에게 보내실 필요도 없습니다.

  1. 01
    파일이 열리는지 본다

    가장 흔한 주소부터 확인합니다. XML 이 나오면 정상이고, 404 나 HTML 오류 페이지가 나오면 없는 것입니다.

    $ curl -s https://example.com/sitemap.xml | head -n 5
    <?xml version="1.0" encoding="UTF-8"?>
    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
      <url><loc>https://example.com/</loc></url>
  2. 02
    몇 개가 들어 있는지 세어 본다

    실제 페이지 수와 크게 차이가 나면 목록이 오래된 것입니다. 상품이 200개인데 사이트맵에 30개만 있으면 나머지는 스스로 찾아지기를 기다리는 상태입니다.

    $ curl -s https://example.com/sitemap.xml | grep -c "<loc>"
  3. 03
    실린 주소가 실제로 200 인지 확인한다

    목록에서 몇 개를 뽑아 응답 코드를 확인합니다. 404 나 301 이 섞여 있으면 그만큼 크롤링 예산이 낭비되고 있습니다.

    $ curl -s https://example.com/sitemap.xml \
      | grep -oP '(?<=<loc>)[^<]+' | head -n 20 \
      | xargs -I{} curl -s -o /dev/null -w "%{http_code} {}\n" {}
  4. 04
    서치 콘솔에 제출돼 있는지 본다

    파일이 있어도 제출하지 않으면 발견이 늦어집니다. 서치 콘솔의 사이트맵 화면에서 마지막으로 읽어 간 날짜와 발견된 주소 수를 확인하십시오.

04HOW TO FIX

고치는 방법

서버 환경에 따라 적을 자리가 다릅니다. 아래는 가장 흔한 구성 기준이고, 적용 전에 현재 설정을 백업하십시오.

목록에서 자동으로 만든다

이것이 이 항목의 핵심입니다. 파일을 손으로 쓰지 말고, 페이지 목록을 갖고 있는 곳에서 뽑아 내보내십시오. 저희 사이트맵도 상품 테이블을 그대로 읽어 만듭니다. 상품을 하나 숨기면 사이트맵에서도 그 순간 빠집니다.

# 정적 파일이 아니라 라우트로 내보낸다
RewriteRule ^sitemap\.xml$ ops/index.php?r=sitemap [QSA,L]
CMS 를 쓴다면 플러그인이나 내장 기능을 켠다

워드프레스, 그누보드 같은 설치형은 대부분 사이트맵 생성 기능을 갖고 있거나 널리 쓰이는 플러그인이 있습니다. 직접 만들 이유가 없습니다.

robots.txt 에 위치를 적는다

한 줄이면 크롤러가 스스로 찾아갑니다. 절대주소로 적어야 하고, 도메인을 옮기면 이 줄도 같이 바뀌어야 합니다.

Sitemap: https://example.com/sitemap.xml
넣지 말아야 할 것을 뺀다

토큰이 들어간 주소, 로그인해야 보이는 페이지, 내용이 거의 없는 폼 페이지는 싣지 않습니다. 색인해 달라고 내미는 목록이므로, 색인되면 곤란한 것과 색인돼도 소용없는 것은 빼는 것이 맞습니다.

주의. lastmod 를 넣을 때는 그 값이 실제로 내용이 바뀐 시각인지 확인하십시오. 데이터베이스의 수정 시각을 그대로 쓰면 가격 한 번 고친 것이 페이지 전체가 갱신된 것으로 보고됩니다. 틀린 lastmod 는 없는 것보다 나쁩니다.

05FAQ

자주 묻는 질문

사이트맵을 넣으면 검색 순위가 올라가나요

순위가 오르는 것이 아니라 발견이 빨라집니다. 사이트맵은 이런 페이지가 있다고 알려 주는 목록일 뿐이고, 그 페이지가 좋은지 나쁜지는 내용이 정합니다. 다만 발견되지 않은 페이지는 순위 자체가 없으므로, 출발선에 서는 일이라고 보시면 됩니다.

페이지가 몇 개 안 되는 소개 사이트에도 필요한가요

효과는 작습니다. 페이지가 열 개 남짓이고 전부 메뉴에서 한 번에 닿는다면 크롤러가 알아서 다 찾습니다. 다만 만드는 비용도 거의 없고, 나중에 게시판이나 상세 페이지가 늘어날 때 이미 있는 편이 낫습니다.

주소가 아주 많으면 어떻게 하나요

한 파일에 5만 개, 압축 전 50MB 가 상한입니다. 넘으면 여러 파일로 나누고 그 목록을 가리키는 색인 사이트맵을 하나 둡니다. 구조로 나누면 관리도 쉬워져서, 상품과 게시글을 따로 두는 방식이 많이 쓰입니다.

priority 와 changefreq 는 꼭 적어야 하나요

적지 않아도 됩니다. 구글은 이 두 값을 사실상 참고하지 않는다고 밝힌 바 있고, 실제 크롤링 빈도는 페이지가 얼마나 자주 바뀌는지를 관찰해 정합니다. 적더라도 무해하지만 여기에 시간을 들일 이유는 없습니다.
여기까지는 항목 일반론입니다. 무엇이고 왜 문제이며 어떻게 고치는지는 감출 이유가 없어 그대로 적었습니다. 리포트에 들어가는 것은 귀사 사이트에서 실제로 어떤 값이 나왔는지 — 어느 주소의 어느 응답인지, 그 환경에서 어떤 순서로 적용해야 하는지, 예상 공수가 얼마인지입니다. 이 페이지만 보고 직접 고치셔도 되고, 실제로 그러시라고 적어 두었습니다.

GET STARTED

내 사이트는
이 항목을 통과할까요

주소만 넣으시면 이 항목을 포함해 25가지를 판정해 점수와 실패 개수를 보여 드립니다. 로그인도, 소유 확인도 필요 없습니다 — 전부 밖에서 관찰만 하는 항목이기 때문입니다.