AdSense ‘가치가 별로 없는 콘텐츠’ 거절 후 실제로 사이트를 개선한 과정

AdSense ‘가치가 별로 없는 콘텐츠’ 거절 후 실제로 사이트를 개선한 과정

Google AdSense 승인을 신청한 뒤 기대했던 승인 메시지 대신 다음 문구를 받았습니다.

AdSense 가치가 별로 없는 콘텐츠 승인 거절

처음에는 글이 부족해서 생긴 문제라고 생각하기 쉽습니다.

하지만 AI365Lab에는 이미 수십 개의 게시글이 있었고, 단순히 글 개수가 부족한 상황은 아니었습니다.

오히려 사이트를 다시 살펴보니 문제가 반대쪽에 있었습니다.

콘텐츠는 많았지만 비슷한 주제의 글이 지나치게 많았고, 일부 글은 실제 경험보다 일반적인 AI 활용 설명에 가까웠습니다.

Google도 AdSense용 사이트에는 방문자에게 관련성이 있고 고유한 콘텐츠와 사용하기 쉬운 사이트 경험이 필요하다고 안내하고 있습니다.

그래서 이번에는 글을 더 만드는 대신 사이트 전체를 다시 정리하기로 했습니다.

실제로 진행한 작업은 다음과 같습니다.

AdSense 승인 거절
↓
거절 사유 확인
↓
ads.txt 문제 해결
↓
중복 홈페이지 정리
↓
전체 게시글 분석
↓
저가치·중복 콘텐츠 정리
↓
대표 콘텐츠 통합
↓
301 리디렉션
↓
서버 응답 직접 검사
↓
공통 페이지 오류 수정
↓
Googlebot 기준 HTML 검사
↓
법적 페이지 구조 수정
↓
대표 콘텐츠 품질 강화
↓
재심사 준비
이 글에서는 AI365Lab에서 실제로 어떤 문제를 발견했고 어떻게 수정했는지 순서대로 기록합니다.

1. 가장 먼저 확인한 것은 AdSense의 실제 거절 사유였다

AdSense 사이트 상태에서 확인한 핵심 문제는:

가치가 별로 없는 콘텐츠
였습니다.

같은 화면에서:

Ads.txt
찾을 수 없음
상태도 함께 확인됐습니다.

두 문제는 구분해서 처리해야 했습니다.

ads.txt는 기술적인 설정 문제이고, 가치가 별로 없는 콘텐츠는 사이트 전체 콘텐츠 품질과 구조에 관련된 문제였습니다.

따라서 ads.txt만 수정하고 바로 재심사를 요청하는 방식은 선택하지 않았습니다.

먼저 기술적인 문제를 해결한 뒤 콘텐츠 구조를 전면적으로 점검하기로 했습니다.


2. ads.txt부터 정상화했다

AdSense 계정에서 게시자 ID를 확인하고 Hostinger의 WordPress 루트 디렉터리에 ads.txt를 추가했습니다.

기본 구조는 다음과 같습니다.

public_html/
├─ wp-admin/
├─ wp-content/
├─ wp-includes/
├─ wp-config.php
├─ index.php
└─ ads.txt
ads.txt에는 AdSense에서 요구하는 형식의 판매자 정보를 넣었습니다.
google.com, pub-게시자ID, DIRECT, f08c47fec0942fa0
그 다음 브라우저에서:
https://ai365lab.io/ads.txt
를 직접 열었습니다.

파일 내용이 일반 웹페이지가 아니라 텍스트로 정상 표시되는 것을 확인했습니다.

Google은 ads.txt 상태가 Not found라면 사이트 루트에 올바른 게시자 ID가 포함된 ads.txt를 배치하고 다시 확인하도록 안내합니다.

실제로 배운 점

WordPress에 AdSense 코드가 설치되어 있다고 해서 ads.txt까지 자동으로 해결되는 것은 아니었습니다.

AdSense 코드
≠
ads.txt
두 설정은 별도로 확인해야 했습니다.

3. /home/ 중복 홈페이지를 발견했다

다음으로 사이트 URL 구조를 확인했습니다.

메인 홈페이지는:

https://ai365lab.io/
인데 별도로:
https://ai365lab.io/home/
도 존재했습니다.

사용자 입장에서는 거의 같은 홈페이지가 두 URL로 존재하는 구조였습니다.

