Nuxt.js

[Nuxt] SEO(검색 엔진 최적화)

_doit 2024. 8. 23. 19:04
728x90
반응형

SEO (검색 엔진 최적화) 는 단순히 <head> 태그만 관리하는 것이 아니라, 검색 엔진이 웹사이트를 더 잘 이해하고, 올바르게 인덱싱하며, 사용자가 검색할 때 더 쉽게 찾을 수 있도록 돕는 다양한 기술과 전략을 포괄하는 작업이다.

  • <head> 태그: 메타 태그와 구조화된 데이터 설정.
  • 크롤링 제어: robots.txt와 메타 로봇 태그로 크롤링을 제어.
  • 사이트맵(sitemap): 사이트맵을 생성하고 제출하여 검색 엔진이 사이트를 효과적으로 크롤링할 수 있게 돕습니다.
  • 구조화된 데이터: 리치 스니펫을 위한 구조화된 데이터 추가.
  • 성능 최적화 및 콘텐츠 관리: 검색 엔진 최적화의 핵심.

이 모든 작업이 조화를 이루어야 검색 엔진에서 좋은 순위를 유지하고, 웹사이트의 가시성을 높일 수 있다.

 

보통은 nuxt-seo 라이브러리를 대부분 활용함 

 

Sitemap 생성하기 

1. Nuxt Sitemap 모듈 설치

  • Nuxt.js에서는 사이트맵 생성을 쉽게 도와주는 @nuxtjs/sitemap 모듈을 제공한다.
npx nuxi@latest module add sitemap
  • Nuxt Sitemap 모듈은 설치된 상태에서, 별도의 sitemap 설정을 하지 않더라도 자동으로 기본적인 사이트맵을 생성한다. 이 경우, 기본적으로 프로젝트의 모든 정적 라우트가 사이트맵에 포함된다.

2. 사이트 구성 설정:

  • nuxt.config.ts에서 site.url 및 site.name을 설정. 이는 사이트의 기본 URL 및 사이트맵에 표시될 이름을 정의하는 것.
export default defineNuxtConfig({
  site: {
    url: 'https://example.com',
    name: 'My Awesome Website',
    description: 'Nuxt SEO is a collection of hand-crafted Nuxt Modules to help you rank higher in search engines.',
    tagline: 'All the boring SEO stuff for Nuxt done.'
  },
})

 

3. 동적 라우트 포함

  • 동적 라우트 (예: [query].vue)는 기본 설정만으로는 포함되지 않습니다. 동적 라우트를 포함하려면 별도로 routes 옵션을 설정해야 한다.
sitemap: {
  routes: async () => {
    // 동적 라우트 목록 생성 로직 추가
  }
}

 

4. 사이트맵 확인 

{도메인}/sitemap.xml 로 사이트맵을 확인할 수 있다.

 

크롤링 제어

1. @nuxtjs/robots 모듈 설치

npx nuxi@latest module add robots

 

2. 기본 설정

export default defineNuxtConfig({
  modules: ['@nuxtjs/robots'],

  robots: {
    rules: [
      {
        UserAgent: '*',  // 모든 검색 엔진 크롤러에 적용
        Allow: '/',  // 모든 페이지를 크롤링 허용
      }
    ],
    sitemap: 'https://example.com/sitemap.xml'  // 사이트맵의 위치
  }
})

이 설정은 robots.txt 파일을 생성하여 모든 페이지가 크롤링될 수 있도록 한다.

 

3. 특정 페이지 크롤링 금지

export default defineNuxtConfig({
  modules: ['@nuxtjs/robots'],

  robots: {
    rules: [
      {
        UserAgent: '*',
        Disallow: '/admin',  // /admin 경로 크롤링 금지
        Allow: '/',  // 나머지 모든 경로 크롤링 허용
      }
    ],
    sitemap: 'https://example.com/sitemap.xml'
  }
})

이 설정은 /admin 경로에 있는 모든 페이지를 크롤링하지 않도록 한다.

 

4. robots.txt 확인 

{도메인}/robots.txt  로 사이트맵을 확인할 수 있다.

참고로 개발 환경에서는 크롤링이 안됨

 



참고자료
https://nuxtseo.com/nuxt-seo/getting-started/what-is-nuxt-seo
https://github.com/harlan-zw/nuxt-seo

728x90
반응형