워드프레스 플러그인 충돌: 오류 원인 찾는 진단 순서

워드프레스 플러그인 충돌은 두 개 이상의 플러그인, 테마, 워드프레스 코어 또는 서버 환경이 같은 기능에 관여하면서 예상하지 못한 오류를 만드는 상태입니다. 화면이 완전히 멈추는 경우만 충돌이 아닙니다. 글 저장 실패, 관리자 버튼 무반응, 모바일 메뉴 오작동, 결제·문의 폼 오류, 특정 사용자에게만 나타나는 문제도 충돌일 수 있습니다.

중요한 것은 플러그인을 무작정 삭제하는 것이 아니라 문제를 재현하고, 영향을 주는 요소를 하나씩 분리한 뒤, 같은 조건에서 다시 검증하는 것입니다. 아래 순서는 실제 사이트를 망가뜨리지 않으면서 원인을 좁히기 위한 점검 절차입니다.

먼저 증상을 네 가지로 나눈다

증상 먼저 확인할 곳 대표적인 단서
치명적 오류·흰 화면 복구 모드 메일, PHP 오류 로그 플러그인 폴더와 PHP 파일 경로
버튼·메뉴·편집기 무반응 브라우저 개발자 도구의 Console JavaScript 오류, 중복 로딩
저장·예약·메일 발송 실패 PHP 로그, WP-Cron, 캐시 Ajax·REST API·스케줄 작업 오류
특정 사용자·기기에서만 발생 로그인 상태, 쿠키, 브라우저 확장 기능 캐시 분기 또는 권한 차이

이 분류를 먼저 하면 PHP 문제를 브라우저 캐시만 지우며 찾거나, 자바스크립트 문제를 데이터베이스 오류로 오해하는 일을 줄일 수 있습니다.

진단 전에 반드시 기록할 정보

오류를 고치기 전에 아래 정보를 메모합니다. 지원 포럼이나 제작사에 문의할 때도 그대로 사용할 수 있습니다.

  • 오류가 발생한 정확한 주소와 시간
  • 로그인 여부와 사용자 권한
  • 사용한 브라우저·기기와 재현 여부
  • 워드프레스, PHP, 테마, 관련 플러그인의 버전
  • 오류 직전에 설치·업데이트·설정 변경한 항목
  • 화면에 표시된 오류 문구와 오류 로그의 관련 줄

화면 캡처에는 관리자 이메일, 사용자명, 서버 경로, 라이선스 키와 같은 정보가 포함될 수 있습니다. 공개 글이나 포럼에 올리기 전에 개인정보와 비밀값을 가려야 합니다.

백업과 테스트 환경부터 준비한다

운영 사이트에서 플러그인을 끄면 캐시, 보안, 결제, 폼 같은 기능이 즉시 달라질 수 있습니다. 가능하면 호스팅의 스테이징 기능이나 복제 사이트에서 먼저 시험합니다. 운영 사이트에서 확인해야 한다면 파일과 데이터베이스를 모두 백업하고, 복원 방법이 실제로 동작하는지도 확인하세요.

백업은 단순히 파일을 내려받는 것으로 끝나지 않습니다. 최근 백업 시각, 저장 위치, 복원 담당자, 예상 복원 시간을 기록해 두면 장애가 길어지는 것을 막을 수 있습니다. 자세한 준비 방법은 워드프레스 백업과 복원 가이드에서 확인할 수 있습니다.

워드프레스 플러그인 충돌을 단계별로 해결하는 과정
백업과 오류 재현부터 요소 분리, 원인 확인, 정상 동작 검증까지 한 번에 하나씩 진행합니다.

1단계: 같은 조건에서 오류를 재현한다

먼저 캐시를 지우기 전 원래 상태에서 오류가 반복되는지 확인합니다. 주소, 클릭한 메뉴, 입력값, 로그인 상태를 똑같이 맞췄을 때 다시 발생해야 비교가 가능합니다. 재현되지 않는다면 브라우저 시크릿 창, 다른 브라우저, 모바일 데이터 연결에서도 시험해 범위를 좁힙니다.

  • 모든 사용자에게 발생하면 서버·플러그인·테마 가능성이 큽니다.
  • 로그인 사용자에게만 발생하면 권한, 관리자 도구, 로그인 캐시를 확인합니다.
  • 한 브라우저에서만 발생하면 확장 기능, 쿠키, 자바스크립트 오류를 확인합니다.
  • 특정 페이지에서만 발생하면 그 페이지의 블록, 숏코드, 폼, 스크립트를 확인합니다.

