[Blog Platform] 구글 ADSense(애드고시) 재수 — 워드프레스 SEO와 애드센스 반려기

10월 2일 아침, 메일함에 구글 애드센스 메일이 한 통 와 있었다. 그것도 스팸(Junk) 꼬리표를 달고. 제목은 “애드센스를 사용하려면 사이트에서 발견된 문제를 수정해야 합니다.” 열어 보기 전부터 무슨 내용인지 알 것 같았다.

애드센스 승인은 이미 티스토리(axgo.tistory.com)에서 받아 둔 상태였다. 그 글 15편을 그대로 byitx.com 으로 옮겼고 계정도 같았다. 그러니 이번에도 당연히 붙을 거라고 생각했다. 블로그를 옮긴 바로 그날 심사를 넣은 것도 그래서였다. 결과는 보름 만의 반려였다.

이 글은 티스토리에서 워드프레스로 옮기면서 무엇이 달라졌는지, 왜 애드센스 심사를 처음부터 다시 받아야 했는지, SEO 를 위해 워드프레스에 무엇을 했는지, 반려 뒤에 무엇을 다시 손봤는지 적은 기록이다. 한마디로 애드고시 재수생의 오답 노트다. 블로그를 워드프레스로 옮기게 된 사연과 서버 구성은 앞 글에 적었다.

목차
  1. 티스토리에서는 글만 쓰면 됐다
  2. 티스토리 승인은 byitx.com 으로 따라오지 않았다
  3. 검색 유입도 가져올 수 없었다
  4. 다시 한다면 개인 도메인부터 연결하겠다
  5. 워드프레스로 옮기며 진행한 SEO 작업
  6. 검색엔진 등록과 소유 확인
  7. 사이트맵에서 뺄 것부터 뺐다
  8. 글마다 붙는 설명과 공유 카드
  9. 발행하면 바로 알리는 IndexNow
  10. 소개·연락·개인정보처리방침
  11. 글 화면도 다시 만졌다
  12. 자신만만하게 넣은 심사, 보름 만의 반려
  13. 뒤늦게 정신 차리고 다시 손본 것들
  14. 광고 코드는 심사받는 곳에만
  15. 심사자가 처음 도착하는 곳은 axgo
  16. blog 는 비우고 다시 쌓는다
  17. 분량이 없는 페이지는 색인에서 뺐다
  18. 글마다 검색 결과용 제목과 설명
  19. 애드고시 재수를 앞두고

티스토리에서는 글만 쓰면 됐다

티스토리 시절을 돌아보면 신경 쓴 건 글뿐이었다. 사이트맵과 RSS, 검색 결과에 나오는 설명, 카카오톡으로 공유할 때 뜨는 카드, HTTPS 인증서까지 플랫폼이 알아서 했다. 애드센스도 플러그인으로 계정을 연결하면 끝이었다. 심사를 앞두고 고민한 것도 “글이 읽을 만한가” 하나였다.

워드프레스로 오니 그 일이 전부 내 몫이 됐다. 오라클 무료 서버에 워드프레스 멀티사이트를 올리고 Cloudflare 를 앞에 세운 구조라 페이지 머리말에 들어가는 태그 한 줄도 내가 넣지 않으면 없다. 옮기고 나서 정리해 보니 달라진 점이 생각보다 많았다.

항목티스토리워드프레스
주소티스토리 기본 주소내 도메인 byitx.com 의 하위 주소
서버와 HTTPS티스토리가 맡는다오라클 무료 서버와 Cloudflare TLS·Tunnel 로 직접 운영
사이트맵·RSS자동으로 만들어진다워드프레스 기본 사이트맵을 손봐서 쓴다
검색엔진 등록다음 검색은 따로 등록하지 않아도 됐다구글·네이버·Bing·다음·Brave 모두 직접 등록
설명·공유 카드·구조화 데이터스킨이 처리한다SEO 플러그인과 직접 만든 MU플러그인
검색에서 뺄 페이지플랫폼 기본값저자·날짜·검색·첨부·2쪽 이후·글 적은 태그를 직접 noindex
광고 코드와 ads.txt플러그인으로 연결코드를 직접 넣고 ads.txt 도 직접 낸다
광고 자리본문 상단은 2023년 6월부터 티스토리 몫전부 내가 정한다
애드센스 심사 단위axgo.tistory.com 하나byitx.com 도메인 전체
한국에서 첫 응답국내 서버라 빠르다Cloudflare 무료 요금제가 북미 엣지로 보내 0.5초 안팎

