플러그인 삭제해도 남는 쓰레기 데이터, 자동 로드(Autoload) 옵션 정리로 해결

워드프레스에서 자동 로드(Autoload) 옵션 크기가 크면 매 페이지 요청마다 데이터베이스에서 불필요하게 방대한 데이터를 무조건 읽어와야 하므로, 서버 메모리에 과부하를 일으키고 전체적인 웹사이트 로딩 속도를 떨어뜨릴 수 있습니다. 자동 로드 옵션이 일정 크기 이상이면 사이트 건강 도구에 '자동 로드 옵션이 성능에 영향을 줄 수 있음' 경고가 표시됩니다.

워드프레스 블로그는 11년 이상 운영하면서 테스트 목적으로 정말 많은 테마와 플러그인을 활성화했다가 삭제하는 과정에서 완전히 제거되지 않은 찌꺼기들이 남아서 자동 로드되고 있었습니다. 시간을 내어 모든 자동 로드 옵션들을 검토하여 불필요한 옵션들을 대대적으로 정리했습니다.

플러그인 삭제해도 남는 쓰레기 데이터, 자동 로드(Autoload) 옵션 정리로 해결

자동 로드(Autoload) 옵션 크기를 줄일 경우 이득

자동 로드 옵션 크기가 지나치게 큰 경우 사이트 건강 툴에 '자동 로드 옵션이 성능에 영향을 줄 수 있음' 문제가 표시됩니다.

이 워드프레스 블로그의 경우 자동 로드 옵션이 그리 큰 경우가 아니지만, DB에서 모든 옵션들을 검토하여 불필요한 옵션들을 삭제했습니다. 최종적으로 자동 로드 전체 크기가 21.93KB, 자동 로드 옵션 개수가 318개로 이전보다 크기를 훨씬 줄였습니다.

Updraftplus라는 백업 플러그인은 필요할 때에만 사용하고 있는데, 만약 이 플러그인까지 삭제하면 20KB 이하로 줄일 수도 있을 것 같습니다.😄

워드프레스 공식 권장 크기는 보통 800KB 이하이고, 무거운 테마나 플러그인을 쓰는 사이트들은 수백 KB에서 수 MB를 훌쩍 넘기는 경우가 허다하다고 합니다. 실제로 Astra 테마를 설치할 경우 옵션 크기가 생각보다 커서 조금 놀랬습니다.

GeneratePress 테마를 사용하면 자동으로 로드되는 옵션 크기가 크게 줄어드는 것 같습니다. 22KB면 사실상 코어 구동에 필요한 필수 데이터만 남긴 완벽에 가까운 상태입니다.

워드프레스 DB(wp_options 테이블)에서 autoload="yes"로 설정된 데이터는 방문자가 사이트의 어떤 페이지에 접속하든 매번 서버 메모리에 무조건 한 번에 로드되는 데이터입니다. 이 용량을 극단적으로 줄였을 때 얻는 구체적인 이득은 다음과 같습니다.

1. 서버 응답 시간(TTFB)의 단축

매번 페이지를 렌더링할 때마다 데이터베이스에서 읽어와야 하는 짐(데이터)이 감소하기 때문에, PHP의 연산 속도가 매우 가벼워집니다. 이는 방문자가 링크를 클릭했을 때 서버가 첫 반응을 보이는 시간인 TTFB(Time to First Byte)를 단축시켜 전반적인 페이지 로딩 속도를 높일 수 있습니다.

2. 서버 CPU 폭주 예방 및 메모리 절약

트래픽이 몰리거나 봇(Bot)들이 사이트를 긁어갈 때, 자동 로드 데이터가 크면 매 요청마다 엄청난 양의 메모리 할당과 DB 조회가 발생해 서버 CPU 부하가 심해집니다. 자동으로 로드되는 옵션 사이즈를 가볍게 유지하면, 갑작스러운 동시 접속자 증가나 과도한 크롤러 방문 시에도 CPU가 100%까지 치솟는 현상을 어느 정도 방어할 수 있다고 합니다.