그래서 Rank Math 리디렉션을 이용해:

/home/
↓ 301
/
로 정리했습니다.

단순히 브라우저에서 이동하는지만 확인하지 않고 PowerShell에서 실제 HTTP 응답도 검사했습니다.

curl.exe -I https://ai365lab.io/home/
정상 결과:
HTTP/1.1 301 Moved Permanently
X-Redirect-By: Rank Math
Location: https://ai365lab.io/
이 결과를 확인한 뒤 중복 홈페이지 문제를 종료했습니다.

4. 가장 큰 문제는 글 부족이 아니라 글 중복이었다

AI365Lab에는 처음에 총 57개의 게시글이 있었습니다.

사이트 전체를 다시 살펴보면서 비슷한 검색 의도를 가진 글이 상당히 많다는 것을 발견했습니다.

예를 들어 다음과 같은 주제였습니다.

AI 1인 사업 수익 구조
AI 1인 사업 비용 구조
AI 자동화와 1인 사업
AI가 바꾸는 미래 일자리
AI와 인간의 역할
제목은 조금씩 달랐지만 본문의 핵심 구조는 비슷했습니다.

또 다른 그룹에서는:

ChatGPT 업무 자동화
반복 업무 자동화
ChatGPT 업무 비서
이메일 자동화
AI 생산성
이 서로 겹쳤습니다.

블로그 콘텐츠도 마찬가지였습니다.

AI 블로그 자동화
AI 블로그 글쓰기 자동화
ChatGPT 블로그 작성
AI 콘텐츠 제작 워크플로
24시간 콘텐츠 자동화
각각 독립된 글로 유지할 정도로 검색 의도가 다른지 다시 판단했습니다.

5. 57개 글을 모두 유지하지 않았다

처음에는 글이 많을수록 AdSense에 유리할 것이라고 생각할 수도 있습니다.

하지만 이번 정리에서는 반대로 접근했습니다.

비슷한 글을 많이 유지하는 것보다 하나의 대표 콘텐츠를 충분히 강화하는 방향을 선택했습니다.

실제 정리 후 WordPress 상태는:

전체 게시글: 57개

발행:
14개

임시글:
43개
가 되었습니다.

즉 단순히 글을 조금 수정한 것이 아니라 공개 콘텐츠 구조 자체를 크게 재편했습니다.


6. 중복 글은 대표 콘텐츠로 통합했다

기존 글을 무조건 삭제하지 않았습니다.

먼저 검색 의도가 가장 명확하고 내용 확장이 가능한 글을 대표 콘텐츠로 선택했습니다.

예를 들어 견적·청구 관련 글은 여러 개가 있었습니다.

견적서 자동화
제안서 자동화
반복 청구
현금흐름
WordPress 견적 워크플로
이를 하나의 대표 콘텐츠:

WordPress+AI로 견적·청구 자동화 시스템 구축하기

로 통합했습니다.

기존 글에서 유용한 내용을 대표글로 옮긴 뒤 기존 URL은 대표 URL로 연결했습니다.

구조는 다음과 같습니다.

기존 글 A ─┐
기존 글 B ─┼→ 대표글
기존 글 C ─┘
이와 같은 방식으로:
견적·청구
고객응대
1인 사업
AI 에이전트
인간의 미래 역량
ChatGPT 업무자동화
AI 블로그 자동화
ChatGPT 프롬프트
AI 이미지
블로그 수익화
등의 중복군을 정리했습니다.

7. 임시글로 바꾸기 전에 301(리디렉션)을 먼저 설정했다

기존 글을 바로 임시글이나 삭제 상태로 만들지는 않았습니다.

먼저 대표글을 완성하고:

기존 URL
↓
301 Permanent Redirect
↓
대표 URL
을 만들었습니다.

그 다음 기존 콘텐츠를 임시글로 변경했습니다.

이렇게 하면 기존 URL을 방문하는 사용자가 빈 페이지나 오류 화면을 보는 대신 관련성이 높은 대표 콘텐츠로 이동할 수 있습니다.


8. 브라우저 확인만으로 끝내지 않았다

처음에는 Chrome 시크릿 창에서 이전 URL을 입력해 대표글로 이동하는지 확인했습니다.

하지만 재심사 준비 과정에서는 한 단계 더 확인했습니다.