이 표에서 나를 재수생으로 만든 건 아래에서 두 번째 줄, 심사 단위다.

티스토리 승인은 byitx.com 으로 따라오지 않았다

애드센스는 2023년 2월부터 사이트를 도메인 단위로 받는다. 애드센스 도움말을 보면 사이트 목록에 올릴 수 있는 건 세 가지다. byitx.com 같은 도메인, 공개 접미사 목록에 오른 플랫폼의 하위 도메인, 애드센스 플랫폼 파트너가 관리하는 사이트. 이미 등록한 사이트의 하위 도메인은 따로 추가할 필요가 없다.

axgo.tistory.com 은 세 번째 경우였다. 티스토리 블로그 하나가 사이트 하나로 승인을 받았다. 그 승인은 주소에 붙어 있다. 글을 그대로 옮겨도 주소가 바뀌면 새 사이트다. 계정은 이미 승인돼 있어서 신원 확인을 다시 하지는 않았지만 사이트 심사는 byitx.com 으로 처음부터 다시 받아야 했다.

내가 놓친 게 하나 더 있었다. byitx.com 을 심사한다는 건 그 아래 하위 도메인을 전부 함께 본다는 뜻이다. blog, axgo, news, tech, www, 개발용 dev- 주소까지 한 사이트로 묶인다. 티스토리 때는 내 블로그 하나만 보면 됐는데, 이제는 도메인 안에 있는 모든 것이 심사 대상이었다.

검색 유입도 가져올 수 없었다

티스토리 기본 주소에는 옛 글 주소를 새 주소로 넘기는 301 리다이렉트를 걸 방법이 없다. 서버가 내 것이 아니기 때문이다. 스킨에 스크립트를 넣어 다른 도메인으로 보내는 방법이 있긴 하지만 운영정책에 걸릴 수 있어서 쓰지 않았다. 결국 글 15편은 비공개로 돌리고 새 주소를 알리는 안내 글 하나만 남겼다. 6년 동안 쌓인 검색 노출은 axgo.tistory.com 에 그대로 두고 왔다.

다시 한다면 개인 도메인부터 연결하겠다

티스토리도 개인 도메인을 연결할 수 있다. 처음부터 axgo.byitx.com 을 티스토리에 연결해 두었다면 이야기가 달랐을 것이다. 애드센스 승인은 byitx.com 으로 받았을 테고 검색엔진도 byitx.com 주소로 글을 기억했을 것이다. 플랫폼을 워드프레스로 바꾸는 날에는 DNS 를 새 서버로 돌리고 옛 글 주소를 새 글 주소로 301 해 주면 끝이다. 도메인이 그대로니 승인도 검색 노출도 따라온다.

블로그를 처음 열 때는 티스토리 주소면 충분하다고 생각했다. 지금 다시 시작한다면 첫 글을 쓰기 전에 개인 도메인부터 연결하겠다. 언젠가 플랫폼을 옮기게 되면 들고 갈 수 있는 건 도메인뿐이다.

워드프레스로 옮기며 진행한 SEO 작업

글을 옮긴 9월 17일부터 보름 가까이는 SEO 를 붙잡고 있었다. 티스토리가 알아서 해 주던 일을 하나씩 다시 만드는 일이었다. 글 한 편을 발행했을 때 검색엔진 쪽으로 무엇이 나가는지 그림으로 그리면 이렇다.

검색엔진 등록과 소유 확인

구글 Search Console 에는 byitx.com 을 도메인 속성으로 등록했다. 도메인 속성은 DNS 의 TXT 레코드로 소유를 확인하는데 이 레코드도 Terraform 코드로 넣었다. 하위 도메인이 몇 개든 속성 하나로 다 본다.