캐시를 먼저 모두 삭제하면 일시적인 증거가 사라질 수 있습니다. 오류 시각과 화면을 기록한 뒤 브라우저 캐시, 워드프레스 캐시, CDN 캐시 순서로 지우고 결과를 비교하세요.

2단계: 최근 변경 항목부터 분리한다

충돌이 업데이트 직후 시작됐다면 최근에 바뀐 항목이 가장 강한 후보입니다. 플러그인 목록에서 업데이트 시각과 변경 기록을 확인하고, 한 번에 하나만 비활성화한 뒤 동일한 동작을 다시 시험합니다. 여러 항목을 동시에 끄면 문제가 사라져도 어느 항목이 원인이었는지 알 수 없습니다.

  1. 최근 설치하거나 업데이트한 플러그인 하나를 비활성화합니다.
  2. 오류가 발생했던 동작을 같은 조건으로 반복합니다.
  3. 오류가 계속되면 플러그인을 다시 활성화하고 다음 후보를 시험합니다.
  4. 오류가 사라지면 해당 플러그인을 다시 활성화해 문제가 돌아오는지 확인합니다.

비활성화했을 때 사라지고 다시 활성화했을 때 재현된다면 강한 단서입니다. 다만 그 플러그인 하나만의 결함이 아니라 다른 플러그인 또는 테마와의 조합에서만 발생할 수도 있습니다.

3단계: 후보가 많으면 절반씩 나누어 검사한다

플러그인이 많을 때 하나씩 검사하면 시간이 오래 걸립니다. 스테이징 환경에서 전체 플러그인의 절반을 끄고 오류를 재현하세요. 문제가 사라지면 방금 끈 그룹에 후보가 있고, 계속되면 활성화된 그룹에 후보가 있습니다. 후보 그룹을 다시 절반으로 나누면 검사 횟수를 줄일 수 있습니다.

단, 보안·캐시·다국어·전자상거래처럼 다른 플러그인이 의존하는 항목은 한꺼번에 끄기 전에 의존 관계를 확인해야 합니다. 운영 사이트에서는 이 방식보다 방문이 적은 시간에 하나씩 점검하거나 세션에만 영향을 주는 문제 해결 도구를 사용하는 편이 안전합니다.

4단계: 모든 플러그인을 꺼도 계속되면 테마를 검사한다

모든 플러그인을 비활성화했는데도 같은 문제가 계속된다면 기본 워드프레스 테마로 잠시 전환해 봅니다. 기본 테마에서는 정상이라면 현재 테마의 함수, 템플릿, 스크립트 또는 테마와 플러그인의 조합을 살펴야 합니다. 기본 테마에서도 계속된다면 워드프레스 코어, 서버 설정, 데이터베이스, 브라우저 또는 외부 서비스 문제일 수 있습니다.

PHP 오류는 debug.log로 확인한다

화면에 치명적 오류가 표시되거나 저장·Ajax·예약 작업이 실패한다면 PHP 로그를 확인합니다. WordPress 공식 문서는 테스트 환경에서 다음 설정으로 오류를 wp-content/debug.log에 기록하고 화면에는 표시하지 않는 방법을 안내합니다.

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

이 코드는 wp-config.php의 “That’s all, stop editing” 문구보다 앞에 넣습니다. 운영 사이트에서 디버그 기능을 장기간 켜 두면 성능과 보안에 문제가 될 수 있으므로 필요한 시간에만 사용하고, 확인이 끝나면 다시 끄세요. 로그에는 서버 경로와 개인정보가 포함될 수 있으므로 공개하지 말고, 사용 후 삭제하거나 웹에서 접근할 수 없는 위치에 보관합니다.

로그를 읽을 때는 먼저 오류가 발생한 시각과 같은 줄을 찾습니다. 파일 경로에 /wp-content/plugins/플러그인-슬러그/가 포함되면 해당 플러그인이 실행 과정에 관여했다는 뜻입니다. 그러나 마지막에 표시된 파일이 반드시 근본 원인은 아닙니다. 다른 플러그인이 잘못된 값을 전달했을 가능성도 있으므로 비활성화 재현 테스트와 함께 판단해야 합니다.

브라우저 오류는 Console에서 확인한다

