최근 회사 홈페이지 리뉴얼 작업을 들어갔다.
회사 홈페이지는 결국 회사를 홍보하기 위한 사이트이기 때문에 얼마나 노출 시킬 수 있느냐가 중요했다.
따라서, 홈페이지 방문자와 트래픽을 더 늘리기 위해 검색엔진 최적화(SEO: Search Engine Optimization) 가 필요했고 이를 위한 방법 중 하나로 기존에는 없었던 사이트맵을 생성해 보기로 했다!!
✋🏻 여기서 잠깐, SEO란 ?
키워드 검색으로 인한 결과나 랭킹을 결정하는 것이 "크롤봇" 인데, 이 크롤봇의 알고리즘에 의해 검색이 잘 되도록 설정해주는 것이 검색엔진 최적화이다.
즉, 크롤봇 눈에 잘 띄도록 하는 것이라고 이해하면 쉽다!
사이트에 있는 페이지, 동영상 및 기타 파일과 그 관계에 관한 정보를 제공하는 것을 말한다. 크롤봇에게 페이지 구성 및 기타 파일의 관계를 알려줌으로써 일반적은 크롤링 과정에서 발견되지 않는 웹페이지를 모두 크롤링할 수 있게 도와주는 녀석이다.
크롤봇에게 페이지의 구조를 알려주는 것만으로도 비교적 많은 콘텐츠를 담은 페이지를 상위 랭크에 올려 방문을 유도할 수 있게 한다고 한다!
이 사이트맵을 만들기 위해서는 두가지 파일을 만들어야 한다. 바로 Sitemap.xml
과 Robot.txt
이다! 이 두 파일이 무엇이고 어떻게 만들어야 하는지 알아보자!
Sitemap.xml
파일은 검색 엔진 크롤링 로봇에게 웹 사이트에서 크롤링 해야 할 URL 을 전달한다.<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.example.com/</loc>
<lastmod>2005-01-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
</urlset>
🔎 기본 형식 XML태그 정의
<urlset>
필수 / 파일을 캡슐화하고 현재 프로토콜 표준을 참조<url>
필수 / 각 URL 항목의 상위 태그. 나머지 태그는 이 태그의 하위 태그<loc>
필수 / 페이지의 URL. 해당 URL은 http 같은 프로토콜로 시작해야 하며 웹서버에 따라 슬래시로 끝남<lastmod>
옵션 / 파일을 마지막으로 수정한 날짜 YYYY-MM-DD 형식<changefreq>
옵션 / 페이지가 변경되는 빈도 (always, hourly, daily, weekly, monthly, yearly, never)<priority>
옵션 / 해당 사이트의 기타 URL에 대한 특정 URL의 상대적 우선순위. 유효값 범위는 0.0-1.0 (페이지의 기본 우선순위는 0.5)
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>http://www.example.com/sitemap1.xml.gz</loc>
<lastmod>2004-10-01T18:23:17+00:00</lastmod>
</sitemap>
<sitemap>
<loc>http://www.example.com/sitemap2.xml.gz</loc>
<lastmod>2005-01-01</lastmod>
</sitemap>
</sitemapindex>
🔎 그룹 형식 XML태그 정의
sitemapindex
필수 / 파일에 있는 모든 sitemap에 대한 정보를 포함sitemap
필수 / 개별 sitemap에 대한 정보를 포함loc
필수 / sitemap의 위치를 식별lastmod
옵션 / 해당 sitemap 파일이 수정된 시간을 식별
❓ 만약 robots.txt파일을 설정하지 않는다면?
구글, 네이버 등의 각종 검색엔진봇들이 웹 사이트에서 찾을 수 있는 모든 정보를 크롤링하여 검색엔진 결과에 노출시킨다.
따라서, 웹 사이트 내부의 특정 페이지를 검색엔진에 노출시키지 않고자 할 때robots.txt
를 설정한다.
// 일반적인 사용 예시
User-agent: *
Allow: /wp-admin/admin-ajax.php
Disallow: /wp-admin/
Disallow: /user-profile/
Disallow: /scripts/
// 모든 정보를 차단하는 예시
User-agent: *
Disallow: /
// 사이트 맵의 위치를 알리즌 설정 예시
User-agent: *
Disallow:
Sitemap: http://www.ascentkorea.com/sitemap.xml
User-agent
*
는 전체를 허용한다는 의미)Disallow
Allow
robots.txt
파일은 모든 사람이 접근할 수 있기 때문에 보안의 수단으로 사용해선 안된다.robots.txt
내용을 반드시 따르는 것은 아니란 것을 기억해야한다.아직 사이트맵이라는 것이 낯설지만 그래도 이 녀석이 어떤 역할을 하는 앤지 감이 많이 잡힌것 같다. 이제는 단순히 서비스를 만드는 것에서 끝나는 것이 아니라 그 이후에 어떻게 운영을 해나가고 어떻게 소비자에게 더 많이 노출 시킬 수 있는지 등 성능개선에 대한 점도 고려해 나가야 겠다는 생각이 들었다!
와... 확실히 제법이네요....