5단계: SEO 및 언어
목표: 검색 엔진과 AI 어시스턴트가 모든 페이지를 이해합니다. 이전 URL은 올바른 위치로 이동합니다. 각 추가 언어는 원본만큼 정확합니다.
SEO 단계
- 작업당 한 명의 소유자.
- SEO 플러그인(기본값: Rank Math)이 제목, 메타, 사이트맵 및 기본 스키마 그래프를 소유합니다.
- 코어의
schema.php는 사이트 자체 유형을 해당 그래프에 추가합니다. - 자체 스키마를 출력하는 도메인 플러그인은 침묵시켜, 서로 다른 두 개의 그래프가 아닌 하나의 그래프만 유지합니다.
tests/helpers/site.ts의 모든 페이지가npm run test:seo를 통과합니다:- 제목 10–65자;
- 설명 50–160자;
- 절대 정식 URL;
- 하나의 H1;
lang속성;- Google Fonts 요청 없음.
체크리스트 및 작성 규칙:
references/seo-checklist.md.
- 구조화된 데이터:
- 조직(또는 LocalBusiness)은 한 번만.
- 페이지별 항목 유형(Service, Product, TouristTrip, Course, …).
- 탐색 경로.
- FAQ는 실제로 페이지에서 답변된 질문에만.
- 가격이 없는
Offer는 절대 사용하지 마십시오. - Google의 리치 결과 테스트 및 Schema.org 검증기로 검증하세요.
- Robots, 사이트맵, llms.txt:
- 라이브 환경은 크롤링을 허용하고 사이트맵을 나열하며, 스테이징 환경은 모든 것을 차단합니다(코어가 처리함).
/llms.txt는 코어가 제공합니다.- 목적에 따라 AI 크롤러가 사이트를 읽을 수 있는지 결정한 다음, 엣지가 기본적으로 이를 차단하고 있지 않은지 확인하십시오(
wp-ship>cloudflare-edge.md).
- 리디렉션: 프로젝트의
docs/reference/REDIRECT_RULES.md를 따르십시오. 트래픽이나 백링크가 있는 모든 이전 URL을 가장 가까운 새 페이지에 매핑하고(301, 한 번의 점프), 각각을 테스트하십시오. - 큰 변경 전 동등성 확인. 재설계, 마이그레이션 또는 언어 출시 전에 모든 URL의 제목, 설명, 정식 URL 및 H1을 캡처하십시오. 각 단계 후에 비교하십시오. 의도된 변경에 대해서만 다시 캡처하고, 커밋에 이유를 기록하십시오.
- Search Console 및 Bing:
- 둘 다 인증;
- 사이트맵 제출;
- 첫 달 동안 매주 페이지 인덱싱 모니터링;
- Search Console은 16개월의 데이터만 보관하므로, 초기에 대량 내보내기를 활성화하거나 데이터를 내보내십시오.
언어 단계 (각 언어는 먼저 파일럿입니다)
references/multilingual.md를 따르십시오. 간단히:
- 규칙 제로: 원본 언어는 변경되지 않습니다. URL, 제목, 정식 태그 및 텍스트는 동일하게 유지됩니다(동등성 확인으로 증명됨).
- 파일럿: 언어 기반(Polylang, 전환기, hreflang,
.po/.mo문자열), 그다음 주요 페이지 및 상위 항목. 그런 다음 스테이징에서 네이티브 스피커 검토 후 게시합니다. - 나머지는 일괄적으로 제공되며, 각각 동일한 검토 과정을 거칩니다.
- 아직 게시되지 않은 언어는 원본 언어로 302 응답하며, 어디에도 나타나지 않습니다: 사이트맵, hreflang, 메뉴 또는 전환기에 표시되지 않습니다.
게이트 (SITE_STATUS.md에서 체크)
-
npm run test:seo가 스테이징에서 통과; 각 유형의 한 페이지에서 리치 결과 테스트 통과 - 라이브 환경에 대한 사이트맵, robots.txt 및 llms.txt가 올바름
- 이전 URL 리디렉션 맵이 적용되고 테스트됨(또는 "해당 없음")
- 각 추가 언어: 파일럿 통과, 네이티브 검토 완료, hreflang 쌍 완료, 언어별 정식 URL
한 번 배송한 버그, 확인하세요
- 번역된 홈페이지의 정식 URL이 원본 홈페이지를 가리켜 Google이 프랑스어 결과에서
/fr/을 제거하는 문제가 있었습니다. 번역된 페이지의 정식 URL은 번역된 URL입니다. - 프랑스어 페이지의 영어 JSON-LD: 스키마는 페이지의 언어를 따라야 하며, 번역될 때까지 생략해야 합니다.
- 게이트가 게시되지 않은 언어를 홈페이지로 301 리디렉션한 문제가 있었습니다. 게이트는 302입니다.