sitemap생성하고 구글에 제출하기 (feat. NextJS)
2023년 03월 06일
sitemap이란?
사이트맵은 검색 엔진이 크롤링하고 색인을 생성할 수 있는 웹사이트의 모든 페이지 목록을 제공하는 파일입니다. 사이트맵은 검색 엔진이 웹사이트의 구조를 파악하고 모든 페이지를 찾기 위해 따라야 할 로드맵과도 같습니다.
사이트맵은 XML, HTML, TXT 등 다양한 형식으로 만들 수 있으며 페이지가 마지막으로 업데이트된 날짜, 우선순위, 사이트의 다른 페이지와의 관계 등 다양한 유형의 정보를 포함할 수 있습니다.
사이트맵은 구글, 빙, 야후와 같은 검색 엔진에 제출하여 웹사이트의 모든 페이지를 보다 효율적으로 검색하고 색인을 생성하는 데 도움을 줄 수 있습니다. 사이트맵이 있으면 웹사이트 소유자가 사이트 구조나 탐색에 대한 오류나 문제를 파악하는 데에도 도움이 됩니다.
sitemap을 생성해봅시다.
next-sitemap 설치 및 설정
저는 next-sitemap 패키지를 사용해서 sitemap을 자동으로 생성해보겠습니다.
npm i next-sitemap
설치한후에 root위치에 next-sitemap.config.js파일을 생성해줍니다.
module.exports = {
siteUrl: "적용한 웹 URL",
generateRobotsTxt: true,
exclude: ['/admin', '/login'],
sitemapSize: 7000,
changefreq: "daily",
priority: 0.5,
};
-
siteUrl: 사이트의 URL입니다. 사이트맵에서 URL을 생성하는 데 사용됩니다.
-
generateRobotsTxt: robots.txt 파일을 생성할지 여부를 나타내는 부울 값입니다. 이 파일은 검색 엔진 봇이 크롤링할 페이지와 크롤링하지 않을 페이지를 지정합니다.
-
exclude: 사이트맵에서 제외할 URL과 일치하는 정규 표현식 배열입니다.
-
sitemapSize: 단일 사이트맵 파일에 포함할 수 있는 최대 URL 수입니다. 사이트맵이 이 제한을 초과하면 여러 파일로 분할됩니다.
-
changefreq: 사이트맵 내 URL의 기본 변경 주기입니다. 이 값은 URL 객체의 changefreq 속성을 사용하여 URL별로 재정의할 수 있습니다.
-
priority: 사이트맵에 있는 URL의 기본 우선순위입니다. URL 객체의 우선순위 속성을 사용하여 URL별로 재정의할 수 있습니다.
홈페이지와 같이 사이트에서 가장 중요한 URL에는 우선순위 1.0을 사용합니다.카테고리 페이지나 최상위 제품 페이지와 같이 중요하지만 홈페이지만큼 중요하지는 않은 URL에는 우선순위 0.5를 사용합니다. 개별 블로그 게시물이나 제품 이형 상품과 같이 덜 중요한 URL에는 0.3 이하의 우선순위를 사용합니다.
script 설정
"scripts": {
"build": "next build",
"postbuild": "next-sitemap --config next-sitemap.config.js",
},
postbuild를 사용하면 build 후에 실행될 스크립트를 설정할수 있습니다. next-sitemap을 실행시키고 config파일을 next-sitemap.config.js로 설정합니다.
npm run build
build 명령어를 실행시키고 난후 자동으로 public폴더안에 robots.txt, sitemap.xml, sitemap-0.xml이 만들어집니다.
<url><loc>https://kagrin97-blog.vercel.app/algorithm/9655-돌 게임</loc><lastmod>2023-03-06T03:25:53.647Z</lastmod><changefreq>daily</changefreq><priority>0.5</priority></url>
sitemap-0.xml파일을 열어보면 url안에 lastmod, changefreq, priority값들도 설정되어있습니다.
구글에 sitemap 제출하기
구글 서치 콘솔에 접속을 하면 sitemap탭이 존재합니다. 그곳에 sitemap.xml, sitemap-0.xml 둘다 제출해주시면 되는데 현재 구글 서치 콘솔에 에러가 많아서
이렇게 알 수 없음이 나타납니다. 해당 에러를 구글 서치 콘솔 커뮤니티에 문의해 본 결과 시간이 지나면 에러가 수정된다고 합니다.
며칠 후 생성이 성공한 모습
참고 문서
https://www.npmjs.com/package/next-sitemap