seo

SEO 적용하기

SEO 적용하기
0 views
views
12 min read
#seo

검색 엔진 최적화(SEO, Search Engine Optimization)는 웹사이트나 블로그 글이 검색 엔진에서 더 높은 순위로 노출되도록 돕는 일련의 기법입니다.
사용자의 검색 쿼리에 대해 검색 엔진이 내 사이트의 컨텐츠를 정확하고 가치 있게 인식하도록 만들면, 자연스럽게 트래픽 증가와 인지도 향상 효과를 기대할 수 있습니다.

이번 글에서는 기본적인 SEO 개념부터 메타 태그 설정, Next.js에서의 SEO 적용 예시 등 단계별로 살펴보겠습니다.


1. SEO의 기본 개념

1.1 SEO란?

  • Search Engine Optimization: 검색 엔진에서 특정 키워드 검색 시 상위 노출을 목표로 웹사이트를 개선하는 과정
  • 목표: 사이트 방문자 증가, 브랜드 인지도 상승, 전환율 향상

1.2 검색 엔진의 작동 방식

  1. 크롤링(Crawling): 검색 엔진 봇이 웹사이트의 페이지를 자동으로 찾아다니며 콘텐츠 수집
  2. 인덱싱(Indexing): 수집한 정보를 검색 엔진 데이터베이스에 저장하고 구조화
  3. 랭킹(Ranking): 사용자가 특정 키워드로 검색할 때, 검색 엔진이 가장 관련성이 높고 품질 높은 페이지를 순위에 따라 보여줌

검색 엔진은 사이트 구조, 콘텐츠 품질, 백링크 등을 종합적으로 평가합니다.


2. On-page SEO vs Off-page SEO

2.1 On-page SEO

  • 사이트 내부 요소에 대한 최적화
  • 키워드 배치, 메타 태그, 페이지 구조, 콘텐츠 품질, URL 구조 등이 포함
  • 예) 블로그 포스트 작성 시, 적절한 제목(H1), 소제목(H2), 본문 내 키워드 배치, 메타 설명 등

2.2 Off-page SEO

  • 사이트 외부 요소에 대한 최적화
  • 다른 사이트에서 내 사이트로 연결되는 **백링크(backlink)**의 품질과 양, 소셜 미디어 활동 등이 대표적
  • 사이트의 평판, 권위(Authority)를 높이기 위한 방법

이번 글에서는 주로 On-page SEO 측면에 집중해, 사이트 내에서 쉽게 적용할 수 있는 방법들을 다룹니다.


3. 메타 태그(Meta Tags) 설정

메타 태그는 검색 엔진과 사용자 모두에게 중요한 정보를 제공합니다.
일반적으로 <head> 태그 내부에 배치하며, 주요 메타 태그는 다음과 같습니다.

3.1 필수 메타 태그

Title 태그

  • 브라우저 탭과 검색 엔진 결과의 제목으로 표시
  • 최적의 길이: 50~60자 내외(영문 기준)
<title>내 웹사이트의 대표 타이틀</title>

Meta Description

  • 검색 결과에서 제목 아래의 요약 설명으로 표시
  • 최적의 길이: 150~160자 내외(영문 기준)
<meta name="description" content="이 웹사이트 혹은 페이지에 대한 짧은 요약"/>

3.2 Open Graph 태그

SNS 공유 시 보여지는 제목, 설명, 이미지를 제어하는 메타 태그입니다.
페이스북, 카카오톡, 트위터 등에서 공유 미리보기 카드가 제대로 표시되려면 설정이 필수입니다.

<meta property="og:title" content="페이지 제목"/>
<meta property="og:description" content="페이지 설명"/>
<meta property="og:image" content="이미지 URL"/>
<meta property="og:url" content="페이지 URL"/>

3.3 Twitter Card

트위터 공유 시 표시되는 카드 형식을 제어합니다.

<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:title" content="페이지 제목"/>
<meta name="twitter:description" content="페이지 설명"/>
<meta name="twitter:image" content="이미지 URL"/>

4. 사이트 구조 최적화

4.1 URL 구조

  • 짧고 이해하기 쉽게 작성
  • 키워드를 적절히 포함: 예) /blog/seo-basics, /shop/red-shoes
  • 단어 사이에는 _(underscore)보다는 -(hyphen)을 사용하는 것이 일반적

4.2 Heading 태그

  • H1 태그는 페이지당 1회만 사용하며, 핵심 주제를 담도록 작성
  • H2, H3 등 소제목을 계층 구조에 맞춰 사용
<h1>SEO 적용 가이드</h1>
<h2>메타 태그란?</h2>
<h2>검색 엔진의 크롤링</h2>

4.3 이미지 Alt 텍스트

  • 이미지를 로드할 수 없는 환경이나 스크린 리더에서 대체 텍스트로 표시
  • SEO 측면에서도 이미지에 관한 추가 정보를 검색 엔진에 제공
<img src="/images/seo.png" alt="SEO를 설명하는 다이어그램" />

5. Next.js에서 SEO 적용하기

Next.js를 사용하면, 기본적으로 서버 사이드 렌더링(SSR)을 통해 검색 엔진에 유리한 환경을 제공합니다.
또한 next/head 또는 Next.js App Router(13+) 기능을 사용해 페이지별 메타 태그를 쉽게 설정할 수 있습니다.

5.1 next/head 기본 예시

pages/index.tsx
import Head from 'next/head';
 
