SEO 실전 팁 모음¶
비개발자용. 홈페이지/블로그 운영하면서 알게 된 SEO 관련 팁과 오해 정리.
워드프레스 REST API 자동 발행과 SEO¶
결론: 불이익 없음¶
구글은 "어떻게 올렸느냐"가 아니라 "무슨 내용이냐"를 본다.
- REST API로 올리든, 관리자 화면에서 올리든 → 구글 입장에서 동일
- 사람이 쓴 글을 API로 발행 = 그냥 "발행 방법이 다를 뿐"
- Yoast SEO, RankMath 등도 REST API 연동을 공식 지원하고 있음
구글이 패널티 주는 경우¶
| 상황 | 패널티? | 이유 |
|---|---|---|
| 직접 쓴 글을 API로 발행 | X | 발행 방법은 무관 |
| AI로 초안 → 사람이 편집 → API로 발행 | X | 최종 품질이 좋으면 OK |
| AI로 대량 생산, 검토 없이 자동 발행 | O | 저품질 + 순위 조작 의도 |
| 같은 내용 복붙해서 여러 사이트에 자동 발행 | O | 중복 콘텐츠 스팸 |
구글 공식 입장 (2024~)¶
"AI를 포함한 자동화를 사용해 검색 순위 조작을 주된 목적으로 콘텐츠를 생성하는 것은 스팸 정책 위반이다. 그러나 자동화(AI 생성 포함)의 모든 사용이 스팸은 아니다."
핵심: 의도와 품질이 기준. 방법(API/수동)은 무관.
오히려 API가 SEO에 유리한 점¶
- 메타 제목, 메타 설명, 포커스 키워드를 스크립트로 자동 세팅 가능
- 발행할 때마다 SEO 필드 깜빡하는 실수 방지
- 카테고리, 태그, 슬러그도 일관되게 관리
참고 출처¶
- WordPress REST API and SEO - AIOSEO
- Does Google Penalize AI Content in 2026? - Keywords Everywhere
- Auto Publish to WordPress from AI - TrySight
- Setting Yoast SEO fields via API - WordPress.org
네이버 SEO vs 구글 SEO 차이¶
(우리집은 네이버 블로그 + 워드프레스 홈페이지 둘 다 운영)
| 항목 | 네이버 | 구글 |
|---|---|---|
| 자동 발행 API | X (2020 종료) | O (워드프레스 REST API) |
| SEO 메타태그 | 거의 무시 | 핵심 랭킹 요소 |
| 키워드 밀도 | 중요 | 자연스러움 우선 |
| 이미지 alt 태그 | 약간 영향 | 중요 |
| 발행 빈도 | 많을수록 유리 | 품질 우선 |
| 백링크 | 거의 무시 | 핵심 랭킹 요소 |
SEO에 좋은 사이트 구조 (Astro/정적사이트 기준)¶
한의원 사이트 벤치마킹(carat.im, qplace.kr, gogumafarm.kr 등)에서 배운 것.
모든 페이지에 자동 적용할 것 (레이아웃에 세팅)¶
| 요소 | 설명 |
|---|---|
| JSON-LD BlogPosting | headline, author, publisher, datePublished/Modified, image |
| JSON-LD Organization | 회사명, 로고, sameAs(SNS 링크) |
| OG article 태그 | published_time, section, tag |
| canonical 태그 | 모든 페이지에 자동 삽입 |
| robots meta | max-image-preview:large |
| 다중 사이트맵 | sitemap.xml + 카테고리별 사이트맵 |
| RSS 피드 | /rss 또는 /feed |
| 검색 인증 | 구글 Search Console + 네이버 서치어드바이저 |
글 본문 구조 (구글 상위 노출 패턴)¶
[대표 이미지 + 상세 alt 태그]
# 글 제목 (H1)
[목차 - 클릭 가능한 앵커 링크]
## 섹션 1 (H2)
### 세부 항목 (H3)
## FAQ - 자주 묻는 질문 (H2) <- PAA(People Also Ask) 노출 가능
## 관련 글 (H2) <- 내부 링크 3개 (체류시간 증가)
[CTA 배너]
상위 노출 사이트 공통점: 1. JSON-LD BlogPosting 필수 - 모든 상위 사이트가 사용 2. 글 하단에 관련 글 3개 - 내부 링크로 체류시간 증가 3. FAQ 섹션 - 구글 PAA 영역 노출 가능 4. dateModified 최신 유지 - 업데이트하면 구글이 신선도 인식 5. 목차 앵커 링크 - 구글이 사이트링크로 표시해줌
이미지 SEO¶
- alt 태그: 50~70자, 키워드 포함, 구체적 설명
- 나쁜 예:
alt="사진",alt="인테리어" - 좋은 예:
alt="세종 한의원 대기실 바이오필릭 디자인 자연 소재 인테리어 사례" - WebP 자동 변환 + lazy loading (페이지 속도 = SEO 랭킹 요소)
- OG 이미지 세팅 (카톡/SNS 공유 시 썸네일)
URL 구조¶
- 한글 슬러그 사용:
/content/전자책-출판-비용-가이드 - 네이버 SEO 유리 + 카톡 공유 시 제목 보임
- 한번 정한 URL 구조 절대 바꾸지 않기 (SEO 손실)
네이버 + 구글 동시 공략 핵심¶
| 요소 | 네이버 | 구글 |
|---|---|---|
| JS 렌더링 | 잘 못함 - 순수 HTML 필수 | 잘 읽음 |
| 최신성 | 중요 (새 글 빨리 뜨고 빨리 내려감) | 한번 올라가면 오래 유지 |
| 페이지 속도 | 참고 수준 | Core Web Vitals = 랭킹 요소 |
| 외부 사이트 노출 | 서치어드바이저 등록 필수 | sitemap + 구조화 데이터 |
Astro가 SEO에 최적인 이유: 순수 HTML 출력(네이버 OK) + 빠른 속도(구글 OK)
AI 검색(GEO) 노출¶
- 콘텐츠 깊이와 양 > 기술적 SEO
- 롱테일 키워드 제목: "전자책 출판 비용 A to Z 완전 가이드"
- 비교/가이드/체크리스트 형태가 AI 인용에 유리
검색 등록 체크리스트¶
- [ ] Google Search Console 등록 + sitemap 제출
- [ ] 네이버 서치어드바이저 등록 + sitemap 제출
- [ ] GA4 연동
- [ ] RSS 피드 생성
- [ ] robots.txt 확인
GSC 색인 진단 가이드 (2026-06-12, storywinner 실전)¶
GSC "페이지 색인이 생성되지 않음" 보고서를 읽는 법. 사유별로 심각도가 완전히 다르다 - 숫자 크다고 겁먹지 말 것.
사유별 트리아지 (중요도순)¶
| 사유 | 의미 | 대응 |
|---|---|---|
| 크롤링됨 - 색인 안 됨 | 구글이 읽었는데 "색인할 가치 부족" 판단 | ⭐ 진짜 신호. 본문 얇음(thin content)이 주범. 콘텐츠 보강 |
| 발견됨 - 색인 안 됨 | URL은 알지만 아직 크롤링 안 함 | 대부분 시간 문제. 새 사이트면 기다리기 |
| 찾을 수 없음(404) | 깨진 링크 | 옛 사이트 잔재면 무시(자연 소멸). 대응 페이지 있으면 301 |
| 리디렉션 포함 | 301/308 걸린 URL | 정상 동작. 무시 |
| 적절한 표준 태그 대체 | canonical이 다른 페이지 지정 | 정상 동작(슬래시 유무 등). 무시 |
| robots.txt 차단 | 우리가 막은 것 | 의도된 차단(/api/, /admin/)이면 무시 |
"크롤링됨 - 색인 안 됨" 해결 = 본문 보강¶
- storywinner 책 상세 페이지: 본문 600~900자(소개 1문단+목차) → 색인 보류됨
- 해결: 서점 공식 책소개 풀텍스트 + 전체 목차 + 저자 약력으로 확장 (지어낸 내용 0 - 팩트 원칙)
- 추가로 내부 링크("이 작가의 다른 책") + BreadcrumbList JSON-LD
- 효과 타임라인: 배포 → 재크롤링 며칠 → 색인 판단 2~4주. 열흘 만에 50권 중 5권 이탈 확인. 조급해하지 말 것
GSC 데이터 다루기¶
- 사유별 URL 목록은 API 미제공 - GSC UI에서 사유 클릭 → 내보내기 → 엑셀 (사유별로 따로)
- 엑셀엔 시트 3개: 차트(일별 추이) / 테이블(URL+최종 크롤링) / 메타데이터(사유)
- 단건 확인은 URL Inspection API 가능 (하루 2,000건, OAuth 토큰 재사용)
- "최종 크롤링" 날짜가 보강 배포일 이후면 = 구글이 새 본문을 봤고 판단 중
사이트 이전 시 옛 URL 처리 (Oopy/노션 → 자체 사이트)¶
- 옛 사이트 인덱싱이 0건이었으면 404 잔재는 트래픽 손실 0 → 방치해도 됨
- 단, 대응 페이지가 있는 옛 슬러그는 301로 회수 (혹시 모를 백링크 + GSC 정리)
- CF Pages
_redirects에 한글 경로 그대로 써도 매칭됨 (퍼센트 인코딩 불필요, 실측 검증) - 옛 슬러그의 숫자 꼬리표(
-2408등)는 날짜(2024-08)인 경우 많음 → 콘텐츠 날짜와 대조해 정확히 매핑 - 공백 포함 슬러그(
/deepseek -r1-...)는_redirects형식상 표현 불가 → 포기 /cdn-cgi/l/email-protection404 = Cloudflare 이메일 보호가 만드는 노이즈. 무시 (본문에 이메일 주소 노출 자체를 피하면 예방)
트레일링 슬래시 중복¶
/slug와/slug/가 GSC에 둘 다 잡혀도 문제 아님- Astro(directory 빌드) + CF Pages = 슬래시 없는 쪽이 308로 슬래시 버전 이동 + canonical도 슬래시 버전 지정 → 구글이 알아서 통합
이력¶
| 날짜 | 항목 | 내용 |
|---|---|---|
| 2026-06-12 | GSC 색인 진단 | 사유별 트리아지 + thin content 보강 + 옛 URL 301 (storywinner 실전) |
| 2026-03-18 | SEO 사이트 구조 | 한의원 벤치마킹 기반 SEO 구조 정리 |
| 2026-03-17 | REST API SEO | 워드프레스 API 자동 발행, 구글 패널티 없음 확인 |