← 전체 목록
워드프레스운영

Akismet과 댓글 설정으로 스팸이 DB를 잠식하는 것을 막습니다

ℹ️ 본 글은 정보 제공 목적이며, 광고·제휴 링크가 포함될 수 있습니다.

워드프레스 스팸 댓글 차단 Akismet 설정이 필요했던 건 DB 최적화를 위해 wp_comments 테이블을 열어봤더니 스팸 댓글이 5만 개 이상 쌓여 있었을 때입니다. comment_approved = 'spam'으로 걸러져 있었지만, 이 레코드들이 DB 크기를 수백 MB 차지하고 있었습니다. Akismet과 댓글 설정 강화로 일주일 만에 스팸 유입이 95% 줄었습니다.

스팸 댓글 현황 확인

# DB에서 스팸 댓글 수 확인
mysql -u root -p -e "SELECT comment_approved, COUNT(*) FROM hospital_wp.wp_comments GROUP BY comment_approved;"

# WP-CLI로 확인
wp comment list --status=spam --format=count --path=/var/www/html --allow-root

# 스팸 댓글 크기 확인
wp db size --path=/var/www/html --allow-root

Akismet 설정

# Akismet은 기본 설치돼 있는 경우 많음
# 워드프레스 대시보드 → 플러그인 → Akismet 활성화
# Akismet.com에서 무료 API 키 발급 (개인/비영리 무료)

# WP-CLI로 Akismet 키 설정
wp option update akismet_api_key "your-api-key" --path=/var/www/html --allow-root

댓글 설정 강화

# 워드프레스 대시보드 → 설정 → 토론 에서:
# - "댓글은 수동으로 승인해야 합니다" 체크
# - "댓글 작성자는 이미 승인된 댓글이 있어야 합니다" 체크

# WP-CLI로 설정
wp option update comment_moderation 1 --path=/var/www/html --allow-root
wp option update comment_whitelist 1 --path=/var/www/html --allow-root

# 링크 포함 댓글 모더레이션 (스팸 다수가 링크 포함)
wp option update comment_max_links 1 --path=/var/www/html --allow-root

기존 스팸 댓글 정리

# 스팸 댓글 일괄 삭제
wp comment delete $(wp comment list --status=spam --format=ids --path=/var/www/html --allow-root) \
    --path=/var/www/html \
    --allow-root \
    --force

# DB 최적화 (삭제 후 공간 회수)
wp db optimize --path=/var/www/html --allow-root

댓글이 전혀 필요 없는 사이트라면 댓글 기능 자체를 비활성화하는 것이 가장 확실한 방법입니다. 병원 공지 사항 사이트처럼 댓글이 불필요한 경우 설정 → 토론에서 “새 글에 댓글 허용” 체크를 해제하세요.

편집 정책

AI가 초안을 생성하고, 의료기관 인프라 운영자가 1차 데이터 기반으로 최종 검수·승인합니다.

작성·검수: WavePix 운영자 (의료기관 3곳 인프라 전담)