export default function Home() {
  return (
    <>
      <Head>
        <title>나의 홈 페이지</title>
        <meta name="description" content="홈페이지에 대한 소개입니다." />
        <meta property="og:title" content="나의 홈 페이지" />
        <meta property="og:description" content="오픈 그래프 설명입니다." />
        <meta property="og:image" content="/images/home-og.jpg" />
        <meta property="og:url" content="https://myhomepage.com" />
      </Head>
      <main>
        <h1>홈</h1>
        <p>이곳은 메인 페이지입니다.</p>
      </main>
    </>
  );
}
  • <Head> 내에 필요한 메타 태그를 삽입하면, 빌드시 해당 페이지의 <head> 영역에 병합
  • 동적으로 제목 및 설명을 변경할 수 있어 각 페이지마다 고유한 메타 정보를 제공 가능

5.2 App Router(13 버전 이상)에서 메타 태그 적용

Next.js 13+의 App Router를 쓰는 경우, metadata 또는 generateMetadata를 통해 설정할 수 있습니다.

app/page.tsx
export const metadata = {
  title: '홈 페이지',
  description: '홈페이지에 대한 소개입니다.',
  openGraph: {
    title: '홈 페이지',
    description: '오픈 그래프 설명입니다.',
    url: 'https://myhomepage.com',
    images: ['/images/home-og.jpg'],
  },
};
 
export default function Home() {
  return (
    <main>
      <h1>홈</h1>
      <p>이곳은 메인 페이지입니다.</p>
    </main>
  );
}
  • metadata 객체를 통해 SEO 관련 설정을 쉽게 적용
  • 빌드 시 Next.js가 이 정보를 활용해 페이지 메타 태그를 자동 생성

6. 성능 최적화

SEO 점수를 높이기 위해서는 사이트의 페이지 로딩 속도도 매우 중요합니다.
Google은 로딩 속도가 느리면 검색 순위를 낮출 수 있기 때문에, 다음 최적화 방법을 고려해볼 수 있습니다.

  1. 이미지 최적화: Next.js에서 Image 컴포넌트 사용, WebP 등 차세대 포맷 사용
  2. 코드 스플리팅: 불필요한 스크립트를 최소화하여 초기 로딩 속도 개선
  3. 캐싱: getStaticProps / getServerSideProps 등 빌드 시점, 서버 사이드에서 데이터를 미리 받아 캐싱

7. 검색 엔진에 사이트 노출 확인

7.1 Search Console 등록

구글 검색에 사이트가 정상적으로 노출되고 있는지 확인하려면 Google Search Console에 등록하는 것이 좋습니다.

  1. Google Search Console 접속
  2. 사이트 소유권 확인(HTML 파일 업로드, DNS TXT 레코드 등록 등)
  3. 사이트맵 제출 및 인덱스 상태 모니터링

7.2 사이트맵(Sitemap) 작성

사이트 구조를 검색 엔진 봇에게 안내할 수 있도록 XML 형식의 사이트맵을 생성합니다.
Next.js에서는 next-sitemap 라이브러리를 활용할 수 있습니다.

npm install next-sitemap
next-sitemap.config.js
module.exports = {
  siteUrl: 'https://myhomepage.com',
  generateRobotsTxt: true, // robots.txt 생성
  sitemapSize: 7000,
};
  • 빌드 시점에 자동으로 sitemap.xml, robots.txt 파일이 생성
  • Google Search Console에서 해당 사이트맵 주소(https://myhomepage.com/sitemap.xml)를 제출

8. 주의사항 및 팁

  1. 키워드 스터핑(Keyword Stuffing)
    • 동일 키워드를 과도하게 반복하는 것은 역효과를 낳을 수 있으므로 자연스럽게 포함
  2. 중복 콘텐츠
    • 동일 또는 유사한 콘텐츠가 여러 페이지에 존재하면, 검색 엔진에서 불이익을 받을 수 있음
    • 필요하다면 canonical 태그를 통해 원본 페이지를 명시
  3. 모바일 최적화
    • 모바일 사용자 비율이 증가하는 추세이므로, 반응형 웹 디자인 또는 모바일 전용 레이아웃 사용
    • Google은 모바일 친화적 사이트를 우선 랭킹에 반영하기 때문에 반드시 모바일 테스트 진행

9. 결론

SEO는 한 번 설정하고 끝나는 작업이 아니라, 지속적인 관리와 모니터링이 중요한 분야입니다.

  • 사이트 구조 개선: 메타 태그, URL 구조, 헤딩 태그 등을 꾸준히 관리
  • 콘텐츠 품질 향상: 검색 엔진에 노출될 가치가 높은 유익한 콘텐츠 제작
  • 성능 최적화: 빠른 페이지 로딩 속도를 유지
  • 결과 분석: Search Console, Google Analytics 등을 통해 성과 점검, 전략 재정비

위 과정을 통해 검색 엔진에 최적화된 사이트를 운영할 수 있으며,
이를 통해 더 많은 방문자, 더 나은 사용자 경험을 만들어낼 수 있습니다.

SEO는 기술적 요소(메타 태그, HTML 구조, 속도 최적화)와 콘텐츠 마케팅(키워드, 작성 주기, 품질)이 조화를 이루어야 합니다.
지속적으로 트렌드와 알고리즘 변화를 모니터링하면서, 내 사이트의 목표(트래픽, 전환)를 달성해 보세요.