화면은 열리지만 버튼, 메뉴, 편집기 또는 팝업이 반응하지 않으면 브라우저 개발자 도구의 Console을 확인합니다. 오류가 발생한 페이지를 연 상태에서 개발자 도구를 켜고, Console을 비운 뒤 문제 동작을 다시 실행합니다.

  • Uncaught TypeError와 함께 표시된 스크립트 주소를 기록합니다.
  • 주소에 플러그인 폴더명이 포함되는지 확인합니다.
  • 광고 차단기나 보안 확장 기능을 끈 시크릿 창에서도 재현되는지 비교합니다.
  • JavaScript·CSS 결합 또는 지연 로딩 기능을 잠시 끄고 결과를 확인합니다.

캐시 최적화 플러그인을 끈 뒤 문제가 사라졌다면 해당 플러그인 자체뿐 아니라 결합·축소된 다른 스크립트가 원인일 수 있습니다. 제외 목록에 문제 스크립트를 추가한 뒤 다시 검증해야 합니다.

관리자 화면에 들어갈 수 없을 때

치명적인 PHP 오류가 발생하면 워드프레스가 관리자 이메일로 복구 모드 링크를 보낼 수 있습니다. 복구 모드에서는 문제가 된 플러그인이나 테마가 관리자 세션에서 일시 중지되므로 로그인해 원인을 확인하고 비활성화할 수 있습니다.

메일이 오지 않고 관리자 화면에도 접근할 수 없다면 호스팅 파일 관리자나 SFTP에서 의심되는 플러그인 폴더 이름을 임시로 변경할 수 있습니다. 예를 들어 wp-content/plugins/example-pluginexample-plugin-disabled로 바꾸면 워드프레스가 해당 플러그인을 불러오지 못합니다. 정확한 폴더와 백업을 확인하지 않은 상태에서 삭제하지는 마세요.

결과에 따른 판정표

테스트 결과 다음 판단
플러그인 A를 끄면 정상, 켜면 재발 A 또는 A와 다른 요소의 조합을 우선 조사
A만 켜면 정상, A와 B를 함께 켜면 오류 A와 B 사이의 호환성 문제 가능성
모든 플러그인을 꺼도 오류 테마, 코어, 서버, 데이터베이스, 브라우저 확인
기본 테마에서만 정상 현재 테마 또는 테마·플러그인 조합 확인
시크릿 창에서만 정상 쿠키, 캐시, 브라우저 확장 기능 확인
관리자만 오류 권한, 관리자 전용 스크립트, 로그인 캐시 확인

원인을 찾은 뒤 처리 방법

원인 후보를 찾았더라도 바로 삭제하기 전에 플러그인 버전, 워드프레스·PHP 호환 범위, 최근 변경 기록, 지원 포럼의 동일 증상을 확인합니다. 설정을 내보낼 수 있다면 먼저 백업하고 다음 중 하나를 선택합니다.

  • 수정 버전이 있으면 스테이징에서 업데이트 후 재검증
  • 설정 충돌이면 중복 기능 하나를 비활성화
  • 이전 안정 버전으로 되돌릴 때는 보안 취약점 여부 확인
  • 대체 플러그인으로 옮길 때 데이터와 URL 구조 확인
  • 제작사에 문의할 때 재현 순서, 버전, 로그 일부, 화면 캡처 제공

지원 요청에는 “오류가 납니다”라고만 쓰지 말고 아래처럼 정리하면 답을 받기 쉽습니다.

발생 시각:
문제가 발생한 주소:
재현 순서:
예상한 결과:
실제 결과:
워드프레스/PHP/테마 버전:
관련 플러그인과 버전:
비활성화 테스트 결과:
오류 로그의 관련 줄:

수정 후 확인할 항목

  • 홈, 글, 카테고리, 검색과 404 페이지
  • 로그인·로그아웃과 사용자 권한
  • 글 작성·저장·예약 발행
  • 문의 폼과 이메일 발송
  • 모바일 메뉴와 주요 버튼
  • 캐시 삭제 후 첫 방문과 재방문
  • 브라우저 Console과 PHP 로그의 새 오류

검증이 끝나면 테스트용 디버그 설정을 끄고 캐시를 새로 생성합니다. 플러그인 변경으로 주소나 메타 정보가 달라지지 않았는지는 검색 콘솔 설정 가이드를 참고해 확인하세요.

공식 참고 자료

마무리

워드프레스 플러그인 충돌을 해결하는 핵심은 재현 → 기록 → 분리 → 재검증입니다. 한 번에 하나만 바꾸고, 오류가 사라졌을 때 원래 상태로 되돌려 다시 발생하는지 확인해야 우연한 캐시 효과를 원인으로 오해하지 않습니다. 해결 과정과 버전을 기록해 두면 다음 업데이트에서 같은 문제가 생겼을 때 훨씬 빠르게 복구할 수 있습니다.

댓글 남기기