Community코딩 & 개발github.com

인덱스 푸시

사이트에 새 페이지나 수정된 페이지를 추가한 후, Google과 Bing이 수일 내에 크롤링하고 색인하도록 요청하는 스킬입니다. sitemap만으로는 몇 주가 걸릴 수 있으므로, 배포 후 즉시 실행하거나 '색인 요청', '구글에 제출', 'IndexNow', '검색 엔진 핑' 등의 명령어를 통해 트리거됩니다. IndexNow, Search Console, Bing Webmaster, 우선순위 큐 파일을 활용하며, 색인되지 않은 페이지 진단을 지원합니다.

인덱스 푸시란 무엇인가요?

이 스킬은 웹 페이지가 배포된 후 검색 엔진에 신속히 색인되도록 돕는 종합적인 워크플로우를 제공합니다. 단순히 sitemap을 제출하는 것만으로는 Google이 수 주 동안 URL을 크롤링하지 않을 수 있기 때문에, 이 스킬은 IndexNow (Bing, Yandex, Naver 등 지원), Google Search Console의 URL 검사 및 색인 요청, Bing Webmaster Tools의 URL 제출, 그리고 우선순위 큐 파일 등 네 가지 채널을 모두 사용합니다. Search Console의 '색인 요청'은 특히 효과적이어서, '알 수 없음' 또는 '발견됨' 상태였던 URL이 요청 하루 만에 색인되는 사례가 많습니다. 이 스킬은 Claude Code, Cursor 등 명령어 기반 AI 에이전트와 함께 사용하도록 설계되었으며, 브라우저 기반 작업(Search Console, Bing Webmaster)은 UI를 스크립팅하지 않고 사람의 속도로 진행해야 한다는 중요한 규칙이 있습니다. 또한, 페이지가 실제로 200 코드를 반환하고, self-canonical 태그를 가지며, sitemap에 포함되고, 이미 크롤링된 페이지에서 링크가 있는지 사전 점검을 요구합니다. 색인 상태 진단 표(예: 'URL is unknown to Google', 'Discovered – currently not indexed')를 제공하여 문제 원인을 파악하고 해결 방법을 제시합니다. 이 스킬은 SEO 관련 다른 스킬들(seo-page, programmatic-pages, multilingual-seo 등)과 연계되어 전체 SEO 파이프라인의 일부로 동작합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ummydev/marketing-team-skills/tree/HEAD/skills/index-push

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

인덱스 푸시은(는) 무엇을 하나요?

페이지를 배포한다고 해서 바로 크롤링되는 것은 아닙니다. 새 도메인의 경우, Google은 sitemap에서 발견한 URL을 몇 주 동안 그대로 놔둘 수 있습니다. 이 스킬은 페이지가 공개되는 날부터 색인될 때까지의 일상적인 작업 흐름입니다. 네 가지 채널을 모두 사용하세요. 각 채널은 서로 다른 엔진에 도달하며 제한이 다릅니다.

채널도달 범위일일 제한방법
IndexNow (scripts/indexnow.mjs)Bing, Yandex, Naver, Seznam, Yep. Google 제외요청당 10,000개 URL한 번의 명령어
Search Console URL 검사 → 색인 요청Google속성당 약 10개 URL; 미국 태평양 시간 자정 무렵 초기화브라우저, 한 번에 하나의 URL
Search Console Sitemaps → 재제출Google중요하지 않음브라우저, 한 개 입력 필드
Bing Webmaster Tools → URL 제출Bing100개 URL브라우저, 목록 붙여넣기

색인 요청이 우리에게 Google을 움직이게 한 방법입니다. '알 수 없음' 또는 '발견됨' 상태였던 8개의 URL이 요청 후 약 하루 만에 모두 색인되었습니다. Sitemap과 IndexNow만으로는 Google 페이지가 계속 대기 상태였습니다.

브라우징 규칙. Search Console과 Bing Webmaster는 로그인이 필요한 사이트입니다. 사람의 속도로 한 번에 한 페이지씩 작업하고 UI를 스크립팅하지 마세요. 소셜 사이트도 마찬가지입니다. 사이트가 속도 제한을 걸거나 차단하면 즉시 중단하고 사용자에게 알리세요.