네이버 서치어드바이저, Bing 웹마스터 도구, 다음, Brave 에도 등록했다. Zum 은 이제 사이트 등록을 받지 않는다. 네이버와 Bing 의 소유 확인은 HTML 파일로 했다. 네이버는 메타 태그 방식이면 1년마다 다시 인증해야 하지만 파일 방식은 그럴 일이 없다. 파일은 워드프레스가 아니라 앞단의 nginx 가 바로 내준다. 그래서 테마나 플러그인을 바꿔도 소유 확인이 풀리지 않는다.

사이트맵에서 뺄 것부터 뺐다

워드프레스는 사이트맵(wp-sitemap.xml)을 기본으로 만든다. 그런데 그대로 두면 사용자 사이트맵에 관리자 계정 이름이 주소째 드러난다. 사용자 사이트맵은 목록에서 빼고 그 주소는 404 를 내게 했다.

검색 결과에 나올 이유가 없는 페이지에는 noindex 를 붙였다. 저자 목록, 날짜별 목록, 검색 결과, 첨부 파일 페이지, 목록의 2쪽 이후다. 모두 같은 글을 순서만 바꿔 다시 보여 주는 페이지다.

글마다 붙는 설명과 공유 카드

처음 옮겼을 때 글에는 설명(description)도, 공유 카드(Open Graph)도, 구조화 데이터도 없었다. 카카오톡이나 슬랙에 링크를 붙이면 맨 주소만 덩그러니 나왔다. 그래서 가벼운 SEO 플러그인인 Slim SEO를 넣었다. 이제 글마다 설명, 공유 카드 이미지, 트위터 카드, canonical 주소, Article·Person·BreadcrumbList 구조화 데이터가 붙는다. 저자 이름은 한글 ‘앜쓰고’, 영문 ‘axgo’ 로 맞췄다.

여기서 헤맸던 부분이 있다. Slim SEO 의 사이트맵 기능을 켜면 워드프레스 기본 사이트맵이 꺼지고 주소가 /sitemap.xml 로 바뀐다. 이미 검색엔진에 제출한 /wp-sitemap.xml 은 404 가 된다. 게다가 검색 비공개로 둔 개발 사이트에서도 사이트맵을 내보냈다. 때문에 Slim SEO의 사이트맵 기능은 끄고 WP의 기본 사이트맵을 그대로 써야했다.

발행하면 바로 알리는 IndexNow

IndexNow 는 글이 생기거나 바뀌거나 지워졌을 때 검색엔진에 바로 알리는 규약이다. 한 번 보내면 Bing, 네이버, Yandex 같은 참여 검색엔진이 함께 받는다. 구글은 IndexNow를 지원하지 않아 사이트맵을 이용해야한다. 이 일은 작은 플러그인(mu-plugin)을 직접 만들어 맡겼다. 글을 저장할 때마다 보낼 주소를 모아 두었다가 12분쯤 뒤에 한 번에 보낸다. 처음 등록할 때는 작성한 포스팅과 페이지 18개를 한꺼번에 보냈다.

소개·연락·개인정보처리방침

티스토리에서 옮기면서 소개, 연락, 개인정보처리방침 페이지를 새로 썼다. 개인정보처리방침에는 애드센스가 쿠키로 광고를 고른다는 것과 그 쿠키를 끄는 방법을 적었다.

소개 페이지에는 누가 무엇을 쓰는 곳인지, 글을 쓸 때 AI 도구를 어디까지 쓰는지, 광고가 왜 붙는지를 적었다.

글 화면도 다시 만졌다

검색으로 들어온 사람이 다른 글로 넘어갈 길이 있어야 해서 테마도 다시 만졌다. 글마다 목차와 상단 위치 표시(브레드크럼)를 달고 글 끝에는 저자 소개를, 본문 중간과 끝에는 관련 글 ‘이어서 읽기’ 를 붙였다. 홈 화면 이미지는 WebP 로 바꾸고 크기를 맞춰 689 KB 에서 159 KB 로 줄였다. 티스토리에서 가져온 백업들도 워드프레스 블록 방식으로 글을 수정했다.

