반응형
티스토리 고정형 사이드바 스크롤 구현 방법
티스토리 스킨고정 사이드바position:stickyIntersectionObserver반응형애드센스
개요: 언제 ‘고정 사이드바’가 필요한가
사이드바를 스크롤에 맞춰 고정하면 목차 이동, 관련 글 탐색, 저자 정보/CTA 노출이 안정돼 두 번째 글 조회율을 높일 수 있습니다. 다만 모바일에서는 공간을 많이 차지하므로 데스크톱 우선 적용을 권장합니다.
핵심: 레이아웃은 본문 폭 680~760px, 사이드바 폭 260~320px를 기준으로 여백을 확보하세요.

방법① CSS만으로 sticky 구현
position: sticky
는 가장 간단한 방법입니다. 상단 고정 간격을 top
으로 지정합니다. 부모 요소에 overflow: visible
이거나 overflow
를 지정하지 않아야 정상 동작합니다.
/* 레이아웃 */
.main-wrap{display:grid;grid-template-columns:1fr 300px;gap:28px}
@media (max-width:1024px){.main-wrap{grid-template-columns:1fr}} /* 모바일 1열 */
/* 사이드바 sticky */
.sidebar{
position: sticky; /* 스크롤 시 고정 */
top: 88px; /* 헤더 높이(고정 네비)만큼 보정 */
align-self: start;
height: fit-content;
}
/* 부모가 overflow:hidden이면 sticky가 깨질 수 있음 → 제거 */
.layout, .main-wrap{overflow: visible;}
팁: 티스토리의 상단 고정 헤더가 있다면 실제 헤더 높이(+간격 8~12px)를
top
에 반영하세요.방법② JS로 고정 헤더/푸터 보정
환경에 따라 헤더 높이가 유동적이면 로드 후 계산해 top
값을 지정합니다. 또한 사이드바가 본문 하단을 넘지 않도록 최대 높이를 동적으로 설정합니다.
<script>
(function(){
const sidebar = document.querySelector('.sidebar');
const header = document.querySelector('header'); // 고정 헤더
const main = document.querySelector('.post-content');
function applyStickyOffset(){
const headerH = header ? header.getBoundingClientRect().height : 0;
sidebar.style.top = (headerH + 12) + 'px';
// 본문 높이에 따라 최대 높이 제한
const maxH = main.scrollHeight - window.innerHeight * 0.1;
sidebar.style.maxHeight = Math.max(360, Math.min(maxH, 900)) + 'px';
sidebar.style.overflow = 'auto'; // 키보드 접근성 확보
}
window.addEventListener('load', applyStickyOffset);
window.addEventListener('resize', applyStickyOffset);
})();
</script>
주의: 광고 슬롯이 사이드바 상단 600px 이내에 2개 이상 배치되면 사용자 경험과 정책 모두에 불리할 수 있습니다. 1화면 1광고 원칙을 적용하세요.
방법③ IntersectionObserver로 현재 섹션 하이라이트
목차(TOC)와 결합하면 사용성이 크게 향상됩니다. 현재 가시 영역의 섹션을 감지해 TOC 링크에 active
클래스를 부여합니다.
<script>
document.addEventListener('DOMContentLoaded', function(){
const tocLinks = Array.from(document.querySelectorAll('.toc a[href^="#"]'));
const targets = tocLinks.map(a => document.querySelector(a.getAttribute('href'))).filter(Boolean);
const opt = {rootMargin:'-30% 0px -60% 0px', threshold:[0, 1.0]};
const io = new IntersectionObserver((entries)=>{
entries.forEach(entry => {
const id = '#' + entry.target.id;
const link = document.querySelector('.toc a[href="'+id+'"]');
if(!link) return;
if(entry.isIntersecting){ tocLinks.forEach(l => l.classList.remove('active')); link.classList.add('active'); }
});
}, opt);
targets.forEach(el => io.observe(el));
});
</script>
/* 활성화 스타일 */
.toc a.active{font-weight:700;color:#111827;text-decoration:underline}
팁: 링크에는
aria-current="true"
를 함께 설정하면 스크린리더가 현재 위치를 정확히 읽어줍니다.이미지 슬롯·OG·ALT 규칙
- 대표 썸네일(OG): 1200×630, 대비 높은 색 + 12~16자 핵심 문구.
- 본문 이미지: WebP 권장,
width/height
명시,loading="lazy"
. - ALT: 이미지를 보지 못해도 구조/흐름이 이해되는 1문장 작성.

적용 루틴(체크 & 테스트)
- 데스크톱: 1200px, 1440px에서 스크롤 테스트 → 헤더/푸터 겹침 여부 확인
- 모바일: 1024px 이하에서는 1열로 전환하고 사이드바 콘텐츠를 하단으로 이동
- 접근성: 키보드 Tab 순서와 포커스 표시,
aria-current
확인 - 성능: 레이아웃 쉬프트(CLS) 방지 위해 이미지 크기 지정, 광고는 지연 로딩
팁: 목차·관련 글·뉴스레터 구독만 남기고 나머지는 접어두세요(아코디언). 스크롤 시 방해 요소를 최소화합니다.
지표: CTR·scroll_90·view_second_post
- CTR: 사이드바 카드/목차 클릭률(리스트 > 4% 권장).
- 완독:
scroll_90
비율(개별 글 > 35% 목표). - 깊이:
view_second_post
비율(> 22% 목표)로 내부 링크 품질 점검.
지표 | 문제 징후 | 개선 액션 |
---|---|---|
CTR | 사이드바 클릭 < 2% | 목차를 상단 배치, 링크 수 줄이고 명칭을 구체화 |
scroll_90 | < 30% | 서론 압축, 첫 이미지/요약 박스를 상단 노출 |
view_second_post | < 15% | 허브↔스포크 내부 링크 2개 이상, 관련 글 썸네일 추가 |
발행 전 체크리스트
- 레이아웃이 2열에서만 sticky 동작하고, 모바일(≤1024px)에서는 1열로 전환되는가?
- 부모 요소의
overflow
로 인해 sticky가 깨지지 않는가? - 헤더 높이 보정(
top
)이 정확하며, 포커스 이동 시 가려지지 않는가? - 이미지 WebP,
width/height
,loading="lazy"
, ALT/캡션이 적용됐는가? - 애드센스 정책(1화면 1광고) 및 저작권/출처 표기를 준수했는가?

최종 정리
티스토리에서 고정형 사이드바는 목차/관련 글 노출을 안정화해 사용자 여정을 부드럽게 만듭니다. 기본은 position: sticky
, 환경 보정은 JS, 사용성 개선은 IntersectionObserver
로 완성하세요. 모바일은 1열 전환을 기본값으로 하고, 동일 URL을 지속적으로 업데이트하며 지표를 통해 사이드바 구성 요소를 최적화하면 애드센스와 SEO 모두에 긍정적인 효과를 기대할 수 있습니다.
반응형
'블로그 운영 노하우' 카테고리의 다른 글
티스토리 AMP 적용 가능성과 리스크 분석 (0) | 2025.10.18 |
---|---|
티스토리 전용 글쓰기 자동화 Notion-GPT 워크플로우 (0) | 2025.10.17 |
티스토리 블로그용 GA4 이벤트 추적 커스터마이징 (0) | 2025.10.16 |
블로그 성과 추적용 UTM 파라미터 설정법 (0) | 2025.10.16 |
ChatGPT와 티스토리 연동한 글 자동 템플릿 만들기 (1) | 2025.10.15 |