XE – 문서를 링크 하나로 통일하는 방법

 

 

부제: XE의 SEO는 정말 개떡같구나 !

 

부제2: 개발자님 죄송합니다ㅠ

 

 

 

1. 하나의 게시글에 여러 주소

XE 구조상 URL이 넘버가 1234라는 게시글이 있으면

 

  • http://site_url.com/1234
  • http://site_url.com/board/1234
  • http://site_url.com/index.php?document_srl=1234
  • http://site_url.com/index.php?mid=notice&category=321&document_srl=1234

 

등.. 와 같이 여러링크를 가져도 하나의 게시글로 연결됩니다.

즉, 문서하나에 여러 URL이 생길 수 있는것입니다.

 

 

 

 

2. 이는 곧 패널티

문서하나에 여러 링크가 붙으면 검색순위에 큰 악영향을 미치게 됩니다.

다음 사진은 Google 서치콘솔에서 문서 하나에 여러 링크가 붙어있음을 알 수 있습니다.

 

0272.PNG

 

이렇게 되면 검색봇 입장에서는 똑같은 게시글을 복사 + 붙혀넣기하는

부적절한 행동으로 인식되어 검색순위에 부정적인 영향이 가게됩니다.

 

 

 

 

3. 주소를 하나로 통일

각 문서에 하나의 주소만 갖게 만드는방법으로 SEO 최적화가 가능합니다.

XE 코어를 수정하지 않고 애드온, 스킨 등의 수정으로 가능케 하는 방법을 소개드립니다.

 

 

1. 짧은 주소 사용 켜기

 

0275.PNG

 

XE 관리자에서 [설정 – 일반 – 고급 섹션] 으로 이동 후 [짧은 주소 사용]을 체크하고 저장합니다.

이는 서버에서 Rewrite 기능을 지원해야합니다.

 

이 기능을 사용하면 다음과 같은 링크가

 

  • http://site_url.com/index.php?document_srl=1234
  • http://site_url.com/index.php?mid=notice&category=321&document_srl=1234

 

이렇게 정리됩니다.

 

  • http://site_url.com/board/1234

 

 

 

2. XE 공식 자료실 ㅡ mid 숨기기 애드온 by. 업글

 

0274.PNG

 

http://site_url/board/1234 와 같은 주소 형식을 http://site_url/1234 로 바꿔줍니다.

설치 후 애드온을 켜면 적용된다.

 

 

 

 

 

3. mid 숨기기 애드온 수정

 

 

mid 숨기기 애드온을 사용하면 호출된 링크를 단축된 링크로 302 임시이동(moved temporarily)하게됩니다.

HTTP 상태코드 302는 임시로 이 링크를 사용하도록 지시하기 때문에, 우리는 301 moved permanently 상태코드를 보내도록 수정합니다.

 

0278.PNG

 

mid 숨기기 애드온 hide_mid.addon.php 파일을 열고 다음 강조된 줄의 코드를 추가합니다.

/**
 * @file hide_mid.addon.php
 * @author UPGLE (admin@upgle.com)
 * @brief Hide a mid of XpressEngine
 */
if($called_position == 'before_module_init')
{
    if(!$this->document_srl) return;
    $oModuleModel = getModel('module');https://blog.tunalabs.io/wp-admin/post.php?post=171968&action=edit#
    $module_info = $oModuleModel->getModuleInfoByDocumentSrl($this->document_srl);
    
    if($module_info) 
    {
        if(!$this->act && $this->mid && Context::getRequestMethod() == 'GET')
        {
            header("HTTP/1.1 301 Moved Permanently");
            header('location:' . getNotEncodedUrl('', 'document_srl', $this->document_srl));
            Context::close();
            exit;
        }
        $this->mid = $module_info->mid;
        Context::set('mid', $this->mid);
    }
}

 

 

0276.PNG

 

적용 후 에는 위 사진과 같이 서버에서 HTTP 상태코드 301을 보내줍니다.

 

 

 

4. 마무리

위 방법들을 적용하면 분명 SEO 가 개선되고 작성한 게시글을 더 많은 사람들이 볼 수 있도록 할 수 있을것입니다.

 

 

 

 


 

링크

 

 

참조

 

 

참조: XE 공식 홈페이지

 

 

 

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.