SEO 점검은 스크립트로 확인한다. 서버에서 돌리면 소유 확인 파일, robots.txt, 사이트맵, RSS 피드, 공유 카드, IndexNow 전송 기록까지 한 번에 확인할 수 있도록 했다.

글 한 편의 머리말을 열어 보면 MU플러그인이 넣어준 값이 보인다.

이 정도면 됐다고 생각했다. 사이트맵은 심플하고 검색엔진 다섯 곳에 등록하면서 공유 카드도 붙었다. 애드센스 심사까지 넣어 둔 상태였다.

자신만만하게 넣은 심사, 보름 만의 반려

애드센스 심사는 9월 17일, 색인을 연 바로 그날 넣었다. 사이트 목록에 byitx.com 을 추가하고 ads.txt 로 소유를 확인한 뒤 검토를 요청했다. 걱정은 없었다. 한 번 통과한 글이고 그 글을 그대로 옮겼으니까.

문제를 만든건 심사를 기다리는 보름 동안 내가 한 일들 때문이었다. 승인이 나면 바로 광고가 나가게 하려고 9월 24일 무렵 blog 와 axgo 에 광고 코드를 넣었고 9월 29일에는 blog, www, news, tech, axgo 다섯 곳으로 넓혔다. 그때 blog.byitx.com 은 막 문을 연 참이었다. 9월 24일 시험 글을 비운 뒤로 엿새 동안 글이 하나도 없었고 그 뒤에도 막 쓰기 시작한 글 몇 편뿐이었다. news 와 tech 는 아예 비어 있었고 www 는 blog 를 그대로 보여 주는 별칭이었다.

그리고 10월 2일 아침, (두둥) 그 메일이 왔다.

사이트 페이지에 적힌 사유는 ‘가치가 별로 없는 콘텐츠’ 였다. 처음엔 억울했다. 같은 글이 티스토리에서는 통과했는데? 그런데 심사받은 도메인이 axgo.tistory.com 이 아니라 byitx.com 이라는 걸 떠올리니 짚이는 데가 있었다.

구글은 반려 근거를 자세히 알려 주지 않는다. 그래서 아래는 내 추정이다.

  • 심사 단위는 byitx.com 전체다. 애드센스 사이트 보고서에도 axgo 와 함께 blog 가 잡혀 있었다.
  • 광고 코드가 있는 blog 페이지에는 글이 없거나 몇 편뿐이었다. 심사자 눈에는 광고 자리만 있는 빈 사이트로 보였을 것이다.
  • blog 는 검색 비공개(noindex)라서 괜찮다고 생각했다. 하지만 애드센스 크롤러(Mediapartners-Google)는 광고 코드가 실행되는 페이지를 직접 찾아온다. 구글 문서에 따르면 이 크롤러는 robots.txt 의 전역 규칙(*)도 무시한다.
  • axgo 에는 글 14편에 태그 페이지가 95개가 붙어 있었다. 글이 1~3편뿐인 태그 페이지가 모두 색인 대상이었고 사이트맵에도 실려 있었다.

티스토리 때는 글만 좋으면 됐다. 도메인을 내 것으로 가져오니 그 도메인 안의 모든 페이지가 내 블로그가 됐다. 그 차이를 몰랐다.

뒤늦게 정신 차리고 다시 손본 것들

반려 메일을 받고 닷새가 지난 10월 7일에야 원인을 제대로 따져 봤다. 앞 그림의 오른쪽이 그 뒤에 바꾼 모습이다.

광고 코드는 심사받는 곳에만

10월 7일, 다섯 곳의 광고 코드를 모두 뺐다. 게시자 ID 와 ads.txt 는 그대로 두었다. 그리고 10월 9일, 심사자가 처음 도착할 axgo 한 곳에만 다시 켰다. 광고 단위는 아직 비워 두어서 화면에 광고 자리는 보이지 않고 애드센스와 사이트를 이어 주는 스크립트만 나간다.

심사자가 처음 도착하는 곳은 axgo

byitx.com 과 www.byitx.com 은 둘 다 axgo.byitx.com 으로 301 리다이렉트를 하도록 했다. 중간에 착지점을 blog 로 바꿨다가 하루 만에 axgo 로 되돌리는 갈팡질팡도 있었다. 지금은 심사자가 byitx.com 을 열면 글 17편이 있는 axgo 로 바로 간다.

