IndexNow 기능을 검토한 결과, 이것이 핵심 기능/플러그인 중 하나가 되어야 한다고 동의합니다. 개발자 자원이 제한적이라는 점도 이해하고 있습니다.
핵심 팀을 지원하기 위한 필수 플러그인에 대한 제 의견을 아래에 정리했습니다. 추가 의견을 자유롭게 남겨 주세요.
전제 조건:
- IndexNow 플러그인은 예약 시간 모델을 기반으로 일괄 알림을 사용합니다 - 설계 고려 사항 #1 참조
- 일괄 알림은 시간 간격으로 설정됩니다.
- 알림은 공개 주제만 사용합니다.
- 플러그인이 활성화된 경우, 알림은 새/변경/삭제된 주제에 대해서만 전송됩니다.
- 플러그인은 과거의 변경 사항/이벤트에 대해 소급하여 알림을 보내지 않습니다.
사용자 안내:
- 원하는 IndexNow 검색 엔진에 가입합니다.
- API 키를 발급받습니다.
- 검색 엔진 엔드포인트 URL을 발급받습니다.
- 플러그인을 설치합니다.
- 관리자를 설정합니다.
사용 사례 - 관리자 설정
- 사용자가 자동 제출 기능을 켜고 끌 수 있도록 합니다.
- 사용자가 IndexNow 검색 엔진 엔드포인트를 입력할 수 있도록 합니다. 설계 고려 사항 #3 참조.
- 입력 필드는 텍스트 매개변수입니다.
- 입력 필드는 유효한 URL이어야 합니다.
- 기본값은
https://www.bing.com/indexnow인 Bing URL입니다.
- 사용자가 API 키를 입력하고 저장할 수 있도록 합니다.
- API 키를 저장하기 위한 문자열 입력 필드입니다.
- 입력 필드는 영숫자여야 합니다.
- 기본값은 ""입니다.
- 사용자가 일괄 알림을 위한 예약 시간 매개변수를 정의할 수 있도록 합니다.
- 시간 매개변수는 시간 간격으로 설정됩니다.
- 시간 값을 저장하기 위한 문자열 입력 필드입니다.
- 유효한 입력값은 정수입니다.
- 유효한 입력값은 1에서 24까지의 범위입니다.
- 기본값은 12입니다.
사용 사례 - 텍스트 키 파일
- 시스템은 indexnowkey.txt라는 이름의 파일을 생성합니다.
- 키 파일은 루트 레벨에 저장되어야 합니다.
- 시스템은 파일에 API 키를 입력합니다.
- 파일은 http/https를 통해 원격 사용자/시스템에서 접근 가능합니다.
사용 사례 - 일괄 알림 프로세스 예약
- 시스템은 관리자 설정에서 정의된 설정에 따라 간격 기반으로 작업을 예약합니다.
- 간격 값은 작업 사이의 지연 시간을 시간 단위로 정의합니다. 예를 들어, 입력값이 2이면 작업이 2시간마다 실행되어야 함을 의미합니다. 값이 4이면 작업이 4시간마다 실행되어야 함을 의미합니다. 값이 24이면 작업이 하루에 한 번 실행되어야 함을 의미합니다.
사용 사례 - 일괄 알림 프로세스
- 시스템은 관리자 설정에서 정의된 사이트 설정을 통해 알림 프로세스가 활성화되었는지 판단합니다.
- 시스템은 사이트 설정에서 API 키가 유효한지(빈 문자열 ""이 아닌지) 판단합니다.
- 시스템은 정의된 시간 간격 설정을 기반으로 주제 목록을 생성합니다. 쿼리 시간 범위에 대해서는 설계 고려 사항 #2 참조. 포함될 주제 매개변수는 다음과 같습니다:
- 주제는 공개 보기만 허용됩니다.
- 새 주제
- 새 게시물이 있는 주제
- 수정된 게시물이 있는 주제
- 삭제된 주제
- 주제 목록은 중복이 없어야 합니다.
- 시스템은 다음 형식을 사용하여 JSON 패킷을 생성합니다.
{
"host": "current_site",
"key": "api_key",
"keyLocation": "https://current_site/indexnowkey.txt",
"urlList": [
"https://www.example.com/url1",
"https://www.example.com/folder/url2",
"https://www.example.com/url3"
]
}
- JSON 패킷은 다음으로 전송됩니다.
- URL:
sitesettings.search_engine_indexnow_endpoint
- URL:
- JSON 패킷은 다음 헤더와 함께 전송됩니다.
- Content-Type: application/json; charset=utf-8
- Http/1.1
- Host: bing
- HTTP 요청 수신 확인을 검증합니다.
- http 200 - 제출 성공 - 프로세스 종료
- Http 429 - 제출 시도 횟수 초과 - 간격 시간을 늘리도록 관리자에게 알림을 보냅니다.
설계 고려 사항:
- 일괄 알림 vs. 개별 알림—개별 알림은 작은 도메인의 경우 허용될 수 있지만, 대형 보드의 경우 모든 새/업데이트된 게시물에 대해 알림을 추가하면 많은 이벤트 프로세스가 생성될 수 있습니다. 검색 엔진 인덱싱 성능 관점에서 볼 때, 시간당 일괄 알림은 포럼의 80%에 대해 허용 가능한 수준입니다.
- 일괄 알림 쿼리 타이밍 - SideKiq가 간격 타이밍을 제어합니다. SideKiq가 과부하 상태인 경우, 일괄 알림 프로세스가 지연될 수 있습니다. 쿼리 시간 범위가 예약 간격과 같을 경우, 일괄 알림 프로세스가 새/업데이트된 주제를 놓칠 수 있습니다. 지연된 프로세스를 커버하도록 쿼리를 확장하는 시간 매개변수가 필요합니까? 아니면 스케줄러가 쿼리 시간 간격을 제어하도록 초기화된 타임스탬프를 전달할 수 있습니까? 아니면 제출된 주제와 타임스탬프를 위한 데이터베이스 테이블/값을 생성해야 합니까?
- 각 검색 엔진과 정의된 IndexNow URL 엔드포인트를 포함하는 내부 테이블을 구축해야 합니까? 사용자는 URL을 입력하는 대신 드롭다운 메뉴에서 선택할 수 있습니다. 이를 통해 잠재적인人為 오류를 제거할 수 있습니다.
무엇이 빠져 있습니까? 무엇을 추가하시겠습니까?