단순한 URL 구조 유지하기

사이트의 URL 구조는 가능한 한 단순해야 합니다. 콘텐츠를 정리하여 URL을 논리적이고 가장 이해하기 쉬운 방식으로 구성하는 것이 좋습니다.

가능하면 URL에 긴 ID 숫자보다는 읽을 수 있는 단어를 사용하세요.

권장: 간단하고 설명이 포함된 URL

http://en.wikipedia.org/wiki/Aviation

권장하지 않음: 복잡하고 설명할 수 없는 URL

http://www.example.com/index.php?id_sezione=360&sid=3a5ebc944f41daa6f849f730f1

URL에 구두점을 사용해 보세요. 사용자와 검색엔진이 URL에 포함된 개념을 더 쉽게 식별할 수 있습니다.

권장: 키워드가 구두점으로 구분된 URL

http://www.example.com/green-dress.html

권장하지 않음: 키워드가 통합된 URL

http://www.example.com/greendress.html

URL에 밑줄(_) 대신 하이픈(-)을 사용하는 것이 좋습니다.

권장: 하이픈(-):

http://www.example.com/summer-clothing/filter?color-profile=dark-grey

권장하지 않음: 밑줄(_)

http://www.example.com/summer_clothing/filter?color_profile=dark_grey

여러 개의 매개변수를 포함하고 있는 URL과 같이 지나치게 복잡한 URL은 동일하거나 유사한 사이트 콘텐츠를 가리키는 URL을 불필요하게 많이 생성하므로 크롤러에 문제를 일으킬 수 있습니다. 그 결과 Googlebot이 필요 이상의 대역폭을 소비하거나 사이트에서 모든 콘텐츠의 색인을 완전히 생성하지 못할 수 있습니다.

문제의 일반적인 원인

URL의 수가 불필요하게 많은 데에는 여러 원인이 있을 수 있습니다. 예를 들면 다음과 같습니다.

  • 항목 모음 추가 필터링: 많은 사이트에서 동일한 항목 또는 검색결과 모음을 다양한 버전의 보기로 제공하여 사용자가 정의된 기준(예: 해변 호텔 보여줘)을 사용하여 이러한 모음을 필터링할 수 있도록 합니다. 그런데 헬스클럽이 있는 해변가 호텔과 같은 필터링 기준을 추가하면 사이트의 URL 수(데이터 보기)가 폭발적으로 증가합니다. Googlebot은 각 호텔 페이지로 이동 가능한 목록 중 몇 개만 보면 되기 때문에 약간씩 다른 호텔 목록을 많이 만들면 목록이 중복됩니다. 예:
    • '특가'의 호텔 시설:
      http://www.example.com/hotel-search-results.jsp?Ne=292&N=461
    • '특가'의 해변 호텔 시설:
      http://www.example.com/hotel-search-results.jsp?Ne=292&N=461+4294967240
    • '특가'의 헬스클럽이 있는 해변 호텔 시설:
      http://www.example.com/hotel-search-results.jsp?Ne=292&N=461+4294967240+4294967270
  • 문서의 동적 생성. 문서를 동적으로 생성하면 카운터, 타임스탬프 및 광고로 인해 약간의 변화가 발생할 수 있습니다.
  • 문제가 있는 URL 내 매개변수. 예를 들어, 세션 ID로 인해 엄청난 수의 중복과 URL이 생성될 수 있습니다.
  • 정렬 매개변수. 일부 대형 쇼핑 사이트에서는 동일한 항목을 정렬하는 여러 방법을 제공하는데, 이로 인해 URL의 수가 증가하기도 합니다. 예를 들면 다음과 같습니다.
    http://www.example.com/results?search_type=search_videos&search_query=tpb&search_sort=relevance&search_category=25
  • 추천 매개변수와 같이 관련성이 낮은 URL 내 매개변수. 예:
    http://www.example.com/search/noheaders?click=6EE2BF1AF6A3D705D5561B7C3564D9C2&clickPage=OPD+Product+Page&cat=79
    http://www.example.com/discuss/showthread.php?referrerid=249406&threadid=535913
    http://www.example.com/products/products.asp?N=200063&Ne=500955&ref=foo%2Cbar&Cn=Accessories.
  • 캘린더 문제. 동적으로 생성된 캘린더는 시작일 또는 종료일에 제한이 없는 미래의 날짜 및 과거의 날짜로 연결되는 링크를 생성할 수 있습니다. 예:
    http://www.example.com/calendar.php?d=13&m=8&y=2011
    http://www.example.com/calendar/cgi?2008&month=jan
  • 깨진 상대적 링크. 깨진 상대적 링크로 인해 공간이 무한대로 커지기도 합니다. 보통 이 문제는 반복된 경로 요소 때문에 발생합니다. 예:
    http://www.example.com/index.shtml/discuss/category/school/061121/html/interview/category/health/070223/html/category/business/070302/html/category/community/070413/html/FAQ.htm

문제 해결

URL 구조와 관련된 잠재적인 문제를 방지하려면 다음 조치를 취하시기 바랍니다.

  • robots.txt 파일을 사용하여 Googlebot이 문제가 되는 URL에 액세스할 수 없도록 차단합니다. 일반적으로 검색결과를 생성하는 URL과 같은 동적 URL이나 캘린더와 같이 무한대의 공간을 만드는 URL을 차단하는 것이 좋습니다. robots.txt 파일에 정규 표현식을 사용하면 많은 수의 URL을 손쉽게 차단할 수 있습니다.
  • 가능하면 URL에 세션 ID를 사용하지 말고 쿠키를 사용합니다. 자세한 내용은 웹마스터 가이드라인을 참고하세요.
  • 가능하면 불필요한 매개변수를 삭제하여 URL의 길이를 줄입니다.
  • 사이트의 캘린더가 무한대인 경우 동적으로 생성되는 미래의 캘린더 페이지로 연결되는 링크에 nofollow 속성을 추가합니다.
  • 사이트에서 상대적 링크가 깨지지 않았는지 확인합니다.