微信客服
Telegram:guangsuan
电话联系:18928809533
发送邮件:xiuyuan2000@gmail.com

제품 페이지가 색인되지 않는 6가지 기술적 이유|중복 콘텐츠 및 크롤링 제한 제외

本文作者:Don jiang

페이지가 검색 엔진에 수집되지 않는 원인은 코드 구조나 서버 설정에 숨어 있을 수 있습니다.

예를 들어, 크롤러가 동적 콘텐츠를 “이해하지 못하거나”, 특정 매개변수 설정 오류로 인해 페이지가 중복으로 간주되어 수집이 차단될 수 있습니다.

이 글에서는 기술적인 점검 관점에서, 많은 사람들이 놓치기 쉬우나 직접적으로 수집에 영향을 주는 6가지 실무 문제를 정리했습니다.

제품 페이지가 수집되지 않는 6가지 기술적 이유

페이지 로딩 속도 저하로 크롤러 수집 실패

예를 들어, 서버 응답 시간이 3초를 초과하면 Googlebot이 크롤링을 포기하거나 페이지 일부만 불완전하게 수집할 수 있습니다.

이 문제는 많은 웹마스터들이 사용자 경험(예: 로딩 애니메이션 표시 여부)만 신경 쓰고, 크롤러의 “인내 한계”를 간과해 자주 발생합니다.

서버 응답 시간 과도

문제 진단: Google Search Console의 “핵심 웹 지표” 또는 GTmetrix 등의 도구를 통해 “첫 바이트 시간”(TTFB)을 확인하세요. 1.5초를 초과하면 최적화가 필요합니다.

해결 방안:

  1. 서버 사양 업그레이드(CPU/메모리) 또는 고성능 호스팅 업체(예: Cloudways, SiteGround)로 이전.
  2. 데이터베이스 쿼리 최적화: 복잡한 조인 쿼리 최소화 및 제품 테이블에 인덱스 추가.
  3. 서버 캐시(Redis/Memcached) 활성화로 동적 페이지 생성 빈도 감소.

최적화되지 않은 리소스 파일

대표적 문제:

  • 제품 이미지 미압축 (예: PNG를 WebP로 변환하지 않음, 해상도 2000px 초과).
  • CSS/JS 파일 미통합으로 수십 건의 HTTP 요청 발생.

수정 단계:

  1. Squoosh, TinyPNG 등으로 이미지 압축, 주 해상도(예: 가로 1200px)에 맞게 조정.
  2. Webpack이나 Gulp를 사용하여 CSS/JS 파일 통합, 요청 수 최소화.
  3. Gzip 또는 Brotli 압축 활성화로 리소스 전송 용량 절감.

렌더링 차단 스크립트

크롤러 시각: 크롤러가 HTML을 분석할 때 비동기 처리되지 않은 스크립트(예: 동기 Google Analytics 스크립트)를 만나면, 스크립트 실행이 끝날 때까지 렌더링이 멈춥니다.

최적화 방안:

  • 불필요한 스크립트에 async 또는 defer 속성 추가 (예: ).
  • 고객센터 채팅, 히트맵 분석 등 제3자 도구는 페이지 로드 이후로 실행 지연.

점검 도구 및 우선순위 권장

자가 점검 체크리스트:

  1. PageSpeed Insights: 특정 리소스 로딩 문제 확인 (예: “JavaScript 실행 시간 단축”).
  2. Screaming Frog: 제품 페이지의 TTFB 대량 검사, 시간 초과 URL 선별.
  3. Lighthouse: “기회” 항목에서 최적화 제안 확인 (예: 사용되지 않는 CSS 제거).

긴급 최적화 우선순위: TTFB 2초 초과 페이지, HTTP 요청 수 50건 초과 페이지, 이미지 용량 500KB 초과 리소스 우선 처리.

참고 데이터: Google 공식 자료에 따르면, 페이지 로딩 시간이 1초에서 3초로 늘어나면 크롤링 실패 확률이 32% 증가합니다. 위 최적화를 통해 대부분의 제품 페이지는 2초 이내 로딩 가능해져 수집 성공률이 크게 향상됩니다.

robots.txt 파일의 제품 디렉토리 차단 실수

