페이지의 주요 콘텐츠가 어디인지를 명시하는 landmark. body 직속 자식 중 가장 중요한 시맨틱 요소. header·nav·footer 같은 부속 영역과 진짜 본문을 명확히 구분한다.
SEO 관점에서 구글은 페이지의 주요 콘텐츠 영역을 식별해 본문 키워드에 더 높은 가중치를 둔다. 사이드바·푸터·헤더에 박힌 키워드는 보조 신호로, main 안 키워드는 주요 신호로 분리 평가. main이 명시된 페이지는 이 평가가 빠르고 정확하다. 모든 게 div인 페이지에서는 구글이 시각적 비율·콘텐츠 밀도로 본문을 추측하고, 추측은 자주 틀린다 — 광고나 사이드바가 본문으로 오인되기도 한다.
GEO 관점에서 AI Overviews와 Perplexity는 답변을 추출할 때 어디서 끌어올지를 판단해야 한다. main이 있으면 그 안만 본다. 광고·푸터·사이드바 텍스트가 답변에 섞이지 않는다. 결과적으로 같은 콘텐츠라도 더 깨끗한 답변 인용을 받는다.
A11y 관점에서 main은 스크린리더 사용자의 가장 중요한 단축키 타깃. NVDA의 D 키, VoiceOver의 rotor "Landmarks"에서 본문으로 한 번에 점프. skip link의 표준 타깃도 main. 시리즈 #16과 #6에서 자세히 다뤘다.
자주 보는 안티패턴: Next.js App Router에서 layout.tsx와 page.tsx 양쪽에 <main>을 박아 한 페이지에 두 개의 main이 렌더되는 케이스. 시리즈 #6에서 본 최대 흔한 실수. layout에 한 번만 두고, page에는 <article>이나 <section>만 두는 게 표준.
main이 없는 페이지는 — <body> 직속 div들이 본문인지 사이드바인지를 보조 기술과 AI 모두가 추측해야 한다. <main id="main-content" tabindex="-1"> 한 줄이 그 추측을 명시적 사실로 바꾼다. tabindex="-1"은 프로그램 포커스를 가능하게 해서, SPA 라우팅 후 main에 포커스를 옮기는 시리즈 #10 패턴과 연결된다.