๋ฆฌ์กํธ๋ ๊ธฐ๋ณธ์ ์ผ๋ก CSR ๊ธฐ๋ฐ์ด๊ธฐ ๋๋ฌธ์ ๊ตฌ์กฐ์ ์ผ๋ก SEO์ ๋ถ๋ฆฌํ๋ค๋ ๋จ์ ์ด ์๋ค. ์ด ๋ฌธ์ ๋ฅผ ๋ณด์ํ๊ธฐ ์ํด ๋ฑ์ฅํ ํ๋ ์์ํฌ๊ฐ ๋ฐ๋ก Next.js์ด๋ฉฐ ์ด๋ฅผ ํ์ฉํด ์ด๋ป๊ฒ SEO๋ฅผ ์ต์ ํํ ์ ์๋์ง ์ดํด๋ณด์.
CSR์ ์ด๊ธฐ HTML์ ๊ฑฐ์ ๋น์ด ์๊ณ ๋ธ๋ผ์ฐ์ ๊ฐ JavaScript ํ์ผ์ ์ด์ฉํ์ฌ ์ฝํ
์ธ ๋ฅผ ๋ ๋๋ง ํ๋ ๋ฐฉ์์ ์๋ฏธํ๋ค. React ๋ Vue ๊ฐ์ ๋๋ถ๋ถ์ SPA(Single Page Application)๋ ๊ธฐ๋ณธ์ ์ผ๋ก CSR์ ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๋ค.
๊ฒ์์์ง ํฌ๋กค๋ฌ(Google, Naver ๋ฑ)๋ ํ์ด์ง์ ์ ๊ทผํ๋ฉด ๋จผ์ HTML ์ฝํ
์ธ ๋ฅผ ํ์ฑ ํ๋ค. ๊ทธ๋ฐ๋ฐ CSR ๋ฐฉ์์์๋ JavaScript ์คํ ์ ๊น์ง ์ฝํ
์ธ ๊ฐ ์กด์ฌํ์ง ์์ผ๋ฏ๋ก ๊ฒ์์์ง์ด ๋ด์ฉ์ ์ ๋๋ก ์ธ์ํ์ง ๋ชปํ ์ ์๋ค. ๊ทธ๋ก ์ธํด SEO ์ ์๊ฐ ๋ฎ์์ง๊ฑฐ๋ ๊ฒ์ ๊ฒฐ๊ณผ์ ๋
ธ์ถ๋์ง ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค.
๋ฐ๋ผ์ Next.js๋ 3๊ฐ์ง ๋ ๋๋ง ๋ฐฉ์์ ์ ๊ณตํ๋ค.
๊ฐ๊ฐ์ ๋ ๋๋ง ๋ฐฉ์์ ์ฅ๋จ์ ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ํ์ด์ง์ ์ฑ๊ฒฉ์ ๋ฐ๋ผ ์ ์ ํ ์ ํํด์ผ ํ๋ค. ๊ทธ๋ผ ๋ณธ๊ฒฉ์ ์ผ๋ก SEO ์ต์ ํ๋ฅผ ํด๋ณด์.
Next.js์์๋ ๋ฉํํ๊ทธ๋ฅผ ์ค์ ํ๋ ๋ฐฉ์์ด ๋ผ์ฐํ
๋ฐฉ์์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค. pages ๋๋ ํฐ๋ฆฌ ๊ธฐ๋ฐ์ ๊ธฐ์กด ๋ฐฉ์์์๋ <Head> ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ๊ณ app ๋๋ ํฐ๋ฆฌ ๊ธฐ๋ฐ์ App Router ๋ฐฉ์์์๋ metadata ๊ฐ์ฒด๋ฅผ ์ ์ํ๋ ๋ฐฉ์์ผ๋ก ์ค์ ํ ์ ์๋ค.
๋ธ๋ก๊ทธ์ ๊ฒฝ์ฐ App Router ๋ฐฉ์์ ์ฌ์ฉํ์๊ธฐ ๋๋ฌธ์ ์ฐ์ ๊ณตํต์ ์ผ๋ก ์ฌ์ฉํ ๋ฉํ๋ฐ์ดํฐ๋ฅผ layout ํ์ผ์ ์ ์ํด๋์๋ค.

๊ทธ ํ ํ์ด์ง๋ณ๋ก ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ๊ณ ์ถ์ ๋์๋ page ํ์ผ๋ณ๋ก metadata ๊ฐ์ฒด๋ฅผ ๋ค์ ์ ์ํ์ฌ ์ค๋ฒ๋ผ์ด๋ ํด์ค๋ค.

๋ธ๋ก๊ทธ ๊ธ์ฒ๋ผ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ผ์ผ์ด ์ ์ํ๊ธฐ ์ด๋ ค์ด ๊ฒฝ์ฐ์๋ generateMetadata() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋์ ์ผ๋ก ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ค์ ํ ์ ์๋ค.

Next.js๋ ๊ธฐ๋ณธ์ ์ธ <img> ํ๊ทธ ๋์ ์์ฒด์ ์ผ๋ก ์ด๋ฏธ์ง ์ต์ ํ๋ฅผ ์ง์ํ๋ <Image> ์ปดํฌ๋ํธ๋ฅผ ์ ๊ณตํ๋๋ฐ ๋ํ์ ์ธ ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ๋ค.

๊ตฌ์กฐํ ๋ฐ์ดํฐ๋ ๊ตฌ๊ธ๊ณผ ๊ฐ์ ๊ฒ์ ์์ง์ด ํ์ด์ง์ ์๋ฏธ์ ๊ตฌ์กฐ๋ฅผ ์ดํดํ๊ธฐ ์ฝ๋๋ก ๋๋ ๋ฉํ๋ฐ์ดํฐ์ด๋ค. ์ผ๋ฐ์ ์ผ๋ก JSON-LD ํ์์ ์ฌ์ฉํ๋ฉฐ App Router ๋ฐฉ์์์๋ head ํ์ผ์ ์ด์ฉํ์ฌ ์ฝ์ ํ๋ค.
// app/about/head.tsx
export default function Head() {
const jsonLd = {
"@context": "https://schema.org",
"@type": "Person",
"name": "BlueCool12",
"url": "https://pyomin.com/about",
"jobTitle": "Full Stack Developer"
};
return (
<script type="application/ld+json">
{JSON.stringify(jsonLd)}
</script>
);
}
๋ธ๋ก๊ทธ์ ๊ฐ์ด ๊ฒ์ ์ ์
์ด ํต์ฌ์ธ ์น์ฌ์ดํธ๋ SEO ์ค์ ์ด ๋ฌด์๋ณด๋ค ์ค์ํ๊ธฐ ๋๋ฌธ์ Next.js๊ฐ ์ ๊ณตํ๋ ๋ค์ํ ๋ ๋๋ง ๋ฐฉ์๊ณผ ๊ธฐ๋ฅ๋ค์ ์ ๊ทน์ ์ผ๋ก ํ์ฉํ๋ ๊ฒ์ด ์ค์ํ๋ค.
