Google의 URL 구조 권장사항

Google은 RFC 3986에 정의된 URL을 지원합니다. 표준에 따라 예약됨으로 정의된 문자는 퍼센트 인코딩되어야 합니다. 예약되지 않은 ASCII 문자는 인코딩되지 않은 형식으로 남을 수 있습니다. 또한 ASCII가 아닌 범위에 해당하는 문자는 UTF-8로 인코딩되어야 합니다.

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

권장: URL에 간단하면서 구체적인 단어를 사용하는 경우

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

권장: URL에 현지화된 단어를 사용하는 경우(해당하는 경우)

https://www.example.com/lebensmittel/pfefferminz

권장: 필요에 따라 UTF-8 인코딩을 사용합니다. 예를 들어 다음 예시에서는 URL에 포함된 아랍어 문자에 UTF-8 인코딩이 사용되었습니다.

https://www.example.com/%D9%86%D8%B9%D9%86%D8%A7%D8%B9/%D8%A8%D9%82%D8%A7%D9%84%D8%A9

다음 예시에서는 URL에 포함된 중국어 문자에 UTF-8 인코딩이 사용되었습니다.

https://example.com/%E6%9D%82%E8%B4%A7/%E8%96%84%E8%8D%B7

다음 예시에서는 URL에 포함된 움라우트에 UTF-8 인코딩이 사용되었습니다.

https://www.example.com/gem%C3%BCse

다음 예시에서는 URL에 포함된 그림 이모티콘에 UTF-8 인코딩이 사용되었습니다.

https://example.com/%F0%9F%A6%99%E2%9C%A8

권장하지 않음: URL에 ASCII가 아닌 문자를 사용하는 경우

https://www.example.com/نعناع
https://www.example.com/杂货/薄荷
https://www.example.com/gemüse
https://www.example.com/🦙✨

권장하지 않음: URL에 읽을 수 없는 긴 ID 숫자를 사용하는 경우

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

다지역 사이트인 경우 사이트를 쉽게 지역 타겟팅할 수 있는 URL 구조를 사용하는 것이 좋습니다. URL 구조화 방법에 관한 더 많은 예시는 언어별 URL 사용을 참고하세요.

권장: 국가별 도메인을 사용하는 경우

https://example.de

권장: gTLD를 포함하는 국가별 하위 디렉터리를 사용하는 경우

https://example.com/de/

하이픈을 사용하여 URL 내의 단어를 분리해 보세요. 사용자와 검색엔진이 URL의 개념을 더 쉽게 식별할 수 있습니다. URL에 밑줄(_) 대신 하이픈(-)을 사용하는 것이 좋습니다.

권장: 하이픈(-):

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

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

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

권장하지 않음: 단어가 통합된 URL

https://www.example.com/greendress

URL 관련 일반적인 문제

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

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

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

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

  • 단순한 URL 구조를 만듭니다. 콘텐츠를 정리하여 URL을 논리적이고 가장 이해하기 쉬운 방식으로 구성하는 것이 좋습니다.
  • robots.txt 파일을 사용하여 Googlebot이 문제가 되는 URL에 액세스할 수 없도록 차단합니다. 일반적으로 검색 결과를 생성하는 URL과 같은 동적 URL이나 캘린더와 같이 무한대의 공간을 만드는 URL을 차단하는 것이 좋습니다. robots.txt 파일에 정규 표현식을 사용하면 많은 수의 URL을 손쉽게 차단할 수 있습니다.
  • 가능하면 URL에 세션 ID를 사용하지 말고 쿠키를 사용합니다.
  • URL의 대소문자 텍스트가 웹 서버에서 동일하게 처리되는 경우 모든 텍스트의 대소문자를 동일하게 변환하세요. 그러면 Google에서 URL이 동일한 페이지를 참조하는지 더 쉽게 판단할 수 있습니다.
  • 가능하면 불필요한 매개변수를 삭제하여 URL의 길이를 줄입니다.
  • 사이트의 캘린더가 무한대인 경우 동적으로 생성되는 미래의 캘린더 페이지로 연결되는 링크에 nofollow 속성을 추가합니다.
  • 사이트에서 상대적 링크가 깨지지 않았는지 확인합니다.