본문 바로가기

next.js

SEO 향상시키기

next.js를 사용해서 작은 프로젝트를 공부할 겸 만들어 보면서 SEO에 대해서도 공부하게 되었다.

next-seo라는 라이브러리를 이용하였다.

 

_document파일을 이용할 수 있다.

 이 파일은 HTML의 head, body tag를 수정할 수 있는 페이지다. 전역적으로 적용된다.

//_document.tsx
<Head>
 <title>Next.js 시작하기</title>
 <meta name="description" content = "Next.js시작하기 설명" />
</Head>

 

 

그러나 이렇게 사용하게 되면 페이지마다 바뀌어야하는 title의 경우 전역적으로 바꾸는 _document파일이 적합하지않다.

그래서 import Head from "next/head"; 를 사용할 수 있지만, 많은 페이지마다 title을 하나씩 지정하는 것도 비효율적이기 때문에 라이브러리의 도움을 받을 수 있다.

 

//landingPage
import { NextSeo } from  “next-seo”;

<NextSeo title="지도" description="Next.js프로젝트" />

이렇게 설정해주면 비슷한 역할을 하는 Meta 태그들을 자동으로 만들어준다. 개발자도구에서 확인이 가능하다.

또한 title, description만 적어줘도 og:title, og:description을 생성해준다.


seo.config.js

전역적으로 SEO관련 meta tag들을 정의한다.

 

1. og와 관련된 것들은 openGraph라는 Key안에 작성한다.

export default{
  openGraph:{
      type: 'website',
    site_name: 'Next.js 프로젝트',
    images: [
      { url: 'https://nextjs.org/static/blog/next-13/twitter-card.png' },
    ],
  }
},

2.addictionalLink Tags : 추가로 필요한 Link tag에 대해서 나열 ex)favicon

additionalLinkTags: [
    {
      rel: 'shortcut icon',
      href: '/favicon.ico',
    },
  ],

3.title Template

 titleTemplate: '%s - Next.js를 이용한 프로젝트', //%s : title에 있는 문구가 들어온다.

여기서 %s => 페이지에서 작성한 title이 위치한다.

아까 위에서 적어논 <NextSeo title="지도"/> 에서 "지도"부분이 들어온다는 것.

 

이렇게까지 설정한 것들을 _app파일에서 Import한다.

//_app.js
 import {DefaultSeo} from "next-seo";
 import SEO from "../seo.config";
 
 //return문
  <DefaultSeo {...SEO} /> //config파일을 props로 넘긴다.

이렇게 해주면 전역적으로 사용 끝 😎

다음에 실전으로 프로젝트를 하게 된다면 적용 해볼 수 있겠다.ㅎ

'next.js' 카테고리의 다른 글

SSG의 부족한 점을 보완한 ISR  (0) 2023.05.15
회원기능  (0) 2023.05.07
서버로 데이터 전송  (0) 2023.05.04
next.js server  (0) 2023.05.01
[next.js] getStaticPaths  (0) 2023.04.07