[워드프레스] 구글에 http와 https 버전이 함께 검색되는 경우

구글 검색에서 http 버전과 https 버전이 모두 검색되는 문제

이 블로그에 SSL 인증서를 적용했다가 마음에 들지 않아서 제거한 적이 있습니다. 그 때문인지 구글에서는 http 버전과 https 버전이 동시에 검색이 되는 비정상적인 상황이 나타났습니다. 문제는 크롬에서 https로 시작되는 링크를 클릭하면 다음 그림과 비슷하게 "연결이 비공개로 설정되어 있지 않습니다"라는 경고 메시지가 표시되고, 접속이 되어도 크롬 브라우저 주소란에 "안전하지 않음"이 표시되는 문제가 나타났습니다.

안전하지 않은 사이트 경고

이 문제는 동일한 컨텐츠에 대하여 두 가지 URL이 동시에 사용되는 경우로서, 이 문제를 해결하는 가장 좋은 방법은 캐노니컬 URL(Canonical URL)을 설정해주는 것입니다.

※ 2017년부터 블루호스트에서 모든 도메인에 대하여 무료 SSL 인증서를 제공하고 있습니다. ("무료 보안서버(SSL) 인증서를 적용했습니다" 참고.)

All in One SEO Pack 플러그인에서 캐노니컬 URL 설정

예를 들어, All in One SEO Pack 플러그인을 사용하는 경우 일반 설정에서 캐노니컬 URLs사용자 설정 Canonical(캐노니컬) URL 활성화를 체크해주도록 합니다.

[워드프레스] 구글에 http와 https 버전이 함께 검색되는 경우 2

그러면 개별 글에 대한 Canonical URL을 설정할 수 있는 입력란이 글 편집 화면에서 표시됩니다. https로 검색되는 글이나 페이지에서 캐노니컬 URL을 직접 입력해주면 구글에서 https로 검색이 되더라도 알아서 http 주소로 연결시켜줍니다.

All in One SEO에서 모든 글에 대하여 http 버전을 캐노니컬 URL로 설정할 수 있는 방법이 없을까하여 찾아보았지만 찾지를 못했습니다. (Yoast SEO를 사용하면 일괄적으로 https를 http 버전으로 설정하거나 반대로 설정하는 것이 가능합니다.)

https로 시작하는 모든 URL에 noindex 메타 추가하기

참고로 다음과 같은 코드를 사용 중인 워드프레스의 테마 함수에 추가하면 모든 https 버전에 noindex가 추가되어 구글에서 검색을 하지 않게 됩니다.

add_action( 'wp_head', 'add_noindex_for_https' );
function add_noindex_for_https() {

if (isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on') {
echo '<meta name="robots" content="noindex,follow" />'. "\n";
}
}

위의 방법은 별로 바람직한 방법은 아닙니다. 저는 이번 기회에 All in One SEO에서 Yoast SEO 플러그인으로 갈아탔습니다. 오랫동안 All in One SEO Pack 플러그인과 정들어서 아쉬웠지만 과감하게 바꾸어보았습니다. Yoast SEO를 사용하면 모든 글의 캐노니컬 URL로 http 버전을 일괄적으로 설정할 수 있습니다.

(이 블로그를 시작할 초기에 Yoast SEO를 설치하여 테스트했지만 테마와 잘 맞지 않았는지 워드프레스 관리자 페이지가 무겁게 돌아갔습니다. 그래서 All in One SEO를 선택한 것인데, 현재 Divi 테마를 설치한 상태에서는 Yoast SEO를 활성화해도 전혀 무겁다는 느낌이 없네요.)

리디렉션시키기

참고로 리디렉션시키는 방법도 생각해볼 수 있습니다.

HTTP를 HTTPS로 리디렉션시키기

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

HTTPS를 HTTP로 리디렉션시키기

RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}

https에서 http로 리디렉션시키려면 SSL 인증서가 설치되어 있어야 합니다.


추가: Yoast SEO가 설정된 경우 다음 코드를 사용하여 캐노니컬 URL이 일괄적으로 http에서 https 버전으로 바꿀 수 있습니다.

function https_canonical($url) {
$url = preg_replace("/^http:/i", "https:", $url);
return $url;
}
add_filter( 'wpseo_canonical', 'https_canonical' );

https://... 버전을 http://... 버전으로 바꾸려는 경우에는 다음 코드를 사용하면 됩니다.

function http_canonical($url) {
$url = preg_replace("/^https:/i", "http:", $url);
return $url;
}
add_filter( 'wpseo_canonical', 'http_canonical' );

시간이 지나면 구글에서 알아서 캐노니컬 URL에 지정된 URL로 연결시켜줄 것입니다.

참고:


2개 댓글

  1. 구글에서 자체적으로 htps를 하라는 것으로써 요즘 인터넷에서는 말이 많은 것 같아요..
    저도 좀 찜찜해서 이리저리 보고 있는데 아직은 지켜 볼려고 하고 있습니다.
    몇년전 ssl를 한번 한 적이 있는데 1년하고 말았죠..^^

    1. 구글에서 잘 검색된다면 굳이 https를 적용할 필요는 없지 않을까 생각되네요.
      저는 무료 SSL 인증서를 적용해보니 속도 저하 현상이 나타나서 삭제했습니다.

댓글 남기기

* 이메일 주소는 공개되지 않습니다.