워드프레스 검색 결과가 없는 경우 홈으로 리디렉션시키기

Last Updated: 2024년 11월 08일 4개 댓글

사이트가 멀웨어에 감염될 경우 방문자들이 사이트 방문 시 이상한 스팸 사이트로 리디렉션될 수 있습니다. 최근 사이트가 악성코드에 감염되어 해당 사이트로 검색하면 구글 검색 결과에 일본어 콘텐츠가 노출되는 문제를 접하게 되었습니다. 특이하게 /?s=1234와 같이 검색 결과 페이지들이 구글에 검색되고 있었습니다.

보통 검색 결과 페이지에는 noindex 메타 태그가 추가되어 검색 엔진에 노출되지 않습니다. 특이하게 실제로는 검색 결과가 없는 검색 결과 페이지가 구글에 노출되고 해당 검색 결과 페이지에 일본어 콘텐츠가 표시되었습니다.

해당 워드프레스 사이트에서 멀웨어를 제거하고 검색 결과가 없는 페이지에 방문자가 접속하면 홈(전면 페이지)으로 이동하도록 코드를 추가했습니다.

워드프레스 검색 결과가 없는 경우 홈으로 리디렉션시키기

워드프레스와 보안

워드프레스는 보안에 강하지만 업데이트를 소홀히 하는 등의 이유로 사이트가 해킹을 당하거나 악성코드에 감염될 수 있습니다.

  1. 워드프레스, 테마, 플러그인을 최신 버전으로 업데이트하지 않는 경우
  2. 보안 취약점이 발견된 테마나 플러그인을 사용하는 경우
  3. 약한 비밀번호나 admin과 같은 관리자 이름을 사용하는 경우
  4. 출처가 불분명한 경로를 통해 테마나 플러그인을 다운로드하는 경우

아바다와 같은 유료 테마나 엘리멘터 등의 페이지 빌더를 공식 사이트가 아닌 출처가 불분명한 사이트를 통해 다운로드하거나 구입하는 경우 테마 또는 플러그인 파일에 악성코드가 심어져 있을 가능성이 높으므로 주의가 필요합니다.

다음과 같은 조치를 보안을 강화할 수 있습니다.

  1. 워드프레스 코어, 플러그인, 테마를 항상 최신 버전으로 업데이트하여 유지
  2. 오랫동안 업데이트가 안 되는 프러그인 삭제
  3. 보안 취약점이 보고된 테마나 플러그인을 (취약점이 패치될 때까지) 삭제하기
  4. 강력한 비밀번호 사용
  5. 보안 플러그인 설치
  6. 정기적인 백업

클라우드웨이즈 등 일부 호스팅에서는 멀웨어 스캔 기능을 제공합니다.

검색 결과가 없는 경우 홈으로 리디렉션시키기

앞서 말씀드렸듯이 워드프레스는 일반적으로 검색 결과 페이지에는 noindex 로봇 태그가 추가되므로 검색엔진에 검색 결과 페이지가 노출되지 않습니다. 제 블로그를 살펴보면 검색 결과 페이지에 다음과 같은 robots 메타 태그가 추가되어 있네요.

	<meta name='robots' content='noindex, follow' />

일본어 키워드 스팸 악성코드에 감염되었다면 멀웨어를 치료하고 데이터베이스에서도 페이지나 포스트 본문에 일본어 콘텐츠가 삽입되지 않았는지 체크해보시기 바랍니다.

phpMyAdmin을 통해 DB에 접속하여 다음과 같은 쿼리를 실행하여 wp_posts에 일본어 문자가 없는지 확인할 수 있습니다.

SELECT * 
FROM wp_posts 
WHERE post_content REGEXP '[ぁ-んァ-ン]';

상기 SQL 쿼리는 워드프레스의 wp_posts 테이블에서 post_content 열에 일본어 히라가나(ぁ-ん) 또는 가타카나(ァ-ン) 문자가 포함된 레코드가 없는지를 조회합니다. 이 쿼리는 wp_posts 테이블에 있는 모든 포스트 유형(post type), 즉 페이지와 포스트 모두에서 일본어 글자를 확인합니다.

멀웨어를 제거했다면 robots.txt 파일에 코드를 추가하여 /?s=123과 같은 검색 결과 페이지를 수집하지 않도록 지시할 수 있습니다.

User-agent: *
Allow: /wp-content/uploads/
Disallow: /wp-admin/
Disallow: /readme.html
Disallow: /?s=
sitemap:https://your-site.com/sitemap_index.xml

이제 구글에 노출된 일본어 콘텐츠가 표시되는 검색 결과 페이지를 클릭하면 검색 결과가 없다는 문구가 표시됩니다.

이 상황에서 검색 결과가 없는 경우 홈(전면 페이지)로 리디렉시키는 것을 고려해볼 수 있습니다. 검색 시 검색 결과가 없으면 홈 페이지로 이동시키고 싶은 경우 다음 코드를 차일드 테마 함수 파일에 추가할 수 있습니다.

function redirect_empty_search_to_home() {
    if ( is_search() && ! have_posts() ) { // 검색 중이며 결과가 없을 때
        wp_safe_redirect( home_url() );    // 홈으로 안전하게 리디렉션
        exit;
    }
}

add_action( 'template_redirect', 'redirect_empty_search_to_home' );

참고

워드크래커의 아바타 이미지

워드크래커

전문 영한번역가. 워드프레스 애호가. 네이버 카페 「워프사」 운영.

4 개 댓글

Leave a Comment

    • 리디렉션시키는 것은 PHP 코드입니다. 그러므로 해당 코드를 차일드 테마의 함수 파일에 추가하면 됩니다.

      검색 결과 페이지에 Noindex 메타 태그가 추가되어 있다면 굳이 robots.txt 파일은 수정하지 않아도 될 것입니다.

      응답
카카오톡 상담 카톡 서비스 상담