워드프레스를 일정 기간 운영하다 보면 방문자가 많지 않은데도 서버가 느려지거나 간헐적으로 접속이 지연되는 상황을 겪게 된다. 처음에는 플러그인 충돌이나 테마 문제로 생각하기 쉽지만, 실제 원인은 사이트 내부가 아니라 외부 접근 패턴인 경우가 많다. 특히 기본 로그인 주소인 /wp-login.php는 워드프레스 사이트라면 반드시 존재한다고 가정되는 경로이기 때문에 자동화된 접근 시도가 집중되는 지점이다.
이 접근은 특정 사이트를 노린 공격이라기보다 인터넷 전체를 대상으로 한 스캐닝에 가깝다. 프로그램이 웹을 순회하면서 워드프레스가 설치된 주소를 찾고 로그인 요청을 반복한다. 로그인에 성공하지 못하더라도 서버 입장에서는 매번 인증 처리를 수행해야 한다. 즉 방문자가 실제로 로그인하지 않더라도 워드프레스는 로그인 기능을 계속 실행하게 된다.
로그인 페이지가 서버 자원을 사용하는 이유
워드프레스의 일반 게시글 페이지는 캐시를 사용할 수 있지만 로그인 페이지는 그렇지 않다. 로그인 요청이 들어오면 다음 과정이 매번 수행된다.
- PHP 실행
- 워드프레스 코어 로딩
- 사용자 정보 조회
- 데이터베이스 접근
- 비밀번호 검증
- 세션 생성
이 과정은 단순 페이지 열람보다 훨씬 많은 자원을 요구한다. 로그인 실패가 반복될수록 데이터베이스 호출과 PHP 실행이 계속 발생하며, 소형 클라우드 인스턴스에서는 CPU 점유율이 눈에 띄게 상승한다. 일정 수준을 넘으면 사이트 응답이 느려지고, 심한 경우 Gateway Timeout과 같은 오류로 이어진다.
중요한 점은 이 현상이 방문자 수와 무관하게 발생한다는 것이다. 실제 이용자가 많지 않아도 자동화된 접근이 지속되면 서버 부하는 동일하게 증가한다.

로그인 주소 변경의 원리
로그인 주소 변경은 보안 장치라기보다 서버 동작 방식을 바꾸는 방법에 가깝다. 기본 로그인 주소를 그대로 두면 스캐너는 정확히 로그인 페이지에 도달하고 워드프레스가 매번 인증 처리를 실행한다.
예를 들어 기본 주소가 다음과 같다고 가정하면
/wp-login.php
로그인 주소를 변경하면 실제 로그인 페이지는 다른 경로로 이동한다.
/my-login
이때 자동화된 접근은 여전히 /wp-login.php로 접속하지만 서버는 로그인 페이지를 실행하지 않고 단순 오류 페이지(404)를 반환한다. 즉 공격 시도는 계속 존재하지만 워드프레스 인증 과정이 실행되지 않는다. 결과적으로 서버가 처리해야 하는 작업량이 줄어든다.
핵심은 공격을 막는 것이 아니라 워드프레스가 불필요하게 실행되지 않도록 만드는 것이다.
Cloudflare와의 관계
Cloudflare를 적용하면 로그인 시도 중 상당수는 서버에 도달하기 전에 차단된다. WAF 규칙과 챌린지 기능이 자동화된 요청을 걸러내기 때문이다. 그러나 모든 요청이 완전히 제거되지는 않는다. 정상 접근으로 판단되는 일부 요청이나 단순 스캔은 서버까지 전달될 수 있다.
이때 로그인 주소가 기본값이라면 워드프레스는 여전히 로그인 처리를 수행한다. 반대로 로그인 주소가 변경되어 있으면 서버는 워드프레스를 실행하지 않고 즉시 오류 응답을 반환한다.
정리하면 다음과 같다.
- Cloudflare: 의심스러운 요청을 네트워크 단계에서 선별
- 로그인 주소 변경: 워드프레스 실행 자체를 최소화
두 방법은 같은 기능이 아니라 서로 다른 위치에서 작동하며 동시에 적용될 때 효과가 커진다.
WPS Hide Login 플러그인 적용 방법
로그인 주소 변경은 워드프레스 코어 파일을 수정해 구현할 수도 있지만 권장되지 않는다. 업데이트 시 설정이 사라지고 관리가 복잡해지기 때문이다. 가장 일반적으로 사용되는 방법은 WPS Hide Login 플러그인을 이용하는 것이다.
이 플러그인은 워드프레스 로그인 URL만 재지정하고 코어 파일은 변경하지 않는다. 설치 후 별도의 복잡한 설정 없이 새 로그인 주소만 지정하면 바로 적용된다.
설치 절차는 다음과 같다.
- 워드프레스 관리자 페이지 접속
- 플러그인 → 새로 추가
- “WPS Hide Login” 검색 후 설치 및 활성화
- 설정 → 일반(General) 메뉴 이동
- 페이지 하단의 Login URL 항목에 새 주소 입력
예시:
login
이렇게 설정하면 로그인 주소는 다음과 같이 바뀐다.
https://도메인/login
이후 기존 주소(/wp-login.php, /wp-admin)로 접속하면 로그인 화면이 나타나지 않는다.
적용 후 주의사항
가장 중요한 것은 새 로그인 주소를 반드시 기억하는 것이다. 주소를 잊어버리면 관리자 로그인 화면에 접근할 수 없다. 이 경우 SSH나 데이터베이스에서 플러그인을 비활성화해 복구할 수 있지만 일반 사용자에게는 번거로운 과정이 될 수 있다.
또한 주소를 지나치게 단순하게 설정하는 것은 피하는 것이 좋다. admin, login, wordpress처럼 예측 가능한 단어는 스캐닝 대상이 될 수 있으므로 임의의 문자열을 사용하는 것이 바람직하다.

실제 운영에서의 변화
설정 이후 Cloudflare 보안 이벤트나 서버 로그를 보면 /wp-login.php 접근 시도는 계속 존재한다. 다만 이전과 달리 워드프레스 로그인 처리 요청은 거의 발생하지 않는다. 이는 공격이 사라진 것이 아니라, 서버가 그 요청을 처리하지 않게 되었음을 의미한다.
그 결과 다음과 같은 변화가 나타난다.
- 로그인 시도 트래픽 감소
- 데이터베이스 호출 감소
- CPU 점유율 안정화
- 간헐적 지연 감소
특히 소형 Lightsail 인스턴스에서는 체감 효과가 크게 나타나는 경우가 많다.
정리
로그인 주소 변경은 해킹 방지 기능이라기보다 서버 부하 관리 전략에 가깝다. 워드프레스 기본 로그인 경로는 자동화된 접근의 주요 대상이며, 이 요청이 반복될수록 인증 과정이 계속 실행되어 자원을 소비한다. 로그인 주소를 변경하면 공격 자체가 사라지는 것은 아니지만 워드프레스 실행이 줄어들어 서버 부담이 감소한다.
Cloudflare가 외부 접근을 선별한다면 로그인 주소 변경은 내부 프로그램 실행을 최소화한다. 두 설정을 함께 적용하면 서버에 도달하는 요청과 서버가 처리하는 작업이 동시에 줄어들며, 이는 안정적인 워드프레스 운영 환경을 유지하는 데 중요한 역할을 한다.












Leave a Reply