3. 크롤링 예산 확보와 SEO의 긍정적 영향

서버가 가볍고 빠르게 응답하면 구글봇이 한정된 시간 내에 더 많은 페이지를 원활하게 수집(크롤링)할 수 있습니다. 쾌적한 사이트 속도는 코어 웹 바이탈(Core Web Vitals) 점수를 높여주며, 이는 장기적으로 구글 검색 노출수가 정상화되고 순위가 상승하는 데 매우 강력한 밑거름이 됩니다.

4. 찌꺼기 데이터로 인한 충돌 버그 예방

보통 예전에 쓰다가 지운 폼 플러그인(예: Quform 관련 잔여 설정)이나 구형 알림 플러그인(예: One Signal), 또는 예전 목차 플러그인(예: Fixed TOC)의 찌꺼기 데이터가 자동 로드에 남아 시스템을 무겁게 만드는 경우가 많습니다.

디비에서 이런 불필요한 '고아 데이터'를 모두 청소하면 앞으로 최신 플러그인을 새로 도입하실 때, 알 수 없는 이전 데이터와 충돌이 발생할 확률이 낮아질 수 있습니다.

이 블로그에 설치한 적이 있는 테마와 플러그인 리스트

이번에 디비 옵션을 정리하면 11년 동안 엄청나게 많은 테마와 플러그인이 이 블로그에 설치되었다는 것을 알게 되었습니다.

특히 이 사이트 운영 초기에 테스트 목적으로 플러그인들을 많이 설치했는데, 삭제 후에도 옵션들이 모두 삭제되지 않고 남아 있는 경우가 많았습니다.

11년 동안 설치한 적이 있는 테마와 플러그인 목록을 DB 옵션을 기반으로 정리해보았습니다.

1. 테마 및 페이지 빌더 (디자인)

  • 테마: Astra (Brainstorm Force), Publisher (BetterStudio), Enfold (Avia), The7 (Presscore), Newspaper, GoMedia, Alx 테마(이 테마는 설치한 기억이 나지 않음), ThemeIsle 계열, Divi 테마. (현재는 GeneratePress 테마 사용)
  • 페이지 빌더 및 프레임워크: 엘리멘터(Elementor), Stackable Gutenberg Blocks, Redux Framework
  • 슬라이더 빌더: Slider Revolution, LayerSlider, Master Slider

2. 캐시, 성능 및 보안

  • 캐시 및 속도: WP Fastest Cache, W3 Total Cache, WP Super Cache, CDN Enabler, a3 Lazy Load (현재는 클라우드웨이즈 호스팅을 이용하면서 클라우드웨이즈에서 제공하는 Breeze로 변경)
  • 보안 및 접근 제어: Wordfence Security, WP Cerber Security, Hide My Site, iThemes Security (현재 명칭 'Solid Security'), BBQ 방화벽 플러그인
  • 백업 및 DB 관리: WP BackItUp, WP DB Backup, Better Search Replace
  • 다목적 최적화: Jetpack (젯팩)

3. 미디어 및 이미지 최적화

  • 이미지 최적화: EWWW Image Optimizer
  • 라이트박스 및 갤러리: FancyBox, Responsive Lightbox, FooGallery, Photo Gallery by 10Web, Gallery Bank
  • 이미지 슬라이더 및 영상: MetaSlider, WP Carousel, Slideshow jQuery Image Gallery, ARVE (비디오 임베드)

4. 콘텐츠, 목차 및 SEO

  • 목차 (TOC): Tocer (구 Fixed TOC), CM Table of Contents
  • SEO 및 통계: Site Kit by Google, Google Custom Search, Post Views Counter, WP Statistics
  • 콘텐츠 관리: YARPP (관련 글), Top 10 (인기 글), Breadcrumb NavXT (이동 경로), Feedzy RSS Feeds, AMP for WP, Restrict Categories, List Category Posts, Yoast Duplicate Post

