부제: 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 서치콘솔에서 문서 하나에 여러 링크가 붙어있음을 알 수 있습니다.
이렇게 되면 검색봇 입장에서는 똑같은 게시글을 복사 + 붙혀넣기하는
부적절한 행동으로 인식되어 검색순위에 부정적인 영향이 가게됩니다.
3. 주소를 하나로 통일
각 문서에 하나의 주소만 갖게 만드는방법으로 SEO 최적화가 가능합니다.
XE 코어를 수정하지 않고 애드온, 스킨 등의 수정으로 가능케 하는 방법을 소개드립니다.
1. 짧은 주소 사용 켜기
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. 업글
http://site_url/board/1234 와 같은 주소 형식을 http://site_url/1234 로 바꿔줍니다.
설치 후 애드온을 켜면 적용된다.
3. mid 숨기기 애드온 수정
mid 숨기기 애드온을 사용하면 호출된 링크를 단축된 링크로 302 임시이동(moved temporarily)하게됩니다.
HTTP 상태코드 302는 임시로 이 링크를 사용하도록 지시하기 때문에, 우리는 301 moved permanently 상태코드를 보내도록 수정합니다.
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); } }
적용 후 에는 위 사진과 같이 서버에서 HTTP 상태코드 301을 보내줍니다.
4. 마무리
위 방법들을 적용하면 분명 SEO 가 개선되고 작성한 게시글을 더 많은 사람들이 볼 수 있도록 할 수 있을것입니다.
링크
참조
참조: XE 공식 홈페이지
- getUrl 관련 질문입니다~
- getUrl() 함수는 어디에 있나요?
- {getUrl(‘category’,”,’page’,”)} 이게 무슨 뜻인가요?
- XE 공식 홈페이지 ㅡ 검색엔진 SEO 를 적용시키는게 어떨까요?