워드프레스 404 요청이 갑자기 많을 때|서버 로그 원인 구분법
워드프레스에서 404 요청이 갑자기 늘면 페이지를 전부 리디렉션하거나 보안 플러그인부터 설치하기 쉽습니다. 하지만 깨진 내부 링크, 테마가 찾는 삭제된 이미지, 검색봇의 오래된 주소 방문, 자동화된 취약점 탐색은 해결 방법이 서로 다릅니다. 먼저 웹서버 접근 로그에서 어떤 URL이 누가 보낸 요청인지 구분해야 불필요한 리디렉션과 서버 부하를 줄일 수 있습니다.
404가 많다고 모두 문제가 되는 것은 아니다
| 로그에서 보이는 형태 | 가능한 원인 | 우선 조치 |
|---|---|---|
| 특정 글 주소 반복 | 글 이동 또는 외부의 오래된 링크 | 대체 글이 있으면 301 |
| CSS·JS·이미지 반복 | 테마·플러그인 경로 누락 | 원본 참조 경로 수정 |
| wp-admin 변형 경로 다수 | 자동화된 탐색 요청 | 빈도·IP·User-Agent 확인 |
| 존재하지 않는 무작위 주소 | 봇 또는 잘못 입력한 URL | 정상 404 유지 |
| 화면은 오류인데 상태 200 | 소프트 404 | 실제 404 상태로 수정 |

1단계: 404 URL 상위 목록 만들기
호스팅 관리 화면의 접근 로그나 Nginx·Apache access log에서 상태 코드 404를 먼저 필터링합니다. 아래 예시는 Nginx의 일반적인 combined 형식처럼 상태 코드가 아홉 번째 필드에 있는 경우입니다. 호스팅 로그 형식이 다르면 필드 위치도 달라질 수 있습니다.
awk '$9 == 404 {print $7}' access.log \
| sort | uniq -c | sort -nr | head -20
가장 많이 발생한 URL, 최초·마지막 발생 시각, 요청 횟수를 기록하세요. 전체 404 개수만 보면 한 주소가 반복되는 문제와 수천 개의 무작위 주소가 한 번씩 요청되는 문제를 구분할 수 없습니다.
2단계: Referer와 User-Agent로 출처 구분
- 내 사이트 주소가 Referer: 메뉴·본문·테마 안에 깨진 내부 링크가 있을 가능성
- 외부 사이트가 Referer: 오래된 공유 링크 또는 잘못 작성된 외부 링크
- Referer가 없고 경로가 무작위: 자동화 봇이나 직접 입력 요청 가능성
- 특정 User-Agent에서 폭증: 정상 검색봇인지 위장 문자열인지 IP와 함께 확인
User-Agent 문자열만 보고 Googlebot으로 단정하거나 차단하지 마세요. 문자열은 쉽게 위조할 수 있으며, 정상 검색봇 확인은 해당 서비스의 공식 검증 방법을 사용해야 합니다. 동일 IP의 요청 간격과 경로 패턴도 함께 봅니다.
3단계: 원인에 맞는 처리 선택
대체 페이지가 명확할 때만 301
글을 새 주소로 옮겼거나 같은 내용을 보강 글로 통합했다면 이전 주소를 새 주소로 301 이동합니다. 관련 없는 모든 404를 홈페이지로 보내면 방문자가 원하는 정보를 찾지 못하고 소프트 404로 판단될 수 있습니다.
삭제된 콘텐츠에 대체 글이 없을 때
해당 콘텐츠가 완전히 사라졌고 대체할 페이지도 없다면 정상 404 또는 410 상태를 유지합니다. 404 화면에는 홈, 카테고리, 인기 글 링크를 제공해 방문자가 다시 탐색할 수 있게 구성합니다.
이미지·CSS·JS가 반복될 때
리디렉션보다 해당 파일을 요청하는 글·테마·플러그인의 참조 주소를 고치는 것이 우선입니다. 개발자 도구의 Network에서 404 파일을 확인하고, 캐시를 비운 뒤 요청이 사라지는지 재검사하세요.
4단계: 조치 후 같은 시간대로 재측정
| 기록 항목 | 조치 전 | 조치 후 |
|---|---|---|
| 404 요청 수 | 같은 30분 구간 | 같은 30분 구간 |
| 상위 문제 URL | 요청 횟수 | 감소 여부 |
| 서버 응답시간 | 기준값 | 변화 확인 |
| 정상 페이지 오류 | 없음 확인 | 회귀 여부 확인 |
WordPress의 WP_DEBUG_LOG는 PHP 오류와 경고를 찾는 용도이고, 어떤 주소가 404를 반환했는지는 웹서버 접근 로그가 더 직접적인 자료입니다. 잠깐 디버깅이 필요하더라도 운영 화면에 오류를 노출하지 말고, 작업 전 백업과 테스트 환경을 준비하세요.

TIP
처음에는 상위 10개 URL만 처리하세요. 깨진 내부 링크와 누락된 정적 파일을 먼저 고치고, 명확한 이전 주소에만 301을 적용한 뒤, 무작위 봇 요청은 빈도와 서버 자원 영향을 확인해 방화벽 또는 호스팅 보안 기능에서 대응하는 순서가 안전합니다.




댓글 0
첫 댓글을 남겨보세요.