일회성 설정

  1. Search Console: 도메인 속성(DNS TXT 레코드로 인증)을 추가하세요. 해당 TXT 레코드를 절대 삭제하지 마세요. 인증이 유지되지 않습니다.
  2. Bing Webmaster Tools: 'Google Search Console에서 가져오기'가 가장 빠릅니다. GSC 도메인 속성은 가져올 수 없습니다. Bing은 대신 URL 접두어 사이트(https://example.com/)를 생성하며, 이 방법이 작동합니다. 거기에도 sitemap을 제출하세요.
  3. IndexNow 키 파일, 첫 번째 제출 전에 배포:
    KEY=$(openssl rand -hex 16)
    printf '%s' "$KEY" > public/$KEY.txt          # 사이트 루트에서 제공되는 모든 폴더
    # 커밋, 배포 후 다음 명령어로 키만 출력되는지 확인:
    curl -s "https://example.com/$KEY.txt"
    
    키는 설계상 공개되어 있으므로(누구나 파일을 읽을 수 있음) package.json에 저장할 수 있습니다: "seo:indexnow": "INDEXNOW_KEY=<key> node scripts/indexnow.mjs --host example.com"
  4. 큐 파일 docs/seo/index-queue.md (아래 템플릿), 저장소에 커밋. 임시 폴더나 스크래치 폴더에 두지 마세요.

워크플로우: 페이지가 배포된 날

  1. 페이지가 실제로 떠 있는지 확인. 자체 사이트, 순차적 요청:
    for p in /blog/new-post /zh/blog/new-post; do
      curl -s -o /dev/null -w "%{http_code} $p\n" "https://example.com$p"
    done
    curl -s https://example.com/blog/new-post | grep -o '<link rel="canonical"[^>]*>'
    
    모든 URL은 200(리디렉션 아님)을 반환하고, self-referencing canonical을 포함하며, sitemap에 나타나고, Google이 이미 크롤링하는 페이지(홈, 블로그 인덱스, 푸터 '최신 게시물' 블록, 관련 게시물)에서 링크되어야 합니다. 이러한 조건을 충족하지 않는 URL은 제출하지 마세요.
  2. IndexNow.
    npm run seo:indexnow -- /blog/new-post /zh/blog/new-post
    npm run seo:indexnow -- --sitemap        # 대규모 릴리스 후 또는 무엇이 변경되었는지 확실하지 않을 때
    
    200 또는 202는 수락됨을 의미합니다(202는 새 키가 검증되는 동안 정상). 403: 키 파일이 실제로 제공되지 않거나 내용이 다릅니다. 422: URL이 다른 호스트에 있음, 일반적으로 www. 대 베어 도메인.
  3. 큐 업데이트. 마지막 실행 이후 새로 추가된 URL을 찾으려면 라이브 sitemap을 커밋된 스냅샷과 비교합니다(첫 실행 시 스냅샷만 저장하면 됩니다. --dry-run은 키가 필요 없음):
    node scripts/indexnow.mjs --host example.com --sitemap --dry-run 2>/dev/null | sort > sitemap-now.txt
    comm -13 docs/seo/sitemap-snapshot.txt sitemap-now.txt     # 스냅샷 이후 추가된 URL
    mv sitemap-now.txt docs/seo/sitemap-snapshot.txt
    
    큐 순서: (1) 오늘 게시된 페이지, 최신순; (2) 주요 언어가 번역본보다 먼저, 예: 영어 다음 중국어; (3) 시간에 민감한 주제(릴리스, 종료)가 상시 주제보다 먼저; (4) 콘텐츠가 실질적으로 변경된 기존 페이지. 기타 로케일은 마지막.
  4. Search Console에서 sitemap 재제출 많은 URL 또는 새 섹션을 추가한 후: Sitemaps → https://example.com/sitemap.xml 입력 → 제출. '발견된 페이지' 수를 자체 개수와 비교하세요. 오래되면: 우리는 재제출할 때까지 243개로 표시되던 것이 423개가 되었습니다.
  5. Search Console에서 색인 요청, 큐의 맨 위부터:
    • Search Console을 열고 URL의 계정(/u/0/, /u/1/, /u/2/)이 속성을 표시하는지 확인하세요. 인덱스는 날짜마다 변경됩니다. 속성이 나열된 계정을 사용하세요.
    • 맨 위 검사 표시줄에 URL을 붙여넣고 결과를 기다린 후, 색인 요청을 클릭하고 라이브 테스트(약 1분)를 기다리세요.
    • '색인 요청됨' 대화상자가 나타날 때만 카운트하세요. 대화상자가 없으면 요청이 전달되지 않은 것이며, 종종 계정에 권한이 없기 때문입니다.
    • 첫 번째 시도에서 '문제가 발생했습니다': 한 번 재시도하세요. 보통 작동합니다.
    • '할당량 초과': 그날은 중단하세요. 할당량은 미국 태평양 시간 자정 무렵에 초기화됩니다. 하루에 약 10개 정도 계획하세요.
    • 큐 행에 날짜를 기록하세요.
  6. Bing URL 제출: Bing Webmaster Tools → URL Submission → Submit URLs → 큐에서 다음 URL을 한 줄에 하나씩, 페이지에 표시된 남은 할당량(하루 100개)까지 붙여넣으세요. 큐 행에 날짜를 기록하세요.
  7. 기록 각 작업당 한 줄씩 docs/seo/log.md에 배포 또는 커밋 참조와 함께: - main=abc1234 라이브. IndexNow 18개 URL → 200. GSC 10개 요청 (11번째에서 할당량 초과). Bing 100개 제출, 큐에 44개 남음.

후속 조치, 1~3일 후

URL 검사에서 가장 최신 페이지를 먼저 검사하세요(Bing에도 유사한 상태를 가진 자체 URL 검사가 있음):

상태의미조치
URL이 Google에 있습니다색인됨색인됨 표시, 큐에서 제거, 로그 기록
URL이 Google에 알려지지 않음Google이 읽은 sitemap에 없음, 발견된 링크 없음sitemap 재제출, 내부 링크 추가, 색인 요청
발견되었지만 현재 색인되지 않음, 참조 페이지: 없음 감지됨Google이 sitemap에서만 URL을 알고 있으며 크롤링하지 않음이미 크롤링되고 방문되는 페이지에서 링크 추가; 외부 링크 확보; 색인 요청
크롤링되었지만 현재 색인되지 않음가져왔지만 아직 색인할 가치가 없다고 판단콘텐츠가 부족하거나 거의 중복되는지 확인(번역, 템플릿 페이지); 개선 또는 병합. 더 많은 요청은 도움이 되지 않음
중복, Google이 다른 표준을 선택함canonical 또는 hreflang 혼동canonical 태그 수정; 로케일 버전이 동일하지 않은지 확인
리디렉션 페이지 / 찾을 수 없음(404)sitemap에 잘못된 URLsitemap 수정

'참조 페이지: 없음 감지됨'이 핵심 단서입니다. 해결책은 링크이지 더 많은 제출이 아닙니다. 우리에게 효과가 있었던 방법: 홈 페이지와 상위 가이드에서 최신 게시물 5개를 링크하는 푸터 블록, 관련 게시물 간의 상호 링크, README가 페이지를 링크하는 공개 GitHub 저장소.

Search Console 실적 데이터는 2~3일 지연됩니다. 어제 수치로 페이지를 판단하지 마세요.

큐 파일 템플릿

# 인덱스 큐
맨 위 = 다음에 제출할 항목. 순서: 최신순; 영어와 중국어가 다른 로케일보다 먼저.
제한: Google 색인 요청 속성당 하루 약 10개(미국 태평양 시간 자정 무렵 초기화). Bing URL 제출 하루 100개.

| URL | 추가됨 | Google 요청됨 | Bing 제출됨 | 색인됨 |
|---|---|---|---|---|
| https://example.com/blog/new-post | 2026-11-07 | 11-08 | 11-07 | |
| https://example.com/zh/blog/new-post | 2026-11-07 | | 11-07 | |

체크리스트

  • 각 URL 라이브: 200, self canonical, sitemap에 포함, 크롤링된 페이지에서 링크됨
  • IndexNow가 새 URL 및 변경된 URL에 대해 200 또는 202 반환
  • 큐 업데이트 및 우선순위별 정렬
  • 대규모 추가 후 sitemap 재제출됨; 발견된 수와 일치
  • Search Console 색인 요청이 할당량까지 진행됨, 각각 대화상자로 확인
  • Bing URL 제출이 할당량까지 진행됨
  • 로그 줄이 커밋 또는 배포 참조와 함께 기록됨; 후속 검사 날짜 표시

우리가 겪은 함정

  • 색인 요청이 3일 동안 아무 효과 없음. 확인 대화상자가 전혀 나타나지 않았습니다. 브라우저의 기본 Google 계정에 속성에 대한 액세스 권한이 없었습니다. 소유한 계정(다른 /u/N/)으로 Search Console을 열자 즉시 해결되었습니다. 며칠 후 속성이 또 다른 인덱스 아래에서 열렸습니다.
  • '잘못된 sitemap 주소'. 도메인 속성에서 sitemap.xml을 입력하면 실패합니다. 전체 https://example.com/sitemap.xml이 작동합니다.
  • 오래된 sitemap 수. Search Console이 사이트에 100페이지가 있는데도 11개의 발견된 페이지만 계속 표시하다가 재제출 후 243 대 423이 되었습니다.
  • 링크되지 않은 페이지가 보이지 않음. 내부 링크 없이 게시된 두 개의 가이드가 며칠 후에도 'URL이 Google에 알려지지 않음' 상태였습니다.
  • 할당량 추측 실패. 처음에는 하루에 약 4개의 요청이라고 가정했지만 실제로는 약 10개였습니다. 11번째에서 '할당량 초과'가 반환됩니다.
  • 하루 첫 번째 요청 실패 '문제가 발생했습니다' 오류와 함께. 재시도가 통과되었습니다.
  • 큐 분실. 임시 폴더에 보관된 115개 URL의 Bing 목록이 세션 재시작 시 사라져서 sitemap에서 다시 구축했습니다. 큐는 저장소에 보관하세요.
  • 큐가 할당량보다 김. 바쁜 하루 후, 115개의 URL이 100개의 Bing 슬롯을 기다리고 있었습니다. 우선순위 순서가 무엇을 먼저 보낼지 결정했습니다: 영어와 중국어의 새 게시물, 번역본은 그 다음.
  • 세션에 브라우저 없음. Search Console과 Bing에는 브라우저가 필요합니다. IndexNow는 필요 없습니다. IndexNow를 실행하고, 차이를 기록한 후 다음 세션에서 따라잡으세요.
  • 202, 그다음 200. IndexNow가 새 키로 첫 번째 제출에 202를 응답하고 이후에는 200을 응답했습니다. 둘 다 성공입니다.
  • 번역이 할당량을 소진함. 441개의 sitemap URL 중 약 392개가 번역본이었습니다. 수동으로 모두 제출하면 새 도메인이 거의 색인하지 않는 페이지에 며칠 분량의 할당량을 소모합니다.

관련 스킬

  • seo-page: 이 스킬이 색인할 페이지를 구축합니다.
  • programmatic-pages: 많은 URL을 한 번에 제공합니다. 큐 우선순위가 가장 중요합니다.
  • multilingual-seo: 게시 및 먼저 제출할 로케일, hreflang.
  • competitor-pages, trend-keywords: 큐의 앞쪽으로 가는 시간에 민감한 페이지.
  • keyword-research: 어떤 페이지가 존재할지 먼저 결정합니다.
  • ai-search: AI 크롤러를 위한 llms.txt 및 robots.txt; Bing의 인덱스는 Copilot에도 공급됩니다.
  • seo-daily-report: 색인된 항목과 내일 대기 중인 항목을 보고합니다.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

ummydev/ai-search

When the user wants to make a site readable, accurate and quotable for AI assistants (ChatGPT, Claude, Perplexity, Gemini, Copilot, Google AI Overviews) so they describe the product correctly and cite it. Use when the user says "llms.txt", "llms-full.txt", "AI search", "GEO", "AEO", "get cited by ChatGPT", "show up in Perplexity answers", "allow AI crawlers", "GPTBot in robots.txt", "AI gets our pricing wrong", "AI confuses us with another product", "brand name collision", "Organization schema sameAs" or "make the site agent-readable". Covers llms.txt, robots.txt for AI crawlers, definition sentences, comparison tables and FAQ, public pricing, Organization and WebSite structured data, and brand naming.

ummydev/remotion-video

When the user wants to make a vertical promo video of their own software product in code with Remotion, rebuilding the product's real UI instead of screen-recording it, with a TTS voice-over, captions timed to the voice and camera moves that zoom into details. Use when the user says "Remotion", "make a product video", "faceless demo video", "UI motion video", "programmatic video", "product reel", "animate our UI", "render the video", or wants a TikTok or Reels video about their app that an agent can re-render after every change.

ummydev/short-video-formats

When the user wants to choose or plan the format of a promo short video for TikTok, Instagram Reels, YouTube Shorts or Xiaohongshu, especially for a software product, dev tool or AI agent. Covers the four formats that carry this category (talking head over a demo, phone filming the screen, faceless UI demo, talking-head open into full-screen demo), screen layout rules, hooks and endings like "comment X and I'll send it", and how to make an AI presenter. Use when the user says "what kind of video should we make", "video format", "talking head", "faceless video", "AI presenter", "AI avatar", "UGC style", "hook ideas", "how should the first frame look", "comment to get the link", or "视频形式".

ummydev/video-retro

When the user wants to review how their short videos performed on TikTok, Instagram Reels or other platforms and decide what to make next. Covers reading views, likes, comments, saves and follows without scraping, the stats log, 24-hour and 72-hour checks, comparing topics, formats and hooks, the daily report and recording what to change. Use when the user says "how did the video do", "video stats", "复盘", "retro", "which videos worked", "why did this flop", "weekly video report", "update the stats", or at the start or end of a short-video working day.

관련 스킬