모던 웹 개발에서 검색 엔진 최적화 (Search Engine Optimization, SEO)는 매우 중요한 요소입니다. 하지만, 자바스크립트로 작성된 웹 애플리케이션은 기본적으로 검색 엔진에게 크롤링되지 않을 수 있습니다. 이는 애플리케이션의 콘텐츠가 동적으로 생성되거나, 검색 엔진 로봇이 자바스크립트 코드를 실행할 수 없기 때문입니다.
하지만, Vercel과 같은 정적 웹 호스팅 플랫폼을 사용하여 자바스크립트 애플리케이션의 SEO를 개선할 수 있습니다. Vercel은 사전 렌더링 (Pre-rendering)을 지원하므로, 검색 엔진에서 콘텐츠를 인덱싱할 수 있게 됩니다.
1. 동적 라우트 지원
Vercel은 동적 라우팅을 지원하여, 각 페이지에 대한 정적 HTML 파일을 생성할 수 있게 해줍니다. 이를 통해 검색 엔진이 페이지를 크롤링할 때 콘텐츠를 보다 잘 이해할 수 있게 됩니다. 동적 라우트를 구현하기 위해서는 Vercel의 설정 파일 (vercel.json 또는 now.json)에서 rewrites
속성을 사용하여 경로와 해당 페이지 컴포넌트를 매핑해야 합니다.
{
"rewrites": [
{ "source": "/blog/(.*)", "destination": "/blog-post?slug=$1" }
]
}
위의 예시에서 /blog/:slug
경로로 접근하는 경우, 해당 페이지 컴포넌트인 BlogPost
로 매핑되어 정적 HTML 파일을 생성할 수 있습니다.
2. 메타 태그 추가
검색 엔진이 웹 페이지의 내용을 이해하고 적절히 표시할 수 있도록 메타 태그를 추가하는 것이 중요합니다. Vercel을 사용하여 자바스크립트 애플리케이션을 배포할 때, 동적 라우트에 대한 메타 태그를 설정할 수 있습니다. 예를 들어, BlogPost
컴포넌트에서 각 블로그 게시물의 메타 데이터를 추출하고, 해당 메타 데이터를 기반으로 페이지의 메타 태그를 동적으로 생성할 수 있습니다.
import Head from 'next/head';
function BlogPost({ post }) {
return (
<div>
<Head>
<title>{post.title}</title>
<meta name="description" content={post.description} />
<meta property="og:title" content={post.title} />
<meta property="og:description" content={post.description} />
<meta property="og:image" content={post.image} />
</Head>
{/* 블로그 게시물의 내용 */}
</div>
);
}
위의 예시에서는 Head
컴포넌트를 사용하여 페이지의 메타 태그를 정의합니다. 이를 통해 검색 엔진이 페이지의 제목, 설명, 그리고 공유 이미지를 적절히 인식할 수 있습니다.
3. 사전 렌더링된 HTML 제공
Vercel은 자동으로 사전 렌더링된 HTML을 제공하므로, 검색 엔진이 애플리케이션의 콘텐츠를 크롤링할 수 있게 됩니다. 이를 위해서는 Vercel에 애플리케이션을 배포하고, Vercel의 CDN을 통해 정적 HTML 파일을 서빙하도록 설정해야 합니다.
vercel --prod
위의 명령어를 실행하면, Vercel은 애플리케이션의 정적 파일을 빌드하고 배포하여 사전 렌더링된 HTML을 제공합니다. 이를 통해 검색 엔진이 애플리케이션에 대한 콘텐츠를 보다 잘 인식할 수 있습니다.
검색 엔진 최적화에 대한 자세한 내용은 다음 자료를 참고하시기 바랍니다:
#SEO #Vercel