사이트맵은 웹사이트 내의 페이지, 비디오, 문서 등 모든 파일과 그 관계를 나열하는 XML 파일입니다. 이는 Google과 같은 검색 엔진에 어떤 페이지를 색인화해야 하는지, 그리고 언제 마지막으로 업데이트되었는지 알려줍니다. 특히 신규 웹사이트는 외부 링크가 부족하여 검색 엔진 크롤러가 페이지를 발견하는 데 시간이 오래 걸릴 수 있으므로, 사이트맵은 필수적입니다. 이 글에서는 Rails에서 사이트맵을 직접 구축하는 구체적인 방법을 제시합니다.
첫째, /sitemap.xml
엔드포인트를 위한 라우트 설정이 필요합니다.
ruby
get "sitemap", to: "sitemap#index", defaults: { format: "xml" }
둘째, SitemapController
를 생성하여 사이트맵 데이터를 처리합니다. 이 컨트롤러는 게시물, 페이지, 태그 등의 동적 콘텐츠와 홈, 블로그, 추천글 등의 정적 페이지 데이터를 포함하며, 1시간 동안 캐시되어 성능을 최적화합니다. static_pages_data
헬퍼 메서드를 통해 정적 페이지의 URL, 최종 수정일, 변경 빈도, 우선순위 등을 정의합니다.
셋째, XML 뷰 템플릿(sitemap/index.xml.erb
또는 유사한 파일)을 통해 최종 사이트맵 XML 파일을 생성합니다. 이 템플릿은 xml.urlset
태그 내에 각 페이지의 loc
(URL), lastmod
(최종 수정일), changefreq
(변경 빈도), priority
(우선순위)를 포함하는 xml.url
블록을 반복하여 동적으로 생성합니다. 정적 페이지, 동적 페이지, 게시물, 태그 페이지 등 웹사이트의 모든 중요한 URL이 포함되도록 구성됩니다.
사이트맵 생성이 완료되면, Google Search Console을 통해 이를 Google에 제출해야 합니다. Google Search Console(Google Analytics와는 다름)에 웹사이트를 등록하고 소유권을 확인한 후, ‘사이트맵’ 섹션에서 생성된 /sitemap.xml
URL을 제출합니다. 이 과정은 Google이 웹사이트의 모든 링크를 크롤링하고 색인화하는 데 필요한 추가 메타데이터를 제공하여 검색 가시성을 크게 향상시킵니다. 또한, 새로운 게시물이나 페이지를 발행할 때마다 Google Search Console의 ‘URL 검사’ 기능을 통해 해당 URL을 입력하고 ‘색인 생성 요청’을 하면 Google이 즉시 해당 페이지를 크롤링 목록에 추가하도록 유도하여 검색 노출 시간을 단축할 수 있습니다.