개발 slecs

포트폴리오 백링크 도메인 타깃 오류 수정

목차

포트폴리오 페이지에 걸린 외부 링크가 엉뚱한 도메인을 가리키고 있었다. 작은 수정이지만 백링크 타깃이 틀리면 그 링크 자체가 의미 없어지기 때문에 빠르게 잡았다.

배경

블로그의 base.html은 전체 레이아웃을 담당하는 베이스 템플릿이다. 헤더나 푸터처럼 모든 페이지에 공통으로 렌더링되는 영역이 여기에 정의되어 있고, 포트폴리오 관련 외부 링크도 이 파일에 박혀 있었다. 문제는 그 링크의 href가 apex 도메인(루트 도메인, 즉 slecs.net)을 제대로 가리키지 않고 있었던 것.

백링크란 결국 "이 링크를 타고 저기로 갈 수 있다"는 신뢰 관계인데, 타깃이 틀렸으면 그냥 죽은 링크거나 의도하지 않은 도메인으로 트래픽이 흘러가는 상황이 된다. 특히 apex 도메인 vs 서브도메인(www.slecs.net vs slecs.net) 구분을 흐릿하게 처리하다 보면 리다이렉트 설정이 없는 쪽으로 링크가 박혀서 404를 내뱉거나 DNS 레벨에서 아예 응답이 없는 경우도 생긴다.

수정 내용

변경 파일은 app/templates/base.html 단 하나. stat이 명시되지 않은 걸 보면 아마 한두 줄, 핀포인트 수정이었을 가능성이 높다. 대략 이런 맥락의 수정이다.

<!-- before -->
<a href="https://www.slecs.net/portfolio" target="_blank">Portfolio</a>

<!-- after -->
<a href="https://slecs.net/portfolio" target="_blank">Portfolio</a>

혹은 반대 방향(서브도메인이 정규 주소인 경우)일 수도 있지만, 커밋 메시지가 "apex"를 명시하고 있으니 apex 도메인을 정규 타깃으로 맞췄다고 보는 게 맞다.

이런 수정이 왜 중요하냐면:

  • SEO 관점: 백링크의 도메인 타깃이 일관되지 않으면 링크 주스(link juice)가 분산되거나 유실된다. apex와 www를 각각 별개 도메인으로 취급하는 크롤러 입장에서는 두 주소가 같은 사이트라는 보장이 없다.
  • 사용자 경험: 링크를 클릭했을 때 의도한 페이지가 나와야 한다. 리다이렉트가 걸려있다면 그나마 다행이지만, 없으면 그냥 오류다.
  • 신뢰도: 포트폴리오 링크가 깨져 있으면 블로그를 보는 사람 입장에서 인상이 좋을 리 없다.

베이스 템플릿 수정, 이게 생각보다 파급이 크다

base.html 한 줄 고치는 거 별것 아닌 것 같지만, 베이스 템플릿은 사이트 전체 페이지에 적용된다. 이 파일을 건드릴 때는 항상 "이 변경이 모든 페이지에 동시 적용된다"는 걸 의식해야 한다.

수정 범위 영향 페이지 주의 포인트
base.html 전체 레이아웃 깨짐, 공통 링크 오동작
개별 페이지 템플릿 해당 페이지만 상대적으로 영향 범위 좁음
정적 파일(CSS/JS) 해당 파일을 참조하는 페이지 캐시 bust 필요 여부 확인

그래서 팀 작업 환경에서 base.html에 손댈 때는 리뷰 기준도 조금 다르게 가져간다. "이 한 줄 왜 바꿨어?"보다 "이게 다른 페이지에서 문제없이 렌더링되는 거 확인했어?"를 먼저 물어보는 편이다. 물론 이번처럼 링크 타깃 하나 고치는 수준은 사이드이펙트가 거의 없지만, 습관적으로 범위 영향을 체크하는 게 맞다.

개인 블로그라서 이번엔 혼자 짠 코드 혼자 고쳤지만, 결국 이런 작은 핀포인트 픽스들이 쌓여서 사이트의 완성도를 만든다는 생각은 변하지 않는다. 링크 하나 틀린 채로 방치하는 것도 엄연히 기술 부채다.

끝.

댓글 0

첫 댓글 달아줘.