본문으로 건너뛰기

동일 페이지, 다중 URL의 SEO 처리 방식

 · reading-time-plural · 

새롭게 블로그를 개발하거나 리펙토링 하면서 글의 URL 이 변경될 수 있습니다. 동일한 글인데 URL 이 2개 생기는 경우 우리는 어떤 URL 에 대해서 가중치를 주고 Index 에 등록을 해야 할까요? 2개의 URL 모두 Index 에 등록하면 화력이 분산 되지 않을까요? 제가 직접 새롭게 블로그를 개발하면서 겪은 이 문제에 대한 결과를 공유합니다.

상황

작성된 블로그 글에 Index 를 등록하고 구글 상위에 노출되면서 사용자가 잘 찾아오고 있는데 블로그가 변경되면서 해당 글의 URL 이 변경되는 경우 Index 처리는 어떻게 될까요?

우리는 이 상황에서 아래 중 어떤 것을 택할지 고민하게 됩니다.

  • 이전 URL을 그대로 유지
  • 새로운 페이지의 URL을 새롭게 Index에 등록

혹여나 구글 상위에 잘 노출되고 있는 글이 새로운 Index 등록으로 문제가 되지 않을까 노심초사를 하며 말이죠…

하지만 검색 엔진은 그렇게 멍청하지 않았습니다. 어떻게 처리되는지 설명해 보도록 하겠습니다.

시나리오

시나리오동일한 글 에 대해서 변경 전 URL변경된 URL 이 어떻게 Google Search Console 에서 처리되는가에 대해서 설명할 것입니다.

전제 조건

기본적으로 아래의 전제가 깔려있습니다.

아래는 변경 전 URL 클릭 시 서빙되는 파일인데 코드로 보면 아래와 같은 것입니다.

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta
http-equiv="refresh"
content="0; url=/blog/2021/05/06/using-recoil-in-nextjs/"
/>
<!-- 변경된 URL으로 적용 -->
<link rel="canonical" href="/blog/2021/05/06/using-recoil-in-nextjs/" />
</head>
<script>
// 변경된 URL으로 리디렉션 처리
window.location.href = "/blog/2021/05/06/using-recoil-in-nextjs/";
</script>
</html>

변경 전 URL변경된 URL 보다 인기가 더 많은 경우

변경 전 URLhttps://parkgang.github.io/golang/lets-create-an-http-cache-server-with-golang/ 이며 해당 링크를 검사해 보았습니다.

변경 전 URLIndex 가 살아있는 상태이네요.

보니까 색인생성 이라는 부분에 새롭게 정보가 추가되었는데 리디렉션canonical 를 명시했기 때문에 검색엔진 이 다시 크롤링 한 결과 표준 페이지변경된 URLhttps://parkgang.github.io/blog/2021/11/17/lets-create-an-http-cache-server-with-golang/ 라는 것을 이미 알고 있네요!

이를 통해서 변경 전 URL 이 어떤 URL 으로 알 수 있는 정보는 사용자 선언 표준 URL 이라고 하는 rel="canonical" 곳에 선언할 수 있다는 것을 알 수 있었습니다.

공식 문서를 읽어보면 알 수 있지만 표준 페이지 를 명시하더라도 검색 엔진이 보기에 더 적합한 페이지를 표준 페이지 라고 지정할 수 있다고 합니다.

즉, 우리는 검색 엔진에게 표준 페이지 힌트를 제공할 뿐 변경은 검색 엔진 마음입니다.

예를 들어 변경 전 URL 이 웹상으로 더 공유가 많이 되었다면 변경 전 URL 클릭 시 리디렉션 되어 변경된 URL 으로 접근이 될지언정 검색 엔진은 변경 전 URL 이 더 표준 페이지 와 적합하다고 생각하는 것입니다.

그래서 표준 페이지 로 지정한 변경된 URL 을 검사하면 아래와 같이 Index 가 생성되지 않은 것을 볼 수 있습니다.

변경 전 URL 이 인기가 많지만 변경된 URL 으로 바꾸고 싶다면?

그렇다면 리디렉션canonical 를 명시해서 내가 지정한 표준 페이지 를 지정되면 어떻게 표시될까요?

변경 전 URL 에 대해서 조회해 보겠습니다.

변경 전 URLhttps://parkgang.github.io/next.js/using-recoil-in-next.js/ 는 이전에 Index 가 생성되어 잘 운영되던 페이지입니다.