PowerShell에서 직접 HTTP 헤더를 검사했습니다.

예:

curl.exe -I https://ai365lab.io/solo-entrepreneur-ai-automation-strategy/
실제 응답:
HTTP/1.1 301 Moved Permanently
X-Redirect-By: Rank Math
Location: https://ai365lab.io/ai-automation-solo-business-costs-revenue-strategy/
이 결과를 통해 단순한 화면 이동이 아니라 서버가 실제로 301 Moved Permanently를 반환하고 있다는 것을 확인했습니다.

9. 리디렉션을 하나씩 검사하지 않고 일괄 검사했다

URL 수가 늘어나면서 PowerShell 배열을 이용해 여러 URL을 한 번에 검사했습니다.

예:

$urls = @(
"https://example.com/old-page-1/",
"https://example.com/old-page-2/",
"https://example.com/old-page-3/"
)

foreach ($url in $urls) {

    Write-Host "`n=========================="
    Write-Host $url

    curl.exe -s -I $url |
    Select-String "HTTP/|Location:|X-Redirect-By:"
}
정상 URL에서는 다음 세 항목을 확인했습니다.
HTTP/1.1 301 Moved Permanently
X-Redirect-By: Rank Math
Location: 올바른 대표글
최종적으로 Rank Math에는 36개의 활성 리디렉션이 구성됐습니다.

그중 대부분의 URL은 curl을 통해 서버 수준의 301 응답까지 직접 확인했고, 한글 URL은 브라우저에서도 정상 이동을 확인했습니다.


10. 과장된 숫자 표현을 제거했다

기존 글을 점검하면서 다음과 같은 제목과 표현도 발견했습니다.

업무시간 30% 감소
고객응대 70% 감소
75% 단축
80% 단축
인건비 50% 감소
문제는 이 수치 중 일부가 실제 AI365Lab의 측정 데이터가 아니라 예시나 목표에 가까웠다는 점입니다.

그래서 실제 측정 근거가 없는 숫자는 삭제했습니다.

앞으로는 다음처럼 사용하기로 했습니다.

잘못된 방식

AI 도입으로
업무시간 80% 단축
대신:
실제 측정 후

평균 처리시간
8분 → 4분
측정기간: 4주
처럼 직접 기록한 데이터가 있을 때만 수치를 사용합니다.

11. 가상 사례와 실제 사례를 구분했다

일부 글에서는:

실제 사례
라는 제목 아래 실제로는 예상 가능한 결과나 가상의 사업 시나리오가 들어가 있었습니다.

이런 내용은:

가상 적용 시나리오
로 변경했습니다.

실제로 테스트하지 않은 내용을 실제 사례처럼 표현하지 않는 것이 기본 원칙입니다.


12. 사이트 공통 문구에서도 미완성 요소를 발견했다

콘텐츠만 문제가 아니었습니다.

사이트 푸터를 확인하는 과정에서 다음 문자열이 방문자에게 노출되고 있었습니다.

trans-contact_email
실제 이메일 주소나 문의 링크가 아니라 내부 변수처럼 보이는 문구였습니다.

이를 실제 문의 페이지로 연결되는:

문의하기
링크로 수정했습니다.

또 사이트 소개에서 사용하던:

오늘 당장 업무 시간을 반으로 줄이는
같은 검증되지 않은 성과 표현도 제거했습니다.

그리고:

지식만을 큐레이션
이라는 표현 대신 사이트의 실제 운영 방향을 반영하도록 변경했습니다.

현재 AI365Lab의 설명은 AI와 자동화를 직접 구축·테스트하고 설정 과정, 오류와 개선 결과를 기록하는 방향으로 맞췄습니다.


13. Googlebot이 받는 HTML도 직접 검사했다

브라우저에서 정상으로 보인다고 끝내지 않았습니다.

Googlebot User-Agent를 사용해 실제 서버 HTML도 확인했습니다.

예:

curl.exe -sL `
-A "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" `
-H "Cache-Control: no-cache" `
https://ai365lab.io/
그리고 다음과 같은 오래된 문자열이 남아 있는지 검사했습니다.
trans-contact_email
업무 시간을 반으로
큐레이션
매일 업데이트
오타 문자열
홈페이지, 소개, 문의, 개인정보처리방침, 이용약관을 검사했고 해당 문자열이 더 이상 서버 HTML에 존재하지 않는 것을 확인했습니다.

14. 개인정보처리방침과 이용약관의 H1도 검사했다

사이트 법적 페이지 구조도 확인했습니다.

PowerShell에서 HTML의 H1 개수를 계산했습니다.

$html = curl.exe -sL https://example.com/privacy-policy/

$count = (
    [regex]::Matches(
        $html,
        '<h1\b',
        'IgnoreCase'
    )
).Count

Write-Host "H1 개수: $count"
처음 검사 결과는:
개인정보처리방침
H1 개수: 2

이용약관
H1 개수: 2
였습니다.

WordPress 페이지 제목이 H1인데 본문에도 같은 H1을 다시 넣어둔 상태였습니다.

본문의 중복 H1을 제거한 뒤 다시 검사했습니다.

결과:

개인정보처리방침
H1 개수: 1

이용약관
H1 개수: 1
로 수정됐습니다.

15. 단순 AI 설명 글을 실제 구축형 콘텐츠로 바꾸기 시작했다

중복 글을 줄이는 것만으로 충분하다고 생각하지 않았습니다.

남은 대표 콘텐츠도 살펴봤습니다.

예를 들어:

AI로 유튜브 콘텐츠 만드는 방법

이라는 글이 단순히:

주제 선정
대본
영상
수익화
정도의 일반적인 설명에 머물러 있다면 인터넷의 다른 AI 글과 차별화하기 어렵습니다.

그래서 실제 제작 구조를 포함하도록 강화했습니다.

장면별 이미지
↓
TTS
↓
장면별 WAV
↓
음성 길이 계산
↓
SRT 자막
↓
FFmpeg
↓
BGM
↓
최종 MP4
또 실제 작업 과정에서 발생할 수 있는:
이미지 누락
잘못된 경로
검은 화면
BAT 특수문자 오류
FFmpeg 문제
자막 싱크 문제
등도 포함하도록 변경했습니다.

16. AI 블로그 자동화 글도 생산량 중심에서 품질 중심으로 바꿨다

블로그 자동화 대표글 역시:

AI로 많은 글을 만든다
가 중심이 되지 않도록 했습니다.

대신:

주제 후보
↓
중복 확인
↓
검색 의도
↓
자료 조사
↓
AI 초안
↓
사람 검수
↓
WordPress 임시글
↓
발행
↓
Search Console
↓
기존 글 개선
구조로 변경했습니다.

특히 자동화 시스템에서는 공개 상태를:

publish
보다:
draft
로 먼저 저장하고 사람이 검수한 글만 공개하는 방향을 사용합니다.

17. SEO 글은 Search Console 실제 운영 중심으로 바꿨다

SEO 콘텐츠 역시:

키워드를 넣는다
AI로 글을 쓴다
검색 노출을 높인다
같은 일반적인 설명만으로 구성하지 않았습니다.

Google Search Console에서 실제로 확인할 수 있는:

클릭
노출
CTR
평균 위치
검색어
페이지
를 이용해 기존 콘텐츠를 개선하는 흐름으로 변경했습니다.

Google은 Search Console의 검색 실적 보고서를 통해 검색어, 페이지, 클릭과 노출 등의 데이터를 분석할 수 있다고 안내합니다.


18. 글을 많이 발행하는 자동화는 일단 중단했다

AdSense 거절 후 가장 중요한 결정 중 하나였습니다.

사이트를 정리하는 동안 새로운 자동 콘텐츠가 계속 발행되면 중복 문제를 해결하기 어려워집니다.

그래서 재심사 준비 단계에서는:

새 글 대량 생성
❌
보다:
기존 대표글 강화
✅
를 우선했습니다.

19. 현재 사이트 구조

정리를 시작하기 전:

전체 글
57개
현재:
발행
14개

임시글
43개
로 바뀌었습니다.

중요한 것은 14개라서 좋은 사이트라는 의미가 아닙니다.

AdSense가 공식적으로 요구하는 특정 최소 게시글 수가 있다는 의미도 아닙니다.

이번 정리의 목적은 비슷한 글을 여러 개 유지하는 대신 각각의 공개 글이 명확한 역할을 갖도록 만드는 것이었습니다.

Google은 사이트 승인 과정에서 사이트 전체를 검토하며, 고유하고 관련성이 높은 콘텐츠와 좋은 사용자 경험을 확인한다고 설명합니다.


20. 이번 작업에서 가장 크게 배운 점

글이 많다고 가치가 높은 것은 아니다

57개의 비슷한 글
보다:
14개의 명확한 대표 콘텐츠
가 사이트 구조를 이해하기 쉬웠습니다.

AI 사용 자체가 문제가 아니라 최종 가치가 중요하다

AI를 사용해:

목차
초안
분류
표
를 만들 수 있습니다.

하지만 최종 글에는:

직접 테스트
실제 설정
오류
실패
수정
실제 결과
같은 정보가 있어야 다른 글과 차별화하기 쉽습니다.

Google 역시 AdSense 사이트에 고유하고 방문자에게 관련성 있는 콘텐츠와 좋은 사용자 경험이 필요하다고 설명합니다.


실제로 확인하지 않은 성과를 숫자로 쓰지 않는다

70% 단축
80% 증가
50% 비용절감
같은 표현보다 실제 측정 데이터를 기록하는 것이 좋습니다.

자동화보다 검수 시스템이 더 중요할 수 있다

콘텐츠 자동화에서는:

AI 생성
↓
즉시 발행
보다:
AI 생성
↓
임시글
↓
사람 검수
↓
발행
방식이 품질 관리에 적합했습니다.

21. AdSense 재심사 전 최종 체크리스트

현재 재심사를 준비하면서 다음 항목을 확인하고 있습니다.

□ ads.txt 정상 접근
□ 홈페이지 정상
□ /home/ 중복 301
□ 기존 콘텐츠 301
□ 임시글 공개 차단
□ 대표 콘텐츠 품질
□ 근거 없는 성과 수치 제거
□ 실제·가상 사례 구분
□ 소개 페이지
□ 문의 페이지
□ 개인정보처리방침
□ 이용약관
□ 푸터 오류
□ 중복 H1
□ 내부링크
□ Search Console
□ Sitemap
□ 모바일 화면
□ Googlebot 접근
하나라도 문제가 발견되면 바로 재심사를 요청하기보다 먼저 수정할 계획입니다.

22. 아직 결과를 성공 사례라고 부르지 않는 이유

이 글을 작성하는 현재 시점에서 AdSense 재심사는 아직 최종 완료되지 않았습니다.

따라서:

이 방법으로 AdSense 승인을 받았다.

라고 말할 수 없습니다.

현재 정확한 표현은:

AdSense의 ‘가치가 별로 없는 콘텐츠’ 거절 후 사이트를 전면적으로 정리하고 재심사를 준비하는 과정

입니다.

재심사 결과가 나오면 이 글에 실제 결과를 추가할 예정입니다.

승인된다면:

재심사 요청 날짜
심사 기간
승인 날짜
추가 수정 여부
를 기록할 수 있습니다.

다시 거절된다면 거절 사유와 두 번째 개선 과정 역시 그대로 기록할 수 있습니다.


마무리

AdSense의 가치가 별로 없는 콘텐츠 거절을 받은 뒤 처음에는 몇 개의 글을 더 작성하거나 ads.txt만 고치면 되는 문제라고 생각할 수 있었습니다.

하지만 사이트 전체를 다시 점검하면서 실제 문제는 훨씬 넓다는 것을 확인했습니다.

AI365Lab에서 진행한 개선은 다음과 같습니다.

ads.txt
↓
중복 홈페이지
↓
57개 글 전수 점검
↓
43개 임시글
↓
14개 대표 콘텐츠
↓
36개 리디렉션
↓
HTTP 301 검증
↓
Googlebot HTML 검사
↓
공통 푸터 오류 제거
↓
H1 구조 수정
↓
대표글 품질 강화
↓
재심사 준비
이 과정에서 가장 크게 바뀐 것은 글의 개수가 아닙니다.

사이트 운영 기준이 바뀌었습니다.

앞으로는:

많이 발행한다
보다:
실제로 테스트한다
↓
과정을 기록한다
↓
오류를 설명한다
↓
결과를 측정한다
↓
기존 글을 개선한다
방식을 우선할 계획입니다.

AdSense 재심사 결과가 나오면 이 글 역시 결과를 추가해서 업데이트할 예정입니다.