# WordPress SEO 설정 가이드 — Rank Math + 망보드
> 망보드(MangBoard) 기반 WordPress 쇼핑몰에서
> Rank Math SEO 플러그인으로 검색엔진 최적화하는 실전 가이드입니다.
---
# # 1. 사전 체크
## # 1.1 검색엔진 인덱싱 허용
**WordPress 관리자 → 설정 → 읽기 → "검색 엔진이 사이트를 인덱싱하도록 권장" 체크**
| 항목 | 확인 | 설명 |
|------|------|------|
| `blog_public` | `1` | `wp_options` 테이블에 저장된 값 |
| 효과 | 검색엔진이 페이지를 크롤링 가능 | `0`이면 모든 페이지가 차단됨 |
> 과거에 모든 페이지에 `<meta name="robots" content="noindex, nofollow"/>`가 걸려 있었다면
> 이 설정을 해제한 후 검색엔진이 자연 크롤링을 시작합니다.
## # 1.2 필요한 플러그인
| 플러그인 | 용도 |
|----------|------|
| **Rank Math SEO** (무료) | Title/Description/Keywords/OG/Sitemap 관리 |
| MangBoard (이미 설치됨) | 게시판 플랫폼 |
## # 1.3 MangBoard SEO 비활성화
망보드 자체 SEO 기능(og:title 자동 출력 등)은 **사용안함**으로 설정하세요:
**망보드 관리자 → 게시판 → SEO 설정 → "사용안함" 체크**
Rank Math만 사용하면 충돌을 피할 수 있습니다.
---
# # 2. SEO 메타 설정 방법
## # 2.1 SEO 관리 페이지 (권장)
```mermaid
flowchart LR
A["WordPress 관리자"] --> B["SEO 관리 메뉴 (검색 아이콘)"]
B --> C["페이지 목록"]
C --> D["Title 입력 (최대 70자)"]
D --> E["Description 입력 (최대 160자)"]
E --> F["Keywords 입력"]
F --> G["저장"]
G --> H["Rank Math DB에 즉시 반영"]
```
> Gutenberg 편집기에서는 저장 버튼이 비활성화될 수 있습니다.
> **반드시 SEO 관리 페이지를 사용하세요.**
## # 2.2 메타 입력 가이드
| 항목 | 권장 형식 | 최대 길이 |
|------|----------|----------|
| Title | `페이지명 \| 사이트명` | 70자 |
| Description | 핵심 내용 + 키워드 포함 | 160자 |
| Keywords | 핵심 키워드 3~5개, 쉼표표 구분 | - |
> **주의**: `<title>` 태그는 Rank Math가 설정한 값이 **그대로** 출력됩니다.
> WordPress 기본 `wp_title()` 포맷(`%title% %sep% %sitename%`)은 커스텀 Title이 비어있을 때만 사용됩니다.
> Title 값에 `| 사이트명`을 직접 포함해야 합니다.
## # 2.3 noindex (검색엔진 제외)
특정 페이지를 검색결과에서 제외하려면 **"검색엔진 노출 안함"** 체크:
| 설정 | 효과 |
|------|------|
| **체크** | 구글/네이버 검색결과에서 제외 + XML 사이트맵에서도 자동 제외 |
| **해제** | 검색엔진에 노출 (크롤링 시 자동 포함) |
> 게시판 페이지에 noindex를 설정하면 해당 게시판의 **목록 + 개별 글 + 댓글 전부**가 제외됩니다.
---
# # 3. Title 출력 구조
```mermaid
flowchart TD
A["rank_math_title (커스텀 Title 있음)"] --> B["그대로 사용"]
B --> C["wp_title 필터"]
C --> D["title 태그 출력"]
E["rank_math_title (커스텀 Title 없음)"] --> F["Rank Math 포맷 %title% %sep% %sitename%"]
F --> C
style A fill:#C8E6C9
style E fill:#FFF9C4
```
## # 사이트명 중복 문제
많은 테마는 `wp_title()` 호출 시 사이트명을 수동으로 추가하는 경우가 있습니다:
```php
// ❌ 사이트명 중복 발생
<title>페이지명 | 웰컴스 컴퓨터 | 웰컴스 컴퓨터</title>
// ✅ 커스텀 Title에 사이트명 포함 (wp_title 단일 호출)
$title = "페이지명 | 웰컴스 컴퓨터";
```
해결 방법: 테마 `header.php`에서 `wp_title()` 호출 시 두 번째 인자를 `false`로 설정하고,
Title 값에 사이트명을 직접 포함하세요.
---
# # 4. 사이트맵
## # 4.1 사이트맵이란?
```mermaid
flowchart TD
A["새 글 작성/수정"] --> B["Rank Math가 자동으로 사이트맵 갱신"]
B --> C["sitemap_index.xml 사이트맵 목록"]
C --> D["page-sitemap.xml 페이지 URL 목록"]
E["Google Search Console"] --> F["사이트맵 URL 제출 (최초 1회)"]
F --> G["Google 주기 크롤링"]
G --> H["새 페이지 색인"]
```
| 항목 | 설명 |
|------|------|
| 형태 | 실시간 생성되는 가상 URL (물리적 파일 없음) |
| URL | `/sitemap_index.xml` (목록), `/page-sitemap.xml` (페이지 목록) |
| 갱신 | 글 작성/수정 시 자동 반영 |
| 제출 | Google Search Console + 네이버 서치어드바이저 (최초 1회) |
## # 4.2 사이트맵에 포함할 페이지만 설정
검색엔진에 노출하고 싶은 페이지만 포함하세요.
유틸리티 페이지(로그인, 장바구니 등)은 제외하는 것이 좋습니다.
```mermaid
flowchart TD
A["전체 페이지"] --> B{"사이트맵 포함?"}
B -->|"YES"| C["사이트맵에 포함 검색엔진에 노출"]
B -->|"NO"| D["사이트맵에서 제외 검색결과 미노출"]
E["noindex 설정 페이지"] --> D
```
## # 4.3 사이트맵에서 제외하는 방법
**별도 작업 불필요.** SEO 관리 페이지에서 noindex를 체크하면 Rank Math가 자동으로 제외합니다.
| 방식 | 설명 |
|------|------|
| noindex 체크 | `rank_math_robots` 메타에 `noindex` 저장 → Rank Math가 사이트맵에서 자동 제외 |
| SQL 필터 (선택) | `rank_math/sitemap/get_posts/where` 훅으로 특정 페이지 ID 직접 제외 |
---
# # 5. 사이트맵 404 원인과 해결
## # 5.1 자주 발생하는 404
```mermaid
flowchart TD
A["사이트맵 404 에러"] --> B{"원인 확인"}
B -->|"rank-math-options-sitemap DB 옵션 없음"| C["DB 옵션 초기화 pt_page_sitemap=page"]
B -->|"post type 미포함"| C
B -->|"페이지 ID 미포함"| D["해당 페이지 noindex 해제"]
C --> E["사이트맵 정상 생성 ✅"]
D --> E
```
**자주 발생 원인** (실제 경험):
Rank Math의 사이트맵 옵션(`rank-math-options-sitemap`)이 DB에 존재하지 않으면,
모든 post type이 사이트맵에서 제외되어 빈 사이트맵이 생성됩니다.
**해결**: DB에 옵션 초기화
| 키 | 값 | 설명 |
|----|-----|------|
| `items_per_page` | `200` | 한 사이트맵당 최대 페이지 수 |
| `pt_page_sitemap` | `"page"` | **페이지 사이트맵 활성화** (중요) |
| `pt_post_sitemap` | `""` | 블로그 포스트 (없으면 빈 값) |
| `attachments` | `"off"` | 미디어 사이트맵 비활성화 |
| `ts_archives` | `"off"` | 날짜별 아카이브 비활성화 |
| `authors_sitemap` | `"off"` | 작성자 사이트맵 비활성화 |
---
# # 6. SNS 메타 (OG)
## # 6.1 OG 메타란?
카카오톡, 네이버 블로그 등 SNS에 링크를 공유할 때 보이는 썸네일입니다.
```mermaid
flowchart LR
A["SEO 관리 페이지에 Title/Description 저장"] --> B["Rank Math가 자동 동기화"]
B --> C["og:title og:description og:url"]
C --> D["SNS 공유 시 썸네일에 표시"]
C --> E["og:image (별도 업로드 필요)"]
```
| 메타 | 자동 동기화 | 설명 |
|------|-----------|------|
| `rank_math_title` | 수동 입력 | 검색결과 제목 |
| `rank_math_description` | 수동 입력 | 검색결과 설명 |
| `rank_math_facebook_title` | ✅ Title과 동기화 | 카카오톡 공유 제목 |
| `rank_math_facebook_description` | ✅ Description과 동기화 | 카카오톡 공유 설명 |
| `rank_math_twitter_title` | ✅ Title과 동기화 | 트위터 공유 제목 |
| `rank_math_twitter_description` | ✅ Description과 동기화 | 트위터 공유 설명 |
| `rank_math_facebook_image` | ❌ **수동 업로드 필요** | 카카오톡/네이버 공유 이미지 |
## # 6.2 OG Image 제작 가이드
| 항목 | 권장 사양 |
|------|-----------|
| 크기 | **1200 x 630px** |
| 제작 도구 | Canva (canva.com) — "OG Image" 템플릿 무료 |
| 내용 | 로고 + 페이지별 핵심 문구 + 브랜드 컬러 |
| 업로드 | Rank Math → Social 탭 → Facebook Image |
## # 6.3 카카오톡 OG 캐시 초기화
과거에 공유한 링크가 이전 정보로 표시되면:
- https://developers.kakao.com/tool/clear/og 접속
- URL 입력 후 캐시 삭제
---
# # 7. 검색엔진 등록
## # 7.1 등록 순서
```mermaid
flowchart TD
A["1. SEO 설정 완료"] --> B["2. Google Search Console 속성 추가"]
B --> C["3. 소유권 확인 (HTML 태그 또는 DNS)"]
C --> D["4. 사이트맵 제출 /sitemap_index.xml"]
D --> E["5. 네이버 서치어드바이저 사이트 등록"]
E --> F["6. 네이버 사이트맵 제출"]
F --> G["✅ 크롤링 시작"]
style A fill:#E8F5E9
style G fill:#C8E6C9
```
| 검색엔진 | 등록 URL | 사이트맵 제출 |
|-----------|---------|-------------|
| **Google** | https://search.google.com/search-console | Sitemaps → URL 입력 |
| **네이버** | https://searchadvisor.naver.com | 사이트 등록 → 수집 요청 |
## # 7.2 색인 요청 방법
| 상황 | 구글 | 네이버 |
|------|------|------|
| 새 글 작성/수정 | **자동** (수시~수주) | 느림 (수일~수주) |
| 가격/정보 변경 | **수동 요청 권장** | 수동 요청 권장 |
| 페이지 삭제 | **수동 요청 권장** | 수동 요청 권장 |
| noindex 변경 | 자동 반영 | 수동 요청 권장 |
> 구글은 IndexNow 미지원, 네이버는 빠르게 반영되지 않으므로
> 중요한 변경 시에는 수동으로 요청하는 것이 좋습니다.
---
# # 8. Instant Indexing (IndexNow)
Rank Math의 Instant Indexing 모듈이 활성화되면 새 글 발행 시 **Bing**에 자동 색인 요청이 전송됩니다.
| 항목 | 설명 |
|------|------|
| 대상 | Bing (post, page) |
| 구글 적용 | ❌ 불가 (구글은 IndexNow 미지원) |
| 구글 빠른 색인 | Google Search Console → "색인 생성 요청" |
---
# # 9. 비밀글과 검색엔진 색인 제거
## # 9.1 비밀글의 동작
```mermaid
flowchart TD
A["비밀글 게시판의 글"] --> B{"접근자"}
B -->|"작성자 / 관리자"| C["✅ 열람 가능"]
B -->|"다른 사용자 / 비회원"| D["❌ 404 + noindex"]
D --> E["검색엔진 다음 크롤링 시 자동 색인에서 제거"]
E --> F["며칠~수주 소요"]
style D fill:#FFCDD2
```
> 비밀글 상세 페이지에 접근하면 HTTP 404 + `<meta name="robots" content="noindex, nofollow">`가 반환됩니다.
> 404 응답이면 검색엔진이 다음 크롤링 시 자동으로 제거합니다.
## # 9.2 수동 색인 삭제 (빠르게 지우고 싶을 때)
| 검색엔진 | 도구 | 방법 |
|-----------|------|------|
| **Google** | Google Search Console | URL 검사 → "색인 삭제 요청" |
| **네이버** | 서치어드바이저 | "웹 페이지 수집 요청/차단" → robots.txt + noindex로 차단 |
> Google의 "삭제"는 6개월 임시 삭제입니다.
> 비밀글 전환 시 404 + noindex가 이미 설정되므로 영구 삭제됩니다.
---
# # 10. 크롤링 모니터링
```
site:example.com # 전체 색인 목록
site:example.com/info/ # 특정 경로만
```
- Google Search Console → **인덱싱 → 페이지** 에서 상세 확인 가능
- 특정 URL 삭제 요청 가능
## # 네이버
```
site:example.com # 전체 색인 목록
```
- 네이버 서치어드바이저 → **사이트 현황** 에서 색인 통계 확인
---
# # 11. 체크리스트
## # 초기 설정
- [ ] WordPress "검색 엔진 인덱싱 권장" 체크
- [ ] Rank Math 플러그인 설치 및 활성화
- [ ] MangBoard SEO 사용안함으로 설정
- [ ] 사이트맵 정상 생성 확인 (`/sitemap_index.xml`)
- [ ] 각 페이지별 Title, Description, Keywords 입력
- [ ] Title에 사이트명 포함 (wp_title 중복 방지)
## # 사이트맵
- [ ] 사이트맵에 원하는 페이지만 포함
- [ ] 유틸리티 페이지 noindex 설정
- [ ] `rank-math-options-sitemap` DB 옵션 확인
- [ ] `pt_page_sitemap` = `"page"` 설정 확인
## # 검색엔진 등록
- [ ] Google Search Console 속성 추가 + 소유권 확인
- [ ] 사이트맵 URL 제출 (`/sitemap_index.xml`)
- [ ] 네이버 서치어드바이저 사이트 등록
- [ ] 네이버 사이트맵 제출
## # 사후 관리
- [ ] 글 수정/삭제 시 필요시 수동 색인 요청
- [ ] 비밀글 전환 시 수동 삭제 요청 (구글)
- [ ] OG Image 제작 및 업로드 (1200×630px)
- [ ] 주기적으로 `site:도메인` 검색으로 색인 현황 모니터링
---
# # 12. 참고 링크
| 자료 | URL |
|------|-----|
| Google Search Console | https://search.google.com/search-console |
| 네이버 서치어드바이저 | https://searchadvisor.naver.com |
| Rank Math 문서 | https://rankmath.com/kb/ |
| OG 캐시 초기화 | https://developers.kakao.com/tool/clear/og |
| Google Sitemaps | https://www.sitemaps.org/protocol.html |
| 네이버 웹마스터도구 | https://searchadvisor.naver.com |
| 이전 | 네이버쇼핑 입점 가이드 | 김재석 | 2026-04-28 |
|---|---|---|---|
| 다음 | KG 이니시스 관련 기록 | 김재석 | 2026-04-28 |