근데 이제는 Index 가 없다고 하네요? 이유는 사용자 선언 표준 URL 을 보면 제가 리디렉션canonical(케노티컬) 태그변경된 URL 으로 Index 가 생성되었다고 합니다.

그럼 변경된 URLhttps://parkgang.github.io/blog/2021/05/06/using-recoil-in-nextjs/ 으로 검사를 해볼까요?

검사를 해보니 Index 가 등록되었다고 합니다.

중요한 것은 저는 변경된 URL 으로 Index 를 요청한 적이 없습니다. 하지만 그럼에도 자동으로 생성된 것을 볼 수 있습니다.

그리고 하단에 색인생성 부분을 보면 https://parkgang.github.io/golang/lets-create-an-http-cache-server-with-golang/ 와 다르게 Google에서 선택한 표준 URL검사된 URL 과 같다고 합니다.

즉, 제가 리디렉션케노티컬 태그 로 원하는 표준 페이지 로 지정한 페이지를 검색 엔진 이 선택되었다는 것을 의미합니다.

Index 는 있지만 인기가 없어서 갱신이 안된 경우

트래픽 이 없어서 검색엔진 이 아직 크롤링 을 시작도 안한 경우는 변경 전 URL변경된 URL 중 어떤 것을 Index 으로 생성해야 될까요?

우선 변경 전 URL 으로 검사를 해봅시다.

사용자 선언 표준 URL 도 지정되어 있지 않고 캡처한 시점이 2022-07-09 인데 크롤링 날짜는 2022-05-01 으로 낙후된 것을 볼 수 있습니다.

그럼 혹시나 하는 마음으로 변경된 URL 도 한번 조사해 볼까요?

역시 등록되어 있지 않네요.

이럴 땐 어떻게 하는 것이 현명할까요? 그냥 변경된 URL 으로 Index 를 생성하는 것이 좋을까요? 아니면 변경 전 URL 으로 다시 Index 하여 검색 엔진 이 알아서 선택할 수 있도록 하는 것이 좋을까요?

사실 지금 말로 정리하면서 정답이 나왔죠? 검색 엔진 이 알아서 선택할 수 있도록 하는 것이 좋습니다.

우리 입장에서야 변경된 URL 이 더 Fresh 하고 좋다고 느껴지지만 실제 Index 시 어떤 페이지가 더 가산점을 받을지는 검색 엔진 만이 알 수 있습니다.

검색 엔진 이 선택한 URL 이 어떤 것인지 어떻게 알 수 있을까요? URL 검사를 통해 알 수 있습니다.

  1. 변경 전 URL 에서 실제 URL 테스트 를 눌러보도록 합니다.

  2. 요청 시점으로 실제 크롤링 된 예상 결과를 보여주는데 여기서 핵심은 사용자 선언 표준 URL 을 인식한 것이고 검색 엔진 입장에서 선택한 표준 URL색인 생성 이후 에 확인된다는 것입니다.

    UI의 자세히 알아보기 링크

그럼 결과가 어떻게 되는지는 실제 Index 생성이 필요하므로 시간이 걸리겠군요 Index 생성을 요청 후 검색 엔진 이 어떤 것을 표준 URL 으로 선택하는지 볼까요?

시간이 지나 결과는 예상하지 못한 리디렉션 오류가 발생했습니다.

이전에 색인되어 있었다는 내용은 어디로 가고 이제 색인이 등록되어 있지 않다고 합니다.

제 생각에는 다시 크롤링 하니까 이전에 색인된 내용이 필요 없다고 판단하여 제거한 것 같으며 제거된 상태에서 다시 색인을 생성하려고 하니 리디렉션 되는 링크들이므로 잘못된 색인이라고 오류가 발생하는 거 같습니다.

그래서 변경된 URL 으로 Index 를 다시 생성했습니다.

결론

검색 엔진 은 똑똑하며 필요한 정보를 잘 적어주면 가중치 에 맞게 필요한 페이지 1개Index 으로 생성되는 것을 볼 수 있었습니다.

마치며

제 개인적으로도 블로그 를 개선하면 URL 변경에 따른 Side Effect 가 걱정되어서 찾아보게 된 것인데 SEO 에 대해서 조금 더 이해할 수 있는 계기가 되었습니다.

이 글을 보고 블로그 를 개선 및 마이그레이션 하면서 URL 이 변경되면 이전 Index 는 어떻게 되는 거지! 라는 걱정 말고 자신감 을 가지고 할 수 있도록 내용이 전달되었으면 좋겠습니다.

읽어주셔서 감사합니다!