프론트엔드 개발자를 위한 SEO 가이드
프론트엔드 개발자를 위한 SEO 가이드
프론트엔드 개발자를 위한 SEO 가이드 도서 표지
📍 검색 엔진 최적화란?
▪ 검색 엔진(Search Engine)
정보를 검색할 수 있도록 도와주는 프로그램
검색엔진 구성 단계
크롤링(Crawling)
- 웹에서 페이지를 수집한 뒤 인덱스(색인)를 생성하는 자동 소프트웨어로, 로봇(Robot) 또는 스파이더(Spider)라고 알려져 있다.
- 웹 상에 존재하는 정보를 탐색하고 수집하는 것
- 사용자가 키워드를 검색하면 검색 엔진은 미리 생성된 페이지를 활용하여 결과를 제공
인덱싱(Indexing)
- 검색어와 연관된 웹 페이지 정보를 담은 데이터 베이스로, 각 웹 페이지의 키워드, 제목, 본문 내용, 이미지 등의 다양한 정보가 포함된다.
- 검색 엔진에서 수집한 정보를 분류하여 검색 결과를 빠르게 제공할 수 있는 형태로 가공하는 과정
검색 알고리즘(Search Algorithm)
- 인덱싱된 데이터를 기반으로 검색어와 관련된 페이지를 찾아주는 역할
- 크롤링 및 인덱싱을 통해 수집한 웹페이지 정보의 내용, 중요도, 신뢰성 등을 고려하여 가장 관련성 높은 검색 결과를 생성한다.
📍 Page Rank 알고리즘
웹 페이지의 링크 구조를 분석하여 해당 페이지의 상대적인 중요도를 평가하는 알고리즘
구글(Google) 창시자인 래리 페이지(Larry Page)와 세르게이 브린(Sergey Brin)에 의해 개발
▪ 검색 엔진 최적화(SEO, Search Engine Optimization)
- 웹 페이지에서 상위 노출하여 자연 유입 트래픽을 늘리고 검색어와 관련된 콘텐츠를 포함하도록 웹 사이트를 최적화하는 작업
- SEO는 크게 내부 SEO와 외부 SEO로 나눌 수 있다.
- 내부 SEO(On-Page SEO)
- 콘텐츠의 품질과 구조를 최적화
- 웹 사이트 자체적으로 수행할 수 있는 최적화 작업으로 웹 사이트 구조, 이미지 최적화, 메타 태그 등을 최적화하여 검색 엔진이 이해하기 쉽게 만드는 작업
- 외부 SEO(Off-Page SEO)
- 다른 웹 사이트에서의 언급이나 백링크를 통해 웹 페이지의 인기도와 신뢰성 향상
- 백링크 구축 같은 다른 웹 사이트들이 해당 웹 사이트를 얼마나 링크하고 있는지 등의 외부적인 요인에 대한 최적화 작업
- 내부 SEO(On-Page SEO)
▪ 다양한 SEO 전략
- 내부 SEO(On-Page SEO)
- 키워드 최적화
- 웹 페이지에 관련성 높은 키워드를 페이지의 제목, 메타 태그, 본문 등에 적절히 사용
- 콘텐츠 최적화
- 콘텐츠는 웹 페이지의 주제와 관련 있어야 하고, 구조와 문법이 명확해야 한다.
- 메타 태그 최적화
- 웹 페이지의 요약 정보를 제공하는 태그
- 메타 디스크립션 태그를 최적화 해야 한다.
- URL 구조
- 직관적 URL사용
- 내부 링크(Internal link) 구축
- 관련된 콘텐츠 간에 내부 링크 구성
- 사용자 경험 향상과 검색 엔진의 페이지 연결성 파악에 도움
- 이미지 최적화
- 이미지에 대한 적절한 설명과 대체 텍스트 제공
- 모바일 최적화
- 모바일 사용자를 고려한 웹 페이지 최적화
- 페이지 속도 최적화
- 페이지의 로딩 속도 개선을 통한 사용자 경험 향상
- 키워드 최적화
- 외부 SEO(Off-Page SEO)
- 외부 링크(Backlinkg, Inbound link)
- 외부 링크를 통한 웹 사이트의 신뢰성, 주제 관련성 및 권위 향상
- 가능하다면, 도메인 권위(Domain Authority, DA)가 높은 사이트에서 링크받기
- 도메인 권위 : 백링크, 콘텐츠 품질, 웹 사이트 운영 히스토리 등 다양한 요소를 종합적으로 고려하여 예상되는 상위 랭킹을 점수화한 것
- 가능하다면, 도메인 권위(Domain Authority, DA)가 높은 사이트에서 링크받기
- 외부 링크를 통한 웹 사이트의 신뢰성, 주제 관련성 및 권위 향상
- 소셜 신호(Social signals)
- 웹 페이지의 인기도와 가시성 향상을 위한 소셜 미디어 플랫폼에서의 활동과 공유
- 리뷰(Reviews)
- 긍정적인 온라인 평판을 통한 검색 엔진의 신뢰성 강화
- 게스트 포스트(Guest post)
- 신뢰성과 권위가 높은 다른 웹 사이트에 자신의 글을 게시하는 행위
- 글 중간에 자신의 웹 사이트로 연결되는 백링크 추가하기
- 로컬(Local SEO)
- 특정 지역 또는 지역적인 타깃을 가지고 있는 비즈니스나 웹 사이트의 검색 엔진 최적화
- 외부 링크(Backlinkg, Inbound link)
📍 웹 사이트 구조 최적화
▪ 웹 사이트 계층 구조 설계
- 웹 사이트 구조 최적화 이유
- 크롤러(Crawler)의 효율적인 탐색
- 계층 구조가 명확하다면 크롤러는 핵심 페이지와 콘텐츠를 더 쉽고 효율적으로 탐색하고 인덱싱할 수 있다.
- 키워드 및 콘텐츠 그룹화
- 구조화된 콘텐츠는 검색 엔진이 사용자의 검색 엔진이 사용자의 검색 쿼리와 일치하는 결과를 제공하는 데 도움
- 상위 계층은 더 일반적인 키워드와 콘텐츠 적용
- 하위 계층은 보다 구체적이고 세부적인 키워드와 콘텐츠 적용
- 구조화된 콘텐츠는 검색 엔진이 사용자의 검색 엔진이 사용자의 검색 쿼리와 일치하는 결과를 제공하는 데 도움
- 사용자 경험 및 탐색 용이성
- 계층 구조가 명확하면 사용자들은 웹 사이트 내에서 원하는 콘텐츠에 더 쉽게 접근 가능
- 사용자의 만족도를 높이고 웹 사이트의 페이지 뷰 및 체류 시간을 증가시킬 수 있다.
- 크롤러(Crawler)의 효율적인 탐색
- 계층 구조로 설계하기
- 설계 시 유의사항
- 플랫(Flat) 페이지 구조 피하기
- 모든 페이지가 동일한 계층에 위치한다면 계층성이 부족한 구조를 의미한다.
- 너무 깊은 계층 구조 피하기
- 계층 구조가 깊다면 검색 엔진이 페이지의 중요성을 인식하기 어렵다.
- 내비게이션(Navigation) 메뉴 생성
- 내비게이션 메뉴는 웹 사이트의 주요 카테고리와 하위 항목을 표시하는 메뉴
- 검색 엔진이 웹 사이트의 구조와 콘텐츠의 중요도를 이해할 수 있게 한다.
- 명확하고 의미 있는 URL 구조
- 계층 구조를 URL에 반영하여 명확하고 의미 있는 구조를 생성해야 한다.
- www.example.com/category/subcategory/page
- 내부 링크 구성
- 주요 섹션과 하위 섹션 간에 내부 링크를 추가하여 사용자가 웹 사이트 내에서 자유롭게 이동하도록 한다.
- 사이트맵 생성
- 검색 엔진은 사이트맵을 활용하여 웹 사이트의 구조와 페이지를 빠르게 인덱싱할 수 있다.
- 플랫(Flat) 페이지 구조 피하기
- 계층 구조 예시
- 홈 페이지(Home Page)
- 웹 사이트의 가장 상위 계층
- 주로 기업 또는 조직의 로고, 주요 내용, 탐색 메뉴 등을 포함
- 메뉴(Menu)
- 웹 사이트의 주요 부분
- 웹 사이트 내에서 이동할 수 있는 다른 페이지로 연결하는 링크의 집합
- 일반적으로 상단이나 측면에 위치하며 주요 카테고리 또는 섹션으로 구성
- 카테고리(Category)
- 웹 사이트 내에서 주제 또는 관련된 콘텐츠를 그룹화
- 하위 카테고리(Subcategory)
- 카테고리 내에서 세부 주제 또는 하위 그룹
- 콘텐츠 페이지(Content Page)
- 실제 콘텐츠가 포함된 페이지
- 각 콘텐츠 페이지는 고유한 URL을 가지며, 검색 엔진에서 독립적으로 인덱싱될수 있다.
- 하위 페이지(Sub Page)
- 메인 콘텐츠 페이지와 관련된 보조 페이지
- 사용자가 웹 사이트 내의 특정 콘텐츠에 직접 접근할 수 있도록 해준다.
- 홈 페이지(Home Page)
- 설계 시 유의사항
▪ 내부 링크(Internal link) 구조 최적화
- 내부 링크
- 웹 사이트 내부 페이지 간 이동을 위한 링크
- 내부 링크 구조
- 웹 사이트 내의 내부 링크의 배치와 링크 연결 방식
- 내부 링크 유형
- 내부 링크의 배치 방식과 목적에 따라 나뉜다.
- 메뉴/내비게이션(menu/navigation) 유형
- 웹 사이트 상단에 위치한 내비게이션
- 일반적으로 로고와 함께 배치
- 푸터(footer) 유형
- 웹 사이트 하단에 위치한 내비게이션
- 일반적으로 웹 사이트 정보나 저작권 정보 포함
- 인 텍스트(in-text) 유형
- 링크에 들어가는 텍스트가 해당 문장의 내용과 밀접한 연관이 있어 링크 관련성과 사용자 편리성을 높이는 역학
- 사이드바(sidebar) 유형
- 왼쪽 혹은 오른쪽 섹션을 활용
- 메뉴/내비게이션(menu/navigation) 유형
- 내부 링크의 배치 방식과 목적에 따라 나뉜다.
- 내부 링크 계층적 구조로 작성하기
- 내부 링크 계층적 구조
- 상위 페이지에서 하위 페이지로 편리하게 이동하기 위해 설계한 내부 링크 구조 방식
- 기둥 페이지(Pillar Pages)
- 넓은 주제를 다루고 핵심적인 정보를 제공하는 중심 페이지
- 홈페이지 및 메뉴, 카테고리
- 토픽 클러스터(Topic Clusters)
- 기둥 페이지와 관련된 세부 주제
- 기둥 페이지와 밀접한 연관성, 기둥 페이지와의 내부 링크로 연결
- 특정 주제에 대한 정보 제공
- 관련된 하위 주제를 다루는 페이지들과 연결
- 하위 카테고리 페이지
- 하위 주제 페이지(Subtopic Pages)
- 각 세부 주제를 다루는 페이지
- 특정 주제의 세부 정보를 제공
- 관련성을 갖는 토픽 클러스터 페이지와 내부 링크를 가진다.
- 기둥 페이지(Pillar Pages)
- 상위 페이지에서 하위 페이지로 편리하게 이동하기 위해 설계한 내부 링크 구조 방식
- 내부 링크 계층적 구조
- 의미 있는 앵커 텍스트(Anchor Text)
- 링크의 텍스트 부분
- 링크가 어떤 페이지로 이동하는지 설명하는 역할
- 효과적인 의미 있는 앵커 텍스트 작성 방법
- 관련 키워드 사용
- 링크된 페이지의 주요 키워드나 관련된 키워드를 사용하자
- 중복 사용 피하기
- 동일한 페이지에 대해 동일한 앵커 텍스트를 반복 사용하는 것은 피하자
- A/B 테스트 및 분석
- A/B 테스트는 마케팅과 웹 분석에서 주로 사용하며 A 상황과 B 상황을 비교하는 테스트
- 관련 키워드 사용
- 내부 링크와 SEO
- 검색 엔진 크롤러의 쉬운 탐색
- 페이지 간의 연결 강화
▪ URL 구조 최적화
- 계층 구조를 반영한 URL 구조는 검색 엔진이 웹 사이트의 구조와 내용을 이해하고 인덱싱하는 데 도움
- URL 설계 가이드라인
- 의미 있는 디렉토리(Directory) 구조 설계
- 유사한 주제나 카테고리의 콘텐츠는 동일한 디렉토리에 위치
- 디렉토리 이름은 콘텐츠의 내용과 관련된 이름
- URL 키워드 최적화
- URL에 포함된 키워드는 검색 엔진에게 웹 페이지의 내용을 알려주는 역할
- 키워드는 관련성과 일관성 유지
- 너무 많은 키워드 사용은 스팸으로 간주
- 간결하고 읽기 쉬운 URL 구성
- 표준에 따라 작성
- 소문자 사용, 단어 사이에 하이픈(-) 사용, 인코딩 등의 규칙 준수
- 단순하고 일관된 구조
- 여러 매개변수를 가지는 동적 URL 대신 정적 URL을 사용하거나 친숙한 디렉토리 구조 선택
- URL 리디렉션(Redirection) 관리
- URL을 변경해야 할 경우, 이전 URL을 새 URL로 리디렉션하는 ‘301 리디렉션’ 사용
- URL 구조 변경 시, 사이트맵 함께 수정
- 캐시 가능한 URL 사용
- 의미 있는 디렉토리(Directory) 구조 설계
- URL 구조와 검색 엔진 최적화
- URL의 구조는 검색 엔진이 콘텐츠를 이해하고 인덱싱하는 데 영향을 미친다.
- 계층 구조와URL에 포함된 키워드는 검색 엔진에게 웹 페이지의 테마와 관련성을 알려준다.
- 도메인
- 경로
▪ 사이트맵(Sitemap)
- 모든 페이지를 계층화한 XML 파일이나 페이지의 목록
- 사이트맵 작성 이유
- 검색 엔진은 웹 사이트를 크롤링할 때, XML 파일을 통해 웹 사이트의 구조를 이해하고 해당 웹 사이트를 검색 결과에서 상위에 노출할지 결정
- 검색 엔진 색인 용이
- 신규 페이지 추가, 기존 페이지 업데이트 시 사이트맵 이용하면 변경 사항 빠르게 반영됨
- 페이지 강조
<priority>
태그를 이용해서 해당 페이지의 우선순위를 높이거나<changefreq>
의 값으로 ‘always’나 ‘daily’를 넣어 변경 빈도를 높일 수 있다.
- 사용자 편의성 제공
- 웹 사이트의 구조를 시각적으로 표시
- 검색 엔진 색인 용이
- 검색 엔진은 웹 사이트를 크롤링할 때, XML 파일을 통해 웹 사이트의 구조를 이해하고 해당 웹 사이트를 검색 결과에서 상위에 노출할지 결정
- 사이트맵 생성 방법
- 자동 생성
- Google Search Console
- XML Sitemap Generator
- Screaming Frog
- Yoast SEO 플러그인
- 수동 생성
- 파일명 : sitemap.xml
- 유효한 XML 형식 유지
- 파일 크기 50MB이하
- 올바른 네임스페이스와 스키마 정보 지정
- 루트 디렉토리에 업로드
- 자동 생성
- 사이트맵 내용
<urlset>
- 모든 URL 감싸는 요소
- XML 네임스페이스 및 스키마 정보 포함
<url>
- 각 URL 항목의 부모 태그
<loc>
- URL 명시하는 요소
- 프로토콜(예: http)로 시작해서 슬래시(’/’)로 끝
- 전체 값 2,048자 미만
<lastmod>
- 페이지를 마지막으로 수정한 날짜
- Datetime 형식
- 시간 부분을 제외한 YYYY-MM-DD 형식
<changefreq>
- 얼마나 자주 변경될지 예상 빈도
- always, hourly, daily, weekly, monthly, yearly, never
<priority>
- 중요 페이지에 대한 우선 순위
- 기본 값 : 0/5
- 유효 값 : 0.0 ~ 1.0
▪ 로봇 파일(Robots.txt)
- 검색 엔진 로봇 또는 크롤러에 웹 사이트의 접근 권한과 제약 사항을 알려주는 파일
- 루트 디렉토리에 위치
- 로봇 배제 표준에 따라 작성
- 로봇 배제 표준 : 웹 사이트 소유자가 엔진 로봇이 웹 페이지에 액세스하거나 크롤링하는 것을 제어하기 위한 규약
- 로봇 파일의 중요성
- 검색 엔진이 크롤링해야 할 페이지와 그렇지 않은 페이지 구분하여 검색 결과에 포함시키거나 제외할 수 있다.
- 크롤링 속도 향상
- 검색 엔진 최적화
- 검색 엔진 가이드 준수
- 로봇 파일 생성 방법
- 파일 명 : robots.txt
- 단 하나의 파일만 존재
- 루트 디렉토리에 업로드
- 해당 프로토콜, 호스트, 포트 내의 경로에만 적용
- UTF-8으로 인코딩된 텍스트 파일
- 로봇 파일 작성 방법
- 폴더명 맨 끝에 슬래시(’/’)를 꼭 붙인다.
- User-agent[필수, 그룹 당 하나 이상]
- 검색 엔진 로봇의 이름 명시
- Disallow[규칙 당 하나 이상 필요]
- 수집 여부 명시(disallow/allow)
- Allow[규칙 당 하나 이상 필요]
- 특정 경로 수집 허용(disallow/allow)
- Sitemap[선택 사항]
- sitemap.xml 파일의 위치 지정
- 로봇 파일 검증 도구
- Google Search COnsole 내의 Robots.txt Tester
- Bing Webmaster ToolsW3C Link Checker
- W3C Link Checker
📍 웹 사이트 성능 최적화
▪ 웹 페이지 로딩 속도
- 사용자가 URL을 클릭하여 웹 페이지에 접속한 시점부터 페이지 화면이 모두 로딩될 때까지의 시간
- 웹 페이지 로딩 속도 개선 방법
- 적절한 폰트 적용 방식 사용
- 서버 폰트
- 브라우저에서 폰트 파일 다운로드
- 개인/회사의 서버에 호스팅하여 사용
- 로컬 폰트
- 컴퓨터나 기기에 미리 설치된 폰트 사용
- 폰트 다운로드, 서버 호스팅하지 않고 즉시 사용
- CDN(Content Delivery Network) 폰트
- CDN 서버의 폰트 파일 사용
- 폰트 다운로드, 서버 호스팅하지 않고 즉시 사용
- 서버 폰트
- HTML, CSS, JS 코드 최적화
- JS 하단 배치
- HTML, CSS, JS 코드 최소화(Minify)
- 속도에 최적화된 서버 구축
- 로드 밸런싱
- 호스팅 서비스 선택
- 적절한 폰트 적용 방식 사용
- 웹 페이지 로딩 속도 측정 방법
- 웹 페이지 로딩 속도 측정 사이트 이용
- PageSpeed Insights
- 개발자 도구를 통한 확인
- Network(네트워크) 탭 확인
- DOMContentLoaded
- 로드
- Network(네트워크) 탭 확인
- 웹 페이지 로딩 속도 측정 사이트 이용
▪ HTML 구조화
- HTML 구조화 시 사용되는 태그
- 시맨틱 태그(Semantic Tag)
- 의미론적인(Semantic) 태그
- 구체적이고 목적에 맞는 의미가 있다.
- 시맨틱 태그 목록
<header>
- 웹 페이지의 제목이나 로고
<nav>
- 웹 페이지의 내비게이션 역역
- 메뉴, 목차, 사이트 내부 링크 등
<main>
- 핵심 콘텐츠를 감싸는 태그
- 웹 페이지에서 한 번만 사용
<article>
- 독립적으로 읽을 수 있는 콘텐츠
- 뉴스 기사, 블로그 글, 잡지 기사 등
<section>
- 본문 내에서 비슷한 주제의 콘텐츠를 그룹으로 묶어서 구분 지을 때 사용하는 태그
<footer>
- HTML 문서의 하단 또는
<scetion>
의 하단 영역에 작성되는 태그 - 이용 약관, 개인정보 처리 방침, 페이지 작성자, 연락처 등의 보충 정보
- HTML 문서의 하단 또는
<h1>
~<h6>
- 헤딩 태그(Heading Tag)는 HTML 문서에서 각 콘텐츠의 제목을 표시
- 숫자가 작을수록 더 큰 제목
- 웹 페이지의 정보를 계층적으로 표현하기 위해 사용
<img>
- 이미지 삽입하는 데 사용하는 태그
- alt 속성에 대체 텍스트 필요
<a>
- HTML 문서에서 하이퍼링크를 생성하는 데 사용
- 내부 링크 생성
- 태그 작성 시 주의 사항
<header>, <main>, <footer>, <h1>
은 한 페이지에 하나만 사용<h1>
은<main>
에 있는<section>
에 사용<h1>
은 주로 페이지의 제목을 표현하기 때문
- 헤딩 태그 사용 시
<h1>
부터<h6>
까지 순차적으로 사용 - 콘텐츠를 외부와 구분하여 단독으로 묶는 경우
<article>
을 사용, 아닌 경우<section>
을 사용 <table>
을 레이아웃 짤 때 사용하지 않기
- HTML 문서 유효성 검사 사이트
- W3C Markup Validation
- 시맨틱 태그(Semantic Tag)
▪ 이미지 최적화
- 최적화 된 이미지 사용으로 로딩 속도를 개선할 수 있다.
- 이미지 사이즈 조절
- 사이트에 적용되는 이미지의 크기는 고유 크기와 사이트에 보여주기 위해 렌더링 된 크기가 다를 수 있다.
- 고유 크기와 렌더링 된 크기의 차이가 2배 이하인 경우가 적절하다.
- 이미지 포맷(format) 설정
- 디지털 이미지 파일을 저장하고 전송하기 위해 사용되는 파일 형식
- 이미지 포맷 유형
- JPEG
- 압축 방식 : 손실
- 애니메이션 : 미지원
- 투명도 : 미지원
- PNG
- 압축 방식 : 무손실
- 애니메이션 : 미지원
- 투명도 : 지원
- GIF
- 압축 방식 : 무손실
- 애니메이션 : 지원
- 투명도 : 미지원
- JPEG
- 무손실 압축 vs 손실 압축
- 무손실 압축
- 압축하면서 이미지 크기를 줄이고 원본 이미지의 품질을 유지하는 방식
- PNG, GIF
- 손실 압축
- 압축하면서 일부 이미지 정보를 버려 파일 크기를 줄이는 방식
- JPEG
- 무손실 압축
- 최대한 저용량으로 저장할 수 있는 이미지 포맷
- 이미지 포맷 형식에 따라 이미지 압축 용량이 다르다.
- 이미지의 파일 크기를 줄이고 이미지 품질을 유지하여 전송하는 것이 로딩 속도 향상에 도움
- JPEG 2000
- JPEG 포맷의 다음 버전
- JPEG보다 더욱 작은 용량
- 손실 압축과 무손실 압축 지원
- 투명 기능, 애니메이션 기능, 다양한 색상 지원
- CPU 시간과 계산 자원, 디코딩을 위한 CPU 시간과 메모리 자원, 이미지 렌더링을 위한 GPU 자원 필요
- Safari(5+)
- JPEG XR
- MS사 개발
- JPEG에 비해 더 많은 수의 색상 채널 당 채색을 허용
- JPEG보다 작은 용향
- 손실 압축과 무손실 압축 지원
- 투명 기능, 점진적 데이터 전송 기능 지원
- Edge(12-18), IE(9+)
- WebP(웹피)
- JPEG, PNG, GIF보다 25~35% 정도 더욱 작은 용량
- 손실 압축과 무손실 압축 지원
- 투명 기능, 애니메이션 기능 지원
- 세부 사항, 그라데이션 가진 투명한 이미지는 품질 저하 우려
- 점진적 데이터 전송 기능 없음.
- 사용자 네트워크 품질이 낮은 경우 WebP 사용은 유리하지 않을 수 있다.
- Chrome(9+), Firefox(65+), Safari(14+), Edge(18+), Opera(11.5+)
▪ 리디렉션(Redirection)
클라이언트의 요청을 받은 서버가 해당 요처을 다른 위치 또는 페이지로 자동으로 이동하는 과정
Javascript는 window.location을 사용
window.location.href = "http://새로운URL.com";
.href → 현재 웹 페이지를 새로운 URL로 리디렉션
window.location.pathname = "/새로운페이지이름.html";
.pathname → 현재 페이지를 다른 경로로 리디렉션
window.location.replace("http://새로운URL.com");
.replace → 현재 웹 페이지를 다른 도메인으로 리디렉션
리디렉션 작동 방식
- 리디렉션은 HTTP 프로토콜에서 상태 코드와 함께 이루어진다.
- 서버는 상태 코드와 함께 응답을 반환
리디렉션 유형
301 리디렉션
- 영구적 리디렉션
- 요청한 기존 URL이 새로운 URL로 영구적 이동
- 301 Moved Permanently
302 리디렉션
- 임시 리디렉션
- 기존 URL이 일시적으로 다른 URL로 이동
- 302 Found
303 리디렉션
- 기타 리디렉션
- POST 요청 후 발생하는 리디렉션 상황에서 사용하는 일시적인 리디렉션
- 303 See Other
307 리디렉션
- 임시 리디렉션 → HTTP/1.1에서 사용
- 요청 메서드에 대한 변경 없이 리디렉션 유지
- 307 Temporary Redirect
308 리디렉션
- 영구적 리디렉션 → HTTP/1.1에서 사용
- 클라이언트의 요청을 받은 서버가 영구적으로 다른 URL로 이동
- 308 Permanent Redirect
메타 리프레시(Meta Refresh)
HTML의 메타 태그를 사용하여 일정 시간이 지나면 자동으로 웹 페이지를 새로고침 하거나 새로운 페이지로 이동하는 기능
별도의 상태 코드 없음
SEO 측면에서 비추
<meta http-equiv="refresh" content="5;url=https://example.com">
SEO를 위한 리디렉션 사용법
- URL 구조 변경
- 오류 페이지 관리
- 사요자 경험 개선
- 중복 콘텐츠 처리
▪ 모바일 최적화
- 검색 엔진은 모든 신규 웹 사이트에 기본적으로 모바일 중심적으로 색인을 생성한다.
- 검색 엔진 권장 사항
- 반응형 웹 사이트
- 별도의 모바일 URL 제공(적응형)
- 구글 모바일 친화성 테스트
- Google Search Console
- 크롬 개발자 도구를 이용한 모바일 화면 테스트
- 크롬 개발자 도구에서 제공하는 Device Mode
📍 메타 태그 최적화
▪ 메타 태그(Meta Tag)
HTML의
<meta>
태그를 통해 해당 웹 페이지에 대한 정보를 검색 엔진에 전달하는 데이터메타 태그 종류
메타 디스크립션(Meta Description)
웹 페이지 내용을 요약한 설명을 제공하는 태그
<meta name="description" content="웹 페이지에 대한 설명" />
로봇 메타 태그(Robots Meta Tag)
웹 페이지에 대한 색인 여부(index or noindex), 크롤링 여부(follow or nofollow)를 제어하는 태그
기본 값 : index, follow
<meta name="robots" content="index, follow" />
뷰포트 메타 태그(Viewport Meta Tag)
모바일 기기에서 웹 페이지가 어떻게 보일지 설정하는 역할
content 속성 → 뷰포트 크기 정의
- 기본 값 : width=device-width, initial-scale=1.0
- width=device-width → 디바이스의 가로 너비를 뷰포트의 가로 너비로 사용
- initial-scale=1.0 → 최초 로딩 시 화면 배율 1로 설정
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
문자셋 메타 태그(Charset Meta Tag)
- HTML 문서의 문자 인코딩 방식을 정의하는 메타 태그
- HTML 문서는 UTF-8 문자 인코딩 방식 사용
타이틀 메타 태그(Title Meta Tag)
- 웹 페이지의 타이틀(제목)을 나타내는 태그
키워드 메타 태그(Keywords Meta Tag)
- 해당 웹 페이지와 관련된 중요한 키워드를 설정하는 태그
▪ 스니펫(Snippet)
- 검색 결과의 설명 또는 요약
- 메타 디스크립션(Meta Description)에서 작성한 내용 노출
- 네이버의 스니펫
- VIEW 스니펫(현재 사용하지 않는 것으로 확인)
- UGC(User Generated Contents)
- C-Rank(Context, Content, Chain, Creator)
- D.I.A(Deep Intent Analysis)
- 지식 스닛펫
- 네이버 자체 분석 알고리즘을 활용하여 방대한 웹 문서에서 사용자가 찾고자 하는 정보와 밀접하게 관련된 텍스트를 자동으로 추출해 제공하는 웹 검색 결과
- VIEW 스니펫(현재 사용하지 않는 것으로 확인)
- 구글의 스니펫
- 추천 스니펫
- 구글은 검색 결과를 표시할 때, 페이지로 연결되는 링크 앞쪽에 페이지를 설명하는 스니펫을 배치한다.
- 리치 스니펫(리치 결과)
- 페이지가 구저화된 데이터 마크업으로 작성되어 있고, 구글 리치 결과 가이드에 부합한다면 해당 카테고리에 맞는 형태로 화면이 노출된다.
- ex) 레시피, 채용정보, FAQ, HowTo 등
- 추천 스니펫
▪ 타이틀 태그(Title Tag)
- HTML 문서의 제목을 정의하는 태그
<title>
은 해당 웹 페이지의 주제를 알려주는 것이기 때문에 웹 페이지의 콘텐츠와 일치하는 적절한 키워드를 포함하여야 한다.
▪ 오픈 그래프(Open Graph)
- 웹 사이트가 소셜 미디어에 공유될 때 해당 페이지의 정보를 요약해서 보여준다.
- 오픈 그래프 구성 요소
- 기본 메타 데이터(Basic Metadata)
- og:title
- 웹 페이지의 제목을 나타내는 태그
- og:type
- 웹 페이지의 콘텐츠 유형을 지정하는 태그
- og:url
- 소셜 미디어에 웹 페이지를 공유할 때, 해당 페이지의 URL 정보를 제공하는 태그
- og:image
- 웹 페이지를 대표하는 이미지를 지정하는 태그
- og:description
- 웹 페이지의 콘텐츠를 설명하는 태그
- og:title
- 선택적 메타 데이터(Optional Metadata)
- og:determiner
- 웹 페이지 제목 앞에 나타나는 단어를 나타내는 태그
- og:site_name
- 소셜 미디어에 웹 페이지를 공유할 때, 해당 사이트의 이름을 나타내는 태그
- og:locale
- 웹 페이지의 언어와 지역 정보를 제공하는 태그
- og:locale:alternate
- 다른 지역에서 페이지를 볼 경우 사용될 대체 언어와 국가를 지정하는 태그
- og:audio
- 웹 페이지와 관련된 오디오 파일을 나타내는 태그
- og:video
- 웹 페이지와 관련된 비디오 파일을 나타내는 태그
- og:determiner
- 기본 메타 데이터(Basic Metadata)
▪ 트위터 카드(Twitter Card)
트위터 사용자가 트윗(Tweet)에 콘텐츠가 표시되는 방식을 최적화할 수 있는 기능
트위터 내에서 링크가 공유되면 해당 링크에 대한 추가적인 글과 이미지를 미리 볼 수 있다.
트위터 카드 유형
- 요약 카드(Summary Card)
- 웹 사이트의 제목과 설명, 대표 이미지, 트위터 핸들, URL 등의 정보 표시
- 일반적인 콘텐츠에 사욜기사나 블로그 게시물 및 기타 콘텐츠에 대한 링크를 공유하는 사용자와 기업에게 적합
- 큰 이미지가 포함된 카드(Summary Card with Large Image)
- 요약 카드와 유사하지만 최소 크기 280x150인 큰 이미지가 포함된 카드
- 제품 또는 서비스를 선보이는 사용자 및 기업에게 적합
- 앱 카드(App Card)
- 모바일 앱을 홍보하고자 하는 기업을 위해 설계된 것, 트위터에서 모바일 앱을 소개하고, 해당 앱을 다운로드하거나 설치할 수 있는 링크를 제공하는 카드
- 모바일 앱을 홍보하는 사용자나 기업에게 적합
- 플레이어 카드(Player Card)
- 소셜 미디어에서 동영상이나 오디오 등의 미디어 콘텐츠를 재생할 수 있는 카드
- 동영상을 공유하는 기업 또는 사용자에게 적합
- 요약 카드(Summary Card)
트위터 카드의 태그 작성 방법
메타 태그 작성
<meta property="twitter:card" content="summary" /> <meta property="twitter:site" content="@website username" /> <meta property="twitter:title" content="예시 제목" /> <meta property="twitter:description" content="예시 설명" /> <meta property="twitter:image" content="https://www.example.com/example.jpg" /> <meta property="twitter:url" content="https://www.example.com" />
트위터 카드 검증 사이트
- 트위터에서 제공하는 공식 도구
- 페이지의 메타 태그를 확인하고 트위터의 지침과 요구 사항을 준수하는지 확인
- 미리 보기 제공
트위터 카드의 구성 요소
- 제목(Title)
- 웹 페이지의 제목 또는 헤드라인
- 트위터 핸들(Twitter handle)
- 링크를 공유한 트위터 계정의 사용자 이름
- ‘@’로 시작하는 사용자 이름
- 설명(Description)
- 웹 페이지의 간략한 설명
- 이미지(Image)
- 웹 페이지와 관련된 이미지
- URL
- 트위터 카드와 관련된 URL
- 제목(Title)
▪ 캐노니컬 태그(Canonical Tag)
중복 콘텐츠 문제를 해결하고 검색 엔진 최적화를 개선하기 위해 사용되는 태그
캐노니컬 태그를 사용하여 대표 URL을 지정하여 중복 콘텐츠 문제를 해결해야 한다.
캐노니컬 태그 구현 방법
HTML 문서에서 ‘Canonical link element’라는 시맨틱 태그 사용
<link rel="canonical" href="표준 URL" />
HTTP 헤더 사용
- HTML 파일이 아닌 다른 파일과 같이 Google 검색에 지원되는 문서의 표준 URL을 나타내는 방법
- 구글에서는 서버를 구성할 수 있는 경우에 이 방법을 추천
HTTP/1.1 200 OK Content-Type: application/word Link: <주요 URL> rel="canonical" Content=Length: 5823
올바른 캐노니컬 태그 사용 방법
- 상대 경로가 아닌 절대 경로로 설정
- 상대 경로에는 프로토콜과 기기 정보가 없다.
- 절대 경로에는 프로토콜과 기기 정보가 있다.
- 한 페이지에 캐노니컬 태그를 두 개 이상 두지 않는다.
- 순환 참조(Circular reference)를 방지
- 상대 경로가 아닌 절대 경로로 설정