5. 회원, 커뮤니티 및 댓글

  • 커뮤니티 및 회원: bbPress (포럼), CSSJockey (CJFM), User Meta Manager, WordPress Access Control (WPAC), WP User Avatar, LifterLMS (온라인 강의)
  • 댓글 및 평가: Disqus / pipDisqus, Rate My Post (별점), Comment Validation Reloaded
  • 소셜 로그인: WordPress Social Login

6. 소셜 공유, 고객 소통 및 마케팅

  • 고객 소통 및 폼: Quform, Facebook Live Chat, Flamingo
  • 마케팅 및 알림: OneSignal Web Push Notifications (푸시 알림), Brave Popup Builder, wBounce, Email Subscribers
  • 소셜 공유: Grow Social (Social Pug), Ultimate Social Media Icons (SFSI), Heateor Social Login/Share
  • 광고: Adsense Made Easy, AdWidget

7. 인공지능 및 번역

  • AI 챗봇/도우미: AI Engine, Comments Engine AI, AYS ChatGPT Assistant
  • 다국어 번역: GTranslate, Polylang

8. 시스템, 결제 및 기타 유틸리티

  • 다운로드 및 결제: WordPress Download Manager (WPDM), PayPal Donation, PayPal Currency Converter Pro
  • 디자인 유틸리티: Use Any Font (폰트 추가), WP Dark Mode, Black Studio TinyMCE, Top Bar
  • 시스템 유지보수: Freemius (라이선스 관리), Envato Market, BestWebSoft

사이트 속도와 충돌 방지를 위해 플러그인은 최소한으로 유지하는 것이 바람직합니다. 현재 이 블로그에 설치된 테마와 플러그인 목록:

  • 테마: GeneratePress 테마
  • 플러그인
    • Breeze
    • Flying Analytics - 애널리틱스 코드를 빠르게 로드하는 플러그인
    • Flying Scripts
    • GP Custom Home Sections (커스텀 플러그인)
    • GP Custom Post Share Buttons (커스텀 소셜 공유 플러그인)
    • GP Custom Simple Side TOC (커스텀 목차 플러그인)
    • GP Premium
    • Naver IndexNow Single (커스텀 플러그인)
    • Object Cache Pro
    • UpdraftPlus - 백업/복원
    • WP-Sweep - DB 청소 플러그인
    • Yoast SEO - 유명한 SEO 플러그인😄

자동 로드 옵션 크기를 줄이는 방법

자동 로드 옵션 크기를 줄여서 사이트 성능을 개선하고 싶은 경우 다음 글을 참고해보세요.

저는 DB에서 다음과 비슷한 SQL 쿼리를 실행했습니다. 아래의 명령을 실행하면 오토로드 관련 옵션 항목이 600개까지 나열됩니다.

SELECT option_id, option_name, LENGTH(option_value) AS size, autoload
FROM wp_options
WHERE autoload IN ('yes', 'on', 'auto', 'auto-on')
ORDER BY size DESC
LIMIT 600;

그런 다음, 모든 DB 옵션들을 복사한 다음, 챗지피티 등 AI에 넣고, 설치된 적이 있는 테마와 플러그인 목록을 나열해줄 것을 요청했습니다.

나열된 테마와 플러그인 목록 중에서 현재 사용되지 않는 것과 관련된 옵션들을 하나씩 제거하는 방식으로 진행했습니다.

DB 작업은 리스크가 있으므로 반드시 백업을 한 후에 진행해야 합니다. 먼저는 Select 명령을 통해 어떤 옵션들이 있는지 하나씩 검토한 후에, 삭제해도 된다고 생각될 때 Delete 명령을 통해 삭제하시기 바랍니다.

👉 워드프레스나 웹호스팅과 관련하여 문제 해결에 어려움을 겪는다면 여기에서 서비스(유료)를 의뢰하실 수 있습니다.

참고

1개 댓글

댓글 남기기

  1. 맞아요, 저도 비슷한 경험을 한 적이 있는데 자동 로드 옵션 때문에 속도가 느려지는 경우가 많더라고요.

    답글