URL 검사 API에 넣은 글 29편이 전부 "URL is unknown to Google"이었습니다. 90일 노출이 1,888인 글까지 그랬습니다. 워드프레스가 준 주소는 소문자 퍼센트 인코딩(%ed%95%99)이었고, 구글은 대문자(%ED%95%99) 주소로 알고 있었습니다. 주소를 quote(unquote(u), safe="/:")로 다시 만들어 넣고, 노출이 있는 글 하나를 대조군으로 같이 넣습니다.
노출이 많은 글도 "구글이 모름"
한글 주소를 쓰는 워드프레스 사이트에서 글 상태를 한꺼번에 보려고, 서치콘솔 URL 검사 API에 29편을 넣었습니다. 결과는 29편 전부 아래와 같았습니다.
URL is unknown to Google
이상한 점은 그 가운데 90일 노출이 1,888인 글이 있었다는 것입니다. 검색 결과에 1,888번 나온 글을 구글이 모를 리는 없습니다. 돌아보니 그 전에 돌린 1,031건 결과도 대부분 unknown이었습니다. 그때는 이상하다고 여기지 않고 넘어갔습니다. 대조할 기준 없이 결과만 받아 보면, 틀린 결과도 그럴듯한 사실처럼 읽힙니다.
다른 날에는 반대 모양의 오류도 봤습니다. 손본 글 3편이 404로 나와 글이 사라진 줄 알고 원인을 캐러 들어갔는데, 글은 멀쩡했습니다.
인코딩의 대소문자, 그리고 두 번 인코딩
| 모양 | 원인 | 예 |
|---|---|---|
| 전부 unknown | 소문자 퍼센트 인코딩 주소로 물었다 | %ed%95%99 대신 %ED%95%99이어야 했다 |
| 몇 편만 404 | 이미 인코딩된 슬러그를 또 인코딩했다 | %가 %25로 바뀌었다 |
첫째, wp post list --fields=url이 내주는 주소는 소문자 퍼센트 인코딩이었습니다. 브라우저에서는 대소문자가 달라도 같은 글이 열리지만, URL 검사는 문자열이 정확히 같은 주소를 찾습니다. 그래서 소문자로 물으면 처음 보는 주소라고 답합니다.
둘째, 워드프레스 슬러그 가운데 일부는 DB에 이미 인코딩된 채로 들어 있었습니다. 그것을 quote()에 또 넣으니 %가 %25가 되었고, 멀쩡히 301로 넘어가던 주소가 404로 보였습니다.
왜 대문자인지도 짚어 둡니다. 퍼센트 인코딩의 대소문자는 표준(RFC 3986)상 같은 뜻이지만, 같은 문서는 대문자를 쓰라고 권합니다. 사이트맵이나 브라우저가 대문자로 알린 주소를 구글이 그대로 저장했다면, 소문자 주소는 글자로는 다른 주소가 됩니다.
주소는 코드로 한 가지 모양으로 만든다
한 번 풀었다가 다시 인코딩하면, 원래 소문자였든 대문자였든 이미 인코딩됐든 같은 모양이 나옵니다. 파이썬의 quote는 대문자 인코딩을 냅니다.
from urllib.parse import quote, unquote
def canon(u):
return quote(unquote(u), safe="/:")
print(canon("https://example.com/%ed%95%99/"))
# https://example.com/%ED%95%99/
슬러그만 따로 인코딩할 때는, 인코딩하기 전에 이미 %가 들어 있는지 먼저 봅니다.
path = slug if "%" in slug else quote(slug)
손으로 주소를 인코딩해 넣는 것도 피합니다. 한 글자만 틀려도 404가 나는데, 그러면 글이 없다고 잘못 읽게 됩니다. 로그에 주소가 있으면 그대로 복사해 쓰고, 새로 만들 때는 위 함수에 맡깁니다.
확인 방법
- 검사할 목록에 노출이 있는 글 하나를 대조군으로 함께 넣습니다.
- 대조군이 "색인됨"으로 나와야 검사 자체가 맞은 것입니다.
- 대조군까지 unknown이면 대상 글이 아니라 내가 만든 주소가 틀린 것입니다.
- 404가 몇 건만 섞여 나오면 글을 의심하기 전에 주소 만드는 코드부터 봅니다.
- 고친 뒤 같은 29편을 다시 넣어, unknown이 아닌 실제 상태(색인됨, 크롤링됨 같은 것)가 나오는지 봅니다.
이 대조군 습관이 없으면 "구글이 우리 글을 모른다"는 잘못된 결론으로 엉뚱한 처방을 하게 됩니다. 색인 보고서 숫자를 읽는 법은 서치콘솔 발견됨과 크롤링됨의 차이에, 사이트맵이 주소를 어떻게 알리는지는 사이트맵이 안 읽힐 때에 정리했습니다.
덧붙이면, 이번에는 대문자로 다시 넣자 결과가 맞아졌다는 경험으로 판단했습니다. 한글 슬러그 하나를 골라 소문자와 대문자 결과를 나란히 다시 찍어 두지는 않았습니다.
테스트한 환경
| 항목 | 값 |
|---|---|
| 도구 | 서치콘솔 URL 검사 API, wp-cli, 파이썬 urllib.parse |
| 대상 | 한글 주소를 쓰는 워드프레스 사이트 |
| 확인한 날짜 | 2026년 9월 23일, 9월 29일 |
이 글의 내용은 2026년 10월 5일에 마지막으로 확인했습니다. 틀린 곳을 발견하시면 연락처로 알려 주세요.