INSIGHT

검색엔진최적화(SEO)를 위해 꼭 알아야 할 HTTP 상태 코드

안녕하고, 안녕하세요!
아티언스 YunHeec 입니다.

금요일을 맞아 재미지고 간단한… 하지만 SEO를 사랑하는 분들은 꼭 아셔야할 내용을 하나 투척하려고 합니다.

“HTTP 상태코드”에 대해서 설명 드리려 합니다.
HTTP 상태 코드란 클라이언트에서 온 요청(request)의 성공 여부를 코드로 표기한 것입니다.
예를 들어 브라우저에서 artience.co.kr을 입력합니다. (클라이언트에서 artience.co.kr을 요청한거죠).
이때 브라우저에 아티언스 메인 페이지가 뿅~ 나타나면 이는 클라이언트 요청(request)이 성공한 것입니다.
하지만 나오라는 아티언스 메인 페이지는 안나오고 백지 화면에 “404 NOT FOUND”라는 메세지만 보인다면 클라이언트의 요청이 실패한 것입니다.
이렇게 클라이언트의 요청이 실패 했을때, 왜! 어떠한 이유로! 실패했는지 알수 있게 해 주는 것이 바로 HTTP 상태코드 입니다. 검색엔진은 HTTP 상태 코드를 읽기 때문에 정확한 HTTP 상태 코드를 사용해야지만 검색엔진의 혼란을 막을 수 있습니다.

[HTTP 상태 코드 종류]

  • 1XX : 클라이언트의 요청이 접수되어 현재 처리하고 있다는 의미 (총 3개)
  • 2XX: 클라이언트의 요청 성공. 서버는 요청한 데이터에 응답 하였다는 의미 (총 10개)
  • 3XX: 파일들이 이동되어 클라이언트 요청을 마치기 위해 추가 동작을 취했다는 의미 (총 7개)
  • 4XX: 클라이언트에 오류가 있어 요청에 실패 했다는 의미 (총 38개)
  • 5XX: 서버에 오류가 있어 요청에 실패 했다는 의미 (총 14개)

위와 같이 크게 5가지로 구분되며 보다 상세한 이유는 10의 단위와 1의 단위에서 설명 됩니다.
HTTP 상태 코드는 총 72개 정도 되는데요, 물론 우리는 저 72개를 다 알 필요는 없습니다.
SEO를 사랑하는 우리가 알아야 할 코드는 72개중 딱 7개! 이정도 외울 수 있자나요~~?!?

  • 200 OK/Success: 사용자와 검색엔진 모두 A 페이지에 정상적으로 도착 하였습니다!!
  • 301 Permanent: A 페이지는 B 페이지로 영구 이전 되었습니다
  • 302 Temporary: A 페이지는 B 페이지로 잠시 이전 되었습니다
  • 404 Not Found: A 페이지가 없어졌나봐요~ 사용자건 검색엔진이건 A 페이지를 볼 수 없습니다
  • 410 Gone: A 페이지는 없어졌습니다!! (포애버 짜이찌엔)
  • 500 Server Error: A 페이지는 서버 오류로 인하여 사용자와 검색엔진 모두 A 페이지로 이동할 수 없습니다
  • 503 Unavailable: A 페이지는 일시적인 서버 오류로 사용자, 검색엔진 모두 A 페이지로 이동 할 수 없습니다

위 7개 코드도 외우기 어렵다고요? 그렇다면… 딱 3가지만이라도 정확히 알고 사용해 봅시다!

1. 301 = 영구적 이전

