[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 검색 센터, Google SEO, Naver SEO

  • 크롤링 : 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)마다 따로 등록만 하면 된다.

RSS

댓글남기기