예를 들어, Disallow: /tmp/Disallow: /product/ 로 잘못 입력하면, 크롤러가 제품 페이지를 완전히 건너뛰게 되어 콘텐츠 품질이 우수해도 수집되지 않습니다.

robots.txt 차단 문제 신속 진단

점검 도구:

  • Google Search Console: “색인” > “웹페이지” 보고서에서 제품 페이지가 “차단됨”으로 표시되면 상세정보에서 robots.txt 차단 기록 확인.
  • 온라인 테스트 도구: robots.txt 테스트 도구 에서 URL 입력 후 크롤러 권한 시뮬레이션.

대표적 오류 사례:

  1. 경로 오탈자 (예: /produc//product/ 로 오타).
  2. 과도한 * 와일드카드 사용 (예: Disallow: /*.jpg$ 로 모든 제품 이미지 차단).

잘못된 차단 규칙 수정 방법

작성 원칙

  • 경로 정확 매칭:모호한 차단을 피하고, 임시 디렉터리의 경우 Disallow: /old-product/를 사용하고 Disallow: /product/는 피하십시오.
  • 크롤러 종류 구분:스팸 봇만 차단하려면 User-agent를 명시해야 합니다 (예: User-agent: MJ12bot).

파라미터 처리

  • 필요한 파라미터 허용 (예: 페이지네이션 ?page=2): Disallow: *?sort=를 사용해 정렬 파라미터만 차단합니다.
  • $ 기호로 파라미터 끝을 명시적으로 지정 (예: Disallow: /*?print=true$).

긴급 복구 및 검증 절차

절차 예시

  1. robots.txt 파일 수정: 잘못된 줄을 주석 처리하거나 삭제 (예: # Disallow: /product/).
  2. Google Search Console에서 robots.txt 업데이트 요청 제출.
  3. ‘URL 검사 도구’로 제품 페이지 크롤링 상태 수동 확인.
  4. 24시간 후 색인 상태 재확인, 복구되지 않으면 제품 페이지 sitemap을 수동 제출.

보호 조치

  • 버전 관리 도구(Git 등)로 robots.txt 수정 이력 관리, 롤백 가능하도록 함.
  • 테스트 환경에서 규칙 변경 사전 테스트, 바로 라이브 파일 수정 금지.

실제 사례 분석

잘못된 설정

User-agent: *

Disallow: /

Allow: /product/

문제점: Disallow: /가 모든 페이지를 차단해 이후 Allow 규칙이 무효화됨.

정확한 수정

User-agent: *

Disallow: /admin/

Disallow: /tmp/

Allow: /product/

논리: 관리자 및 임시 디렉터리만 차단하고, 제품 경로는 명시적으로 허용.

제품 페이지의 내부 링크 경로 누락 문제

제품 페이지가 사이트 내에서 적절한 진입 경로(네비게이션, 추천 콘텐츠, 본문 링크 등)가 부족하면 ‘고립된 섬’처럼 돼서, 아무리 콘텐츠가 훌륭해도 크롤러가 색인하기 어려워집니다.

이런 경우는 신상품, 독립 캠페인 페이지, 외부 도구로 일괄 등록된 페이지에서 자주 발생합니다. 사이트 네비게이션 구조에 제대로 연결되지 않았기 때문입니다.

네비게이션 구조 누락 또는 비효율적 설계

대표적인 문제

  • 제품 페이지가 메인 네비게이션 메뉴나 카테고리 디렉터리에 포함되지 않음 (검색 결과 페이지에만 존재).
  • 모바일에서 햄버거 메뉴 사용 시, 주요 제품 진입 경로가 여러 단계의 서브 메뉴에 숨겨짐.

해결 방안

자체 점검 도구:Screaming Frog로 전체 사이트 크롤링 후, ‘내부 링크 수 ≤1’인 제품 페이지 필터링.

최적화 절차

  1. 메인 네비게이션에 ‘인기 신상품’ 또는 ‘추천 카테고리’ 메뉴 추가, 주요 제품 모음 페이지로 직접 링크 연결.
  2. 모든 제품을 반드시 최소 하나의 카테고리 디렉터리에 포함 (/category/shoes/product-A 등).

추천 콘텐츠 모듈 활용 부족

크롤러 관점:‘추천 상품’ 등 동적 추천 콘텐츠가 JavaScript로 로드되면, 크롤러가 링크를 제대로 인식하지 못할 수 있습니다.

정적 진입점 제공을 통한 동적 추천 콘텐츠 보완, 예: 고정 섹션에 “이번 주 베스트셀러 Top 10″을 노출하고 상품 페이지로 바로 연결.

빵부스러기(브레드크럼) 네비게이션이 핵심 계층을 포함하지 않음

잘못된 사례: 빵부스러기 경로가 너무 짧고, 카테고리 페이지를 포함하지 않음 (예: 홈 > 제품A).

수정 방법:

  1. 카테고리 계층을 모두 포함 (예: 홈 > 운동화 > 러닝화 > 제품A), 각 단계는 모두 클릭 가능한 링크로 설정.
  2. CMS에서 자동 빵부스러기 생성 설정, URL 구조를 일치시킴 (예: /category1/category2/product-name).

콘텐츠 페이지 내부 앵커 텍스트 링크 누락

상품 설명 내에서 관련 제품 링크를 자연스럽게 삽입 (예: “이 카메라는 삼각대X와 호환됩니다”).

사용자 리뷰 섹션에 “이 상품을 구매한 고객이 함께 본 상품” 추천 앵커 텍스트 추가.

긴급 대응 전략

임시 방안:

  • “신제품 소식” 모음 페이지를 제작해 검색 누락 상품을 모아두고, 이를 홈페이지 하단 내비게이션에 추가.
  • 기존 고권한 페이지(예: 블로그 글)에 타겟 상품 페이지 링크 삽입 (예: “추천 읽기: 2024 최고의 러닝화 랭킹“).

장기 유지 방안:

  • 매주 Ahrefs Site Audit 등을 활용해 상품 페이지 인덱스 상태 모니터링, 내부 링크 누락을 즉시 보완.

JavaScript 동적 렌더링으로 인한 콘텐츠 누락

예시: Vue나 React로 제작된 제품 페이지에서 주요 정보(SKU, 사양 등)를 API로 비동기 로드하는 경우, 크롤러가 타임아웃으로 인해 콘텐츠를 수집하지 못할 수 있음.

수집된 페이지에는 “로딩 중” 자리 표시자만 남아 검색 순위 경쟁력이 사라짐.

동적 렌더링으로 인한 콘텐츠 누락 식별 방법

자체 점검 도구:

  1. Google 모바일 친화성 테스트: 제품 페이지 URL 입력 후 렌더링된 HTML 스크린샷에서 핵심 콘텐츠(가격, 구매 버튼 등) 포함 여부 확인.
  2. curl 명령어로 크롤러 시뮬레이션: 터미널에서 curl -A "Googlebot" URL 명령어 실행 후, 반환된 HTML과 브라우저 개발자 도구의 “페이지 소스 보기” 내용 비교.

전형적인 특징:

  • 웹페이지 소스 코드에 제품 설명, 리뷰 등 핵심 텍스트가 없고,

    등의 자리 표시자만 존재.

  • Google Search Console의 제품 페이지 “색인 상태” 보고서에서 “수집됨 – 인덱싱 안 됨”으로 표시되며, 이유가 “빈 페이지”로 나타남.

서버 사이드 렌더링(SSR) 및 프리렌더링 솔루션

SSR 장점: 서버에서 완전한 HTML을 생성한 후 크롤러에 반환, 콘텐츠를 한 번에 수집 가능.

적합 프레임워크: Next.js (React), Nuxt.js (Vue), Angular Universal.

코드 예시 (Next.js 제품 페이지 라우팅):

export async function getServerSideProps(context) {
const product = await fetchAPI(`/product/${context.params.id}`);
return { props: { product } };
프리렌더링 대안 방안 : SSR 개조가 어려운 사이트의 경우, Prerender.io 또는 Rendertron으로 정적 스냅샷을 생성합니다.

설정 절차 :

  1. 서버 미들웨어에서 크롤러 요청을 감지하여 프리렌더링 서비스로 전달합니다.
  2. 렌더링 결과를 캐시하여 반복 렌더링 비용을 줄입니다.

동적 콘텐츠 로딩 시점 최적화

핵심 로직 : 제품의 핵심 정보(제목, 가격, 사양)는 초기 HTML에 직접 삽입하고, JS 비동기 로딩을 피합니다.

잘못된 사례 :

// 비동기로 가격 불러오기 (크롤러는 대기하지 못할 수 있음)
fetch('/api/price').then(data => {
document.getElementById('price').innerHTML = data.price;
});

수정 방안 :

<!-- 초기 HTML에 가격 직접 출력 -->

$99.99

JS 실행 시간과 리소스 용량 제어

크롤러 허용 한계 : Googlebot은 최대 약 5초 동안 JS 실행 및 렌더링을 기다립니다.

최적화 조치 :

코드 분할 : 제품 페이지에서 필요한 JS만 로드 (예: 불필요한 슬라이더, 갤러리 제거)

// 비핵심 모듈(예: 제품 동영상 플레이어) 동적 로드
import('video-player').then(module => {
module.loadPlayer();
});

비주요 리소스 지연 로드 : 리뷰 모듈, 추천 상품 등은 DOMContentLoaded 이벤트 이후 실행합니다.

URL 파라미터 혼란으로 인한 중복 페이지

예를 들어, 동일 상품이라도 파라미터 순서가 다르면(/product?color=red&size=10/product?size=10&color=red) 크롤러가 서로 다른 페이지로 인식하여 콘텐츠 가중치가 분산되거나 중복 콘텐츠 패널티를 받을 수 있습니다.

중복 URL 파라미터 영향 범위 파악

자가 진단 도구 :

  1. Google Search Console : ‘색인 생성됨 – 제출됨 제외됨’ URL을 확인하여 중복 파라미터 페이지 비율을 분석합니다.
  2. Screaming Frog : ‘파라미터 무시’ 설정으로 사이트 전체를 크롤링하여 동일 제품의 다양한 파라미터 변형 개수를 확인합니다.

대표적인 문제 상황 :

  • 동일 상품이 필터로 인해 여러 URL이 생성됨 (예: 가격 정렬, 색상 필터 등)
  • 페이지네이션 파라미터에 rel="canonical" 미설정 시, 페이지네이션이 독립 콘텐츠로 인식됨

파라미터 정규화 및 가중치 통합

해결 방안 우선순위 :

파라미터 순서 고정 : 모든 URL을 동일한 파라미터 순서로 정렬 (예: 색상 → 사이즈 → 정렬 기준)하여 중복 URL을 방지합니다.

  • 예시 : 모든 URL을 /product?color=red&size=10 형식으로 고정하고, 다른 순서는 301 리디렉션으로 통합합니다.

Canonical 태그 활용 : 파라미터가 포함된 페이지의 헤드에 메인 제품 페이지를 가리키는 canonical 링크를 추가합니다.

불필요한 파라미터 차단

meta robots noindex 또는 robots.txt를 통해 추적 파라미터(예: ?session_id=xxx)의 수집을 차단합니다.

서버 측 파라미터 처리 기술

URL 재작성 규칙:

Apache 예시 (페이지네이션 파라미터 숨김 및 형식 표준화):


RewriteCond %{QUERY_STRING} ^page=([2-9]|10)$
RewriteRule ^product/?$ /product?page=%1 [R=301,L]

Nginx 예시 (정렬 파라미터 병합):


if ($args ~* "sort=price") {
rewrite ^/product /product?sort=price permanent;
}

동적 파라미터 제어:

  • CMS에서 허용된 파라미터 목록을 미리 설정하고, 허용되지 않은 파라미터 요청은 404 반환 또는 메인 페이지로 리디렉션 처리합니다.

페이지네이션 및 필터링 페이지 SEO 전략

페이지네이션 페이지:

  1. rel="prev"rel="next" 태그를 추가하여 검색 엔진에 페이지네이션 관계를 명시합니다.
  2. 첫 페이지를 제외한 페이지네이션(예: page=2 이후)은 noindex를 설정하여 수집을 제한합니다.

필터링 페이지:

상품이 없는 필터링 결과 페이지(예: /product?color=purple 재고 없음)는 404 반환 또는 유사 카테고리로 302 리디렉션 처리합니다.

표준 HTML 태그 누락

예를 들어, H1 태그가 없는 페이지는 주제가 불분명하다고 판단될 수 있으며, Schema 구조화 데이터를 설정하지 않으면 제품 가격, 재고 상태 등 중요한 속성이 검색 결과에 노출되지 않습니다.


<link rel="canonical" href="https://example.com/product" />

H1 태그 누락 또는 중복

문제 진단:

  • 브라우저 개발자 도구로 요소를 검사하여 제품 페이지에 고유하고 키워드가 포함된

    태그가 존재하는지 확인합니다.

  • 주요 오류 사례: H1 태그가 여러 개 존재(예: 제품명과 브랜드명을 동시에 H1에 사용)하거나 H1 내용이 페이지 주제와 무관(예: “쇼핑을 환영합니다”)한 경우.

수정 방법:

  • 각 제품 페이지에는 반드시 하나의 H1 태그만 존재해야 하며, 제품 모델명과 핵심 판매 포인트를 포함해야 합니다. (예:

    러닝화 X 시리즈 | 쿠션감 & 통기성, 2024 신제품

    )

  • H1 태그를 이미지로 대체하는 것은 금지합니다. (검색 엔진이 이미지 속 텍스트를 인식할 수 없음) 부득이한 경우 aria-label 속성을 추가해야 합니다.

Meta 설명(description) 미최적화

영향: meta description이 불완전하거나 누락되면, 검색 엔진이 페이지 내 임의의 텍스트를 검색 결과에 노출시켜 클릭률이 낮아질 수 있습니다.

최적화 방법:

  1. 길이는 150~160자 내외로 설정하고, 제품 주요 키워드와 행동 유도 문구를 포함합니다. (예: )
  2. CMS에서 description을 자동으로 생성하여 주요 제품 특징 필드를 자동 반영하도록 설정합니다.

Schema 구조화 데이터 누락

검색 엔진 최적화 필요성: Schema 마크업을 사용하면 제품 가격, 평점, 재고 상태 등 주요 속성을 명확하게 검색 엔진에 전달할 수 있어 검색 결과의 노출 품질이 향상됩니다.

구현 방법:
Schema Markup Generator를 활용하여 Product 타입 JSON-LD 코드를 생성하고 페이지 영역에 삽입합니다:

<script type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "Product",
"name": "러닝화 X 시리즈",
"image": "https://example.com/shoe.jpg",
"offers": {
"@type": "Offer",
"price": "99.99",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock"
}
}
script>
  • 검증 도구: Google 구조화 데이터 테스트 도구를 사용해 마크업이 정상 작동하는지 확인합니다.

이미지 Alt 텍스트 누락

SEO 가치: Alt 텍스트는 검색 엔진이 이미지 내용을 이해하는 데 도움을 주며, 웹 접근성도 개선할 수 있습니다.

잘못된 예시:

  • Alt 속성을 비워두거나 (), 키워드만 나열한 경우 (alt="러닝화 운동화 쿠션화 2024 신제품").

올바른 작성법:

  • 이미지의 주제와 활용 상황을 구체적으로 설명합니다. (예: alt="러닝화 X 시리즈 블랙 컬러 실물 사진, 밑창 쿠션 구조 강조")
  • 장식용 이미지에는 alt=""를 설정하여 불필요한 정보 전달을 피합니다.

Canonical 태그 오류

위험성: 제품 페이지의 canonical 태그가 카테고리 페이지나 홈페이지로 잘못 연결되면 페이지 권한 전달이 왜곡될 수 있습니다.

점검 및 수정 방법:

  • Screaming Frog 등을 사용해 제품 페이지를 일괄 크롤링하고, canonical 태그가 외부 URL이나 잘못된 URL을 가리키는 페이지를 선별합니다.
  • 표준 작성법: (현재 페이지의 정규화된 URL을 정확히 명시).

검색 노출이 되지 않는 제품 페이지를 하나 선정해 위 체크리스트를 순서대로 점검하면, 보통 30분 안에 핵심 문제를 발견할 수 있습니다.

滚动至顶部