일반적으로 사이트를 리뉴얼 하여 도메인 혹은 URL이 변경될 때 “Redirect”라는 것을 사용 합니다.
Redirect는 변경 전 도메인/URL로 유입되는 사용자와 검색엔진을 신규 도메인/URL로 이동 시키는 역활을 합니다.
이때, 보통은 301이 아닌 302 Redirect를 사용하며, “이동” 적인 측면에서는 302 Redirect가 문제는 없습니다.
하지만 앞에서도 이야기 했듯이, 302는 일시적인 이전을 의미 합니다. 그렇기 때문에 302 Redirect를 사용한다면, 검색엔진은 “아, 이 도메인/URL은 일시적으로 이전 된 것이구나” 라고 판단 하여 변경 사이트 도메인/URL이 보유하고 있던 SEO 가치를 신규 도메인/URL로 이전 시키지 않습니다.
만약 도메인 혹은 URL 변경후, 검색 결과에 잘 노출되던 내 사이트가 사라졌다면… 302 Redirect가 사용 되었는지 개발자와 당장! 확인 하세요.

2. 404 = 페이지가 없어 졌나봐요~

특정 페이지를 열었을때 404 Not Found라는 메세지를 종종 보신적이 있을 겁니다.
404 Not Found는 말 그래도 페이지를 찾을 수 없다라는 의미 인데요, 해당 페이지를 찾을 수 없는 명확한 이유는 모르는 상태 입니다.
물론 사용자 입장에서 404 Not Found 페이지가 뜬 다는 것은 참을 수 없는 “짜증”을 유발 시킴으로 그 페이지를 다시 방문할지 여부는 알수가 없습니다.
하지만 검색엔진의 경우 “좀 짜증은 나지만 혹시 모르니 24시간 후에 다시 와 봐야지”라고 판단 합니다.
24시간 후 재방문 하여 페이지가 정상적으로 열린다면 SEO 적으로 크게 영향을 받지 않습니다.
하지만 어떠한 이유에서던 오류 페이지에 대한 HTTP 상태 코드 설정을 404가 아닌 410으로 처리하는 경우가 있습니다.
410은 사용자에게는 404와 동일하게 없는 페이지를 보여 주지만, 검색엔진에게 주는 메세지는 다릅니다.
410은 이 페이지는 실수가 아닌 의도적으로 없앤 상태를 의미함으로 검색엔진은 410 상태 코드를 읽는 순가 해당 페이지를 재 방문은 커녕 바로 DB에서 삭제 해 버립니다.

3. 200 = 정상적으로 연결 성공

“우리 사이트는 규모가 큰 사이트로 다량의 게시판 글과 복잡한 내부 링크 구조를 가지고 있습니다. 때문에 의도하지 않은 깨진 페이지가 자주 발생 하게 됩니다. 검색엔진은 사이트 내 깨진 페이지가 다량으로 존재하는 경우 사이트의 질을 낮게 평가할수 있기에, 우리는 깨진 페이지의 HTTP 상태 코드도 200 정상 연결로 설정 하였습니다. 물론 사용자에게는 커스토마이징하여 아주 친절하게 404 오류 메세지를 전달 하고 있습니다. 훗~ 멋지죠???”

이러면 아니됩니다!!
검색엔진은 200 HTTP 상태 코드를 보고 해당 페이지를 문제가 없는 정상 페이지로 판단 합니다.
그렇기 때문에 페이지 안에 이쁘게 커스토마이징 한 404 오류 메세지를 컨텐츠로 인식하게 됩니다.
이는 검색엔진의 사이트 활동성을 저하시키는 원인으로 작용하게 됩니다!!!
구글 서치 콘솔에서 “Soft 404″라는 오류 메세지를 보신 적 있으신가요? “Soft 404″ 오류가 바로 404 Not Found 페이지의 HTTP 상태 코드를 200 정상으로 처리 했을때 나타나는 메세지 입니다. 당연히 고쳐 줘야 겠죠?!?!

SEO는 사용자와 검색엔진을 모두 고려해야 합니다.
그런 측면에서 무심코 지나칠 수 있는 HTTP 상태 코드도 다시 한번 확인 해 보는 센스!!를 길러 보아요~

모두들 HAPPY Optimization 하시구용~ 궁금하신 사항은 언제든지 댓글! 남겨 주세요~