속성 탐색은 방문자가 페이지에 항목(예: 제품, 기사, 이벤트)이 표시되는 방식을 변경할 수 있도록 허용하는 웹사이트의 일반적인 기능입니다. 이는 유용하고 인기 있는 기능이지만 URL 매개변수를 기반으로 하는 가장 일반적인 구현은 무한한 URL 공간을 생성할 수 있으며 이는 다음과 같은 몇 가지 방식으로 웹사이트에 해를 끼칩니다.
과도한 크롤링: 속성 탐색을 위해 생성된 URL은 새로운 것처럼 보이며 크롤러는 먼저 크롤링하지 않고는 URL이 유용할지 여부를 판단할 수 없으므로 크롤러의 프로세스가 URL이 실제로는 쓸모없다고 판단하기 전에 크롤러는 일반적으로 매우 많은 수의 속성 탐색 URL에 액세스합니다.
느린 탐색 크롤링: 이전 사항에서 알 수 있듯이 크롤링이 쓸모없는 URL에 사용되면 크롤러가 유용한 새 URL에 소비할 시간이 줄어듭니다.
일반적인 속성 탐색 URL에는 필터링하는 항목의 속성과 관련된 다양한 매개변수가 쿼리 문자열에 포함될 수 있습니다. 예를 들면 다음과 같습니다.
URL 매개변수 products, color, size 중 하나를 변경하면 기본 페이지에 다른 항목 세트가 표시됩니다. 이는 종종 필터의 가능한 조합이 매우 많다는 것을 의미하며, 이는 가능한 URL의 수가 매우 많다는 것을 의미합니다. 리소스를 절약하려면 다음 방법 중 하나를 사용하여 이러한 URL을 처리하는 것이 좋습니다.
색인이 생성될 수 있는 속성 탐색 URL이 필요하지 않은 경우 이러한 URL의 크롤링을 방지합니다.
색인이 생성될 수 있는 속성 탐색 URL이 필요한 경우 URL이 다음 섹션에 설명된 권장사항을 준수하는지 확인합니다. 속성 URL을 크롤링하면 페이지를 렌더링하는 데 필요한 URL과 작업의 양이 많아 사이트에 많은 컴퓨팅 리소스가 소요될 수 있습니다.
속성 탐색 URL 크롤링 방지하기
서버 리소스를 절약하고 Google 검색에 속성 탐색 URL이 표시되지 않도록 하려면 다음 방법 중 하나를 사용하여 이러한 URL의 크롤링을 방지할 수 있습니다.
robots.txt를 사용하여 속성 탐색 URL의 크롤링을 허용하지 않습니다. 필터링된 항목의 크롤링을 허용할 만한 타당한 이유가 없는 경우가 많습니다. 필터링된 항목을 크롤링하면 서버 리소스가 소모되지만 이로 인한 이익은 거의 또는 전혀 없기 때문입니다. 대신 필터가 적용되지 않은 모든 제품을 표시하는 전용 등록정보 페이지와 함께 개별 항목 페이지만 크롤링하도록 허용합니다.
크롤링할 속성 탐색 URL(또는 크롤링하지 않을 URL)의 환경설정을 알리는 다른 방법은 rel="canonical"link 요소와 rel="nofollow" 앵커 속성을 사용하는 것입니다. 그러나 이러한 방법은 일반적으로 앞서 언급한 방법보다 장기적으로 효과가 떨어집니다.
rel="canonical"을 사용하여 속성 탐색 URL의 표준 버전이 되는 URL을 지정하면 시간이 지남에 따라 이러한 URL의 비표준 버전의 크롤링 수가 줄어들 수 있습니다. 예를 들어 필터링된 페이지 유형이 3개인 경우 rel="canonical"을 필터링되지 않은 버전으로 가리키는 것이 좋습니다. https://example.com/items.shtm?products=fish&color=radioactive_green&size=tiny는 <link rel="canonical" href="https://example.com/items.shtm?products=fish" >를 지정합니다.
필터링된 결과 페이지로 연결되는 앵커에 rel="nofollow" 속성을 사용하는 것이 유용할 수 있지만, 특정 URL로 연결되는 모든 앵커에 rel="nofollow" 속성이 있어야 효과가 있다는 점에 유의하세요.
속성 탐색 URL이 웹에 최적의 선택인지 확인하기
속성 탐색 URL을 크롤링하고 색인 생성할 수 있어야 하는 경우 사이트에서 잠재적인 URL을 다량 크롤링할 때 발생하는 부정적인 영향을 최소화하기 위해 다음 권장사항을 따르세요.
업계 표준 URL 매개변수 구분자 '&'을 사용합니다. 쉼표(,), 세미콜론(;), 대괄호([ 및 ])와 같은 문자는 크롤러가 매개변수 구분자로 감지하기가 어렵습니다. 대부분의 경우 구분자가 아니기 때문입니다.
/products/fish/green/tiny와 같이 URL 경로에서 필터를 인코딩하는 경우 필터의 논리적 순서가 항상 동일하게 유지되고 중복 필터가 존재하지 않도록 합니다.
필터 조합이 결과를 반환하지 않으면 HTTP 404 상태 코드를 반환합니다.
사이트 인벤토리에 녹색 물고기가 없는 경우 사용자와 크롤러 모두 적절한 HTTP 상태 코드(404)와 함께 '찾을 수 없음' 오류를 수신해야 합니다. URL에 중복 필터 또는 다른 의미 없는 필터 조합이 포함되어 있거나 페이지로 나누기 URL이 없는 경우에도 마찬가지입니다. 마찬가지로 필터 조합에 결과가 없는 경우 일반적인 '찾을 수 없음' 오류 페이지로 리디렉션하지 마세요. 대신 오류가 발생한 URL 아래에 404 HTTP 상태 코드와 함께 'not found' 오류를 표시합니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-08-04(UTC)"],[],["Faceted navigation URLs, often using parameters, can lead to overcrawling and slower discovery of new content. To manage this, prevent crawling of these URLs using `robots.txt` to disallow specific parameters or employ URL fragments instead of parameters. Alternatively, use `rel=\"canonical\"` or `rel=\"nofollow\"` to reduce crawling of these pages. If faceted URLs are needed, utilize `&` for parameters, maintain consistent filter order, and return `404` for no-result combinations.\n"],null,["Managing crawling of faceted navigation URLs\n\n\nFaceted navigation is a common feature of websites that allows its visitors to change how items\n(for example, products, articles, or events) are displayed on a page. It's a popular and useful\nfeature, however its most common implementation, which is based on URL parameters, can generate\ninfinite URL spaces which harms the website in a couple ways:\n\n- **Overcrawling**: Because the URLs created for the faceted navigation seem to be novel and crawlers can't determine whether the URLs are going to be useful without crawling first, the crawlers will typically access a very large number of faceted navigation URLs before the crawlers' processes determine the URLs are in fact useless.\n- **Slower discovery crawls**: Stemming from the previous point, if crawling is spent on useless URLs, the crawlers have less time to spend on new, useful URLs.\n\n\nA typical faceted navigation URL may contain various parameters in the query string related to the\nproperties of items they filter for. For example: \n\n```\nhttps://example.com/items.shtm?products=fish&color=radioactive_green&size=tiny\n```\n\n\nChanging any of the URL parameters `products`, `color`, and\n`size` would show a different set of items on the underlying page. This often means a\nvery large number of possible combinations of filters, which translates to a very large number of\npossible URLs. To save your resources, we recommend dealing with these URLs one of the following\nways:\n\n- If you don't need the faceted navigation URLs potentially indexed, prevent crawling of these URLs.\n- If you need the faceted navigation URLs potentially indexed, ensure that the URLs follow our best practices outlined in the following section. Keep in mind that crawling faceted URLs tends to cost sites large amounts of computing resources due to the sheer amount of URLs and operations needed to render those pages.\n\nPrevent crawling of faceted navigation URLs\n\n\nIf you want to save server resources and you don't need your faceted navigation URLs to show up in\nGoogle Search, you can prevent crawling of these URLs with one of the following ways.\n\n- **Use [robots.txt](/search/docs/crawling-indexing/robots/intro) to disallow crawling of faceted navigation URLs.** Oftentimes there's no good reason to allow crawling of filtered items, as it consumes server resources for no or negligible benefit; instead, allow crawling of just the individual items' pages along with a dedicated listing page that shows all products without filters applied. \n\n ```\n user-agent: Googlebot\n disallow: /*?*products=\n disallow: /*?*color=\n disallow: /*?*size=\n allow: /*?products=all$\n ```\n- **Use URL fragments to specify filters.** [Google Search generally doesn't support URL fragments in crawling and indexing](/search/docs/crawling-indexing/url-structure#fragments). If your filtering mechanism is based on URL fragments, it will have no impact on crawling (positive or negative). For example, instead of URL parameters, use URL fragments: \n\n ```\n https://example.com/items.shtm#products=fish&color=radioactive_green&size=tiny\n ```\n\n\nOther ways to signal a preference of which faceted navigation URLs (not) to crawl is using\n`rel=\"canonical\"` `link` element and the `rel=\"nofollow\"` anchor\nattribute. However, these methods are generally less effective in the long term than the\npreviously mentioned methods.\n\n- **Using [`rel=\"canonical\"`](/search/docs/crawling-indexing/consolidate-duplicate-urls#rel-canonical-link-method)\n to specify which URL is the canonical version of a faceted navigation URL** may, over time, decrease the crawl volume of non-canonical versions of those URLs. For example, if you have 3 filtered page types, consider pointing the `rel=\"canonical\"` to the unfiltered version: `https://example.com/items.shtm?products=fish&color=radioactive_green&size=tiny` specifies `\u003clink rel=\"canonical\" href=\"https://example.com/items.shtm?products=fish\" \u003e`.\n- **Using\n [`rel=\"nofollow\"`](/search/docs/crawling-indexing/qualify-outbound-links#nofollow)\n attributes on anchors pointing to filtered results pages** may be beneficial, however keep in mind that every anchor pointing to a specific URL must have the `rel=\"nofollow\"` attribute in order for it to be effective.\n\nEnsure the faceted navigation URLs are optimal for the web\n\n\nIf you need your faceted navigation URLs to be potentially crawled and indexed, ensure you're\nfollowing these best practices to minimize the negative effects of crawling the large number of\npotential URLs on your site:\n| Keep in mind that having these URLs crawled means an increased resource usage on your server and, potentially, slower discovery of new URLs on your site.\n\n1. **Use the industry standard URL parameter separator '`&`'.** Characters like comma (`,`), semicolon (`;`), and brackets (`[` and `]`) are hard for crawlers to detect as parameter separators (because most often they're not separators).\n2. If you're encoding filters in the URL path, such as `/products/`**fish** `/`**green** `/`**tiny**, ensure that the logical order of the filters always stays the same and that no duplicate filters can exist.\n3. **Return an HTTP `404` status code when a filter combination doesn't return\n results.** If there are no green fish in the site's inventory, users as well as crawlers should receive a \"not found\" error with the proper HTTP status code (`404`). This should also be the case if the URL contains duplicate filters or otherwise nonsensical filter combinations, and nonexistent pagination URLs. Similarly, if a filter combination has no results, don't redirect to a common \"not found\" error page. Instead, serve a \"not found\" error with the `404` HTTP status code under the URL where it was encountered. If [you have a single-page app](/search/docs/crawling-indexing/javascript/javascript-seo-basics#avoid-soft-404s) this might not be possible. Follow the best practices for single page apps."]]