[Blog] 블로그 내 글 검색과 SEO
블로그 내 글 검색과 SEO 설정 방법 소개!
- 아래 그림의 Search 또는 돋보기 클릭 -> “내 글 검색”
내 글 검색
2가지 방법을 소개한다.
1. Search 추가
상단 네비게이션바를 커스텀하여 “Search” 로 등록하는 방법
# navigation.yml
main:
- title: "Home"
url: /
- title: "Category"
url: /categories/
- title: "Search"
url: /search/
# _config.yml 주석 해제 잘 확인
category_archive:
type: liquid
path: /categories/
tag_archive:
type: liquid
path: /tags/
# https://github.com/jekyll/jekyll-archives
jekyll-archives:
enabled:
- categories
- tags
layouts:
category: archive-taxonomy
tag: archive-taxonomy
permalinks:
category: /categories/:name/
tag: /tags/:name/
# _pages 하위에 search.md 이름으로 파일 생성하여 아래 코드 작성
---
title: Search
layout: search
permalink: /search/
---
2. 돋보기 추가
_config.yml
설정 파일 수정으로 끝내는 방법 -> lunr 사용
search : true # true, false (default)
search_full_content : true # true, false (default) -> 본문 내용까지 확인
search_provider : # lunr (default), algolia, google
SEO(=Search Engine Optimization)
SEO는 검색 엔진에서 게시글이 상위에 노출될 수 있도록 사이트를 최적화하는 방법
예를 들어 Google Search
는 “크롤링, 색인 생성, 검색결과 게재” 3단계로 이루어진다.
-
크롤링 : Google의 웹 크롤러는 인터넷에서 찾은 페이지로부터 텍스트, 이미지, 동영상을 다운로드
- 이때,
sitemap
을 통해서도 페이지를 찾을 수 있다.
- 이때,
-
색인 생성 : 크롤링 한 후 페이지의 내용을 이해하기 위해 색인을 생성하여 대규모 데이터베이스인 Google 색인에 저장
- 색인 생성은 페이지의 콘텐츠와 메타데이터에 따라 다르다.
-
검색결과 게재 : 사용자가 검색하면 관련성 높은 페이지를 색인에서 찾아 반환
- 위치, 언어 등 여러 정보를 추가로 고려해 결정한다.
SEO 방법
위에서 검색에 관한 전반적인 개념을 이해했다면, 이제는 이 검색에 어떻게 등록과 최적화를 하는가?
가장 기본인 “Sitemap, RSS, robots.txt” 를 소개하겠다.
- 사이트맵(Sitemap) 이란 웹 사이트의 페이지 구조를 검색 엔진에 알려주는 XML 형식의 파일이 대표적이다.
- RSS(Really Simple Syndication) 이란 웹 사이트의 콘텐츠 자동 공유로 feed.xml 형식의 파일이 대표적이다.
-
robot.txt 를 읽어서 웹 크롤러가 정보 수집하기 전에 접근해도 되는지 정책을 먼저 이해한다
- 접근해도 된다면,
sitemap.xml
을 체크한다.
- 접근해도 된다면,
따라서 Google, Naver 에 sitemap.xml, feed.xml, robot.txt 를 등록하면 해당 사이트에서 검색할 수 있게 된다.
자세한것은 다음 링크를 참고하자. Google, Naver 등록 과정
참고로 RSS 는 위 링크에 정리되지 않았는데 이건 여기서 설명하겠다.
번외) RSS 방법
feed.xml 을 아래 코드로 만들어서 sitemap.xml 을 두는 위치(root)에 같이 두면 서버에서 할 일은 끝이다.
---
layout: null
---
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
{% assign feed_path = "/feed.xml" %} <!-- 피드경로 명시 -->
<channel>
<title> {{ site.title | xml_escape }} </title>
<description>{{ site.description | xml_escape }}</description>
<link>{{ site.url }}{{ site.baseurl }}/</link>
<atom:link href="{{ feed_path | prepend: site.baseurl | prepend: site.url }}" rel="self" type="application/rss+xml"/>
<pubDate>{{ site.time | date_to_rfc822 }}</pubDate>
<lastBuildDate>{{ site.time | date_to_rfc822 }}</lastBuildDate>
<generator>Jekyll v{{ jekyll.version }}</generator>
{% for post in site.posts limit:10 %}
<item>
<title>{{ post.title | xml_escape }}</title>
<description>{{ post.content | xml_escape }}</description>
<pubDate>{{ post.date | date_to_rfc822 }}</pubDate>
<link>{{ post.url | prepend: site.baseurl | prepend: site.url }}</link>
<guid isPermaLink="true">{{ post.url | prepend: site.baseurl | prepend: site.url }}</guid>
{% for tag in post.tags %}
<category>{{ tag | xml_escape }}</category>
{% endfor %}
{% for cat in post.categories %}
<category>{{ cat | xml_escape }}</category>
{% endfor %}
</item>
{% endfor %}
</channel>
</rss>
추가로 Google 의 경우 sitemap 추가했던 것처럼 feed 도 추가하면 된다. (아래 그림 참고)
- Naver 도 마찬가지이다.
- 즉, 어느 사이트든 검색 엔진은 이런 흐름으로 동작한다. 따라서 서버단에
robot.txt, feed.xml, sitemap.xml
은 한 번만 만들고 각 검색 사이트(ex: google,naver)마다 따로 등록만 하면 된다.
댓글남기기