axgo 의 소개와 연락 페이지에는 blog.byitx.com 링크가 있었다. 심사자가 그 링크를 따라 아직 글이 적은 blog 로 넘어갈 수 있어서 링크는 빼고 글자만 남겼다.

blog 는 비우고 다시 쌓는다

시험 기간에 올린 blog 글 27편은 모두 지웠다. 앞으로 blog 에 올릴 글은 최소 길이를 1,500자로 올리고 하루에 두 편은 시간이 지나도 읽을 만한 해설로 채우기로 했다.

분량이 없는 페이지는 색인에서 뺐다

글이 5편 미만인 태그 페이지는 noindex, follow 로 바꾸고 사이트맵에서도 뺐다. 글 14편에 태그 페이지 95개는 누가 봐도 이상한 숫자였다. 분류(카테고리) 페이지는 글을 묶어 주는 목록이라 그대로 색인한다.

글마다 검색 결과용 제목과 설명

티스토리에서 가져온 글에는 검색 결과용 제목과 설명이 따로 없어서 본문 앞 160자가 설명으로 나가고 있었다. 10월 9일, 글 17편에 검색 결과용 제목(30자 안팎)과 설명(100~130자)을 따로 넣었다. 본문 그림 16장에는 그림 내용을 말로 옮긴 대체 텍스트(alt)를 달았다. 티스토리에서 넘어오며 ‘#’ 이 섞여 한 덩어리가 된 태그도 나눴다. 이 글도 같은 자리에 제목과 설명을 넣었다.

반려 뒤 저장소에 남은 커밋만 추려 보면 이렇다.

애드고시 재수를 앞두고

티스토리 때는 애드센스 심사를 앞두고 글만 다듬었다. 그때는 그게 맞는 준비였다. 서버도, 사이트맵도, 광고 코드가 어디에 들어가는지도 티스토리가 정했으니까.

워드프레스로 옮기면서 내가 맡게 된 건 서버만이 아니었다. 도메인 전체가 심사 대상이 됐고 그 안의 빈 서브도메인 하나, 태그 페이지 하나까지 내 블로그, 내 책임이 됐다. SEO 에는 보름을 쓰면서 정작 애드센스가 무엇을 보는지는 따져 보지 않았다. 광고 코드를 먼저 깔고 글을 나중에 채운 순서도 거꾸로 였던것 같다.

티스토리에서 워드프레스로 옮기려는 사람이 있다면, 재수생으로서 이것만은 먼저 챙기라고 말하고 싶다.

  • 티스토리를 쓰는 동안 개인 도메인을 연결해 둔다. 승인과 검색 노출을 들고 나갈 수 있는 건 도메인뿐이다.
  • 심사를 넣기 전에 도메인 안의 호스트를 전부 적어 본다. 글이 없는 곳에는 광고 코드를 넣지 않는다.
  • 개발용 주소는 검색 비공개로 두고 운영 글이 복제돼 공개되지 않게 막는다.
  • 태그·저자·날짜 목록처럼 같은 글을 다시 보여 주는 페이지는 noindex 하고 사이트맵에서 뺀다.
  • 소개·연락·개인정보처리방침을 갖추고 개인정보처리방침에는 애드센스 쿠키 고지를 넣는다.
  • 글마다 검색 결과용 제목과 설명, 대표 이미지, 대체 텍스트를 넣는다.
  • 심사자가 처음 도착할 주소를 하나로 정하고 심사 중에는 바꾸지 않는다.

재심사는 이번 정리를 마친 뒤에 다시 넣는다. 붙든 떨어지든 결과는 이어서 적겠다. 이번에는 스팸함이 아니라 받은편지함에서 좋은 소식을 보고 싶다.

댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

댓글은 운영자가 확인한 뒤 공개됩니다. 이메일은 공개되지 않습니다.

공유하기

[Blog Platform] 구글 ADSense(애드고시) 재수 — 워드프레스 SEO와 애드센스 반려기

axgo.byitx.com

LINE텔레그램밴드XFacebook