SEO에 대해 좀 더 깊게 공부해봐야겠다 싶어서 관련해서 구글 검색 센터의 공식 문서를 읽으며 정리해보려고 한다.
https://developers.google.com/search/docs/fundamentals/seo-starter-guide?hl=ko
검색엔진 최적화(SEO) 기본 가이드
검색엔진 최적화란? 검색엔진이 콘텐츠를 이해하고 제공하도록 돕는 것.
웹사이트의 일부를 손보기만 해도 검색엔진 최적화가 가능한 경우가 많다.
용어
- 색인 - 구글에서는 알고 있는 모든 웹페이지를 색인에 저장한다.
- 크롤링 - 신규 또는 업데이트된 웹페이지를 찾는 프로세스.
- 크롤러 - 웹에서 페이지를 크롤링한 다음 색인을 생성하는 자동 소프트웨어.
- Googlebot - 구글 크롤러의 일반적인 이름.
- SEO - 검색엔진 최적화. 즉, 검색엔진에서 찾기 쉽도록 사이트를 개선하는 프로세스. 검색엔진 최적화 작업을 하는 사람의 직책을 의미하기도 한다.
내 사이트가 구글 색인에 포함되어 있는지 확인
사이트의 홈 url을 site: 검색으로 확인. 결과가 표시되면 색인에 포함되어 있는 것이다.
사이트가 구글에 없는 경우?
구글 크롤러가 특정 사이트를 크롤링하지 못한다면 그 이유는 주로 다음과 같다.
- 사이트가 웹의 다른 사이트에서 잘 연결되지 않는다.
- 사이트가 개설된 지 얼마 되지 않아 구글이 아직 크롤링하지 못함.
- 사이트의 디자인때문에 구글이 사이트의 콘텐츠를 효과적으로 크롤링하기 어려움.
- 구글이 사이트를 크롤링하려는 중에 오류가 발생.
- 사이트 정책으로 인해 구글의 사이트 크롤링이 차단됨.
내 사이트가 구글에서 검색되도록 하려면?
구글은 웹 크롤러를 사용하는 완전히 자동화된 검색엔진이다. 웹 크롤러는 지속적으로 웹을 탐색하며 구글 색인에 추가할 사이트를 찾는다. 따라서 보통 웹에 사이트를 게시하는 것 외에는 별도의 작업이 필요하지 않다.
구글이 내 콘텐츠를 찾을 수 있도록 돕기
구글이 내 사이트를 발견할 수 있도록 하려면 사이트맵을 제출하는 것이 좋다.
사이트맵이란 사이트에 있는 파일로서 새 페이지나 변경된 페이지가 있을 때 이를 검색엔진에 알려준다.
구글에 크롤링하고 싶지 않는 페이지 알리기
민감하지 않은 정보라면 robots.txt를 사용해 원치 않는 크롤링을 차단하자
robots.txt 파일은 검색엔진이 사이트의 일부에 액세스하여 크롤링할 수 있는지를 알려준다. 해당 파일은 사이트의 루트 디렉터리에 있다. robots.txt에 의해 차단된 페이지가 계속 크롤링될 수 있으므로 민감한 페이지의 경우 더 안전한 방법을 사용해야 한다.
검색엔진의 검색결과에 표시되어도 유용하지 않을 수 있는 페이지인 경우 해당 페이지가 크롤링되지 않는 것이 좋을 수도 있다.
사이트에서 하위 도메인을 사용하며 특정 하위 도메인에서 일부 페이지가 크롤링되지 않게하려면 해당하는 하위 도메인에 별도로 사용할 robots.txt 파일을 만들어야 한다.
X 피해야 할 사항
- 내부 검색결과 페이지가 구글에 크롤링되도록 허용하는 경우, 사용자는 검색엔진의 검색 결과를 클릭했을 때 내 사이트에 표시된 다른 검색결과 페이지로 이어지는 것을 좋아하지 않는다.
- 프록시 서비스의 결과로 생성된 url이 크롤링되도록 허용하는 경우
민감한 정보에는 보다 안전한 방법을 사용하자
robots.txt는 잘 작동하는 크롤러에 크롤링 대상이 아닌 페이지를 알려주지만, 서버가 페이지를 요청하는 브라우저에 페이지를 게시하는 것을 막지는 않는다. 또한 로봇 배제 표준을 준수하거나 인정하지 않는 불량 검색엔진에서는 robots.txt의 지시를 따르지 않을 수도 있다. 호기심 많은 사용자가 robots.txt 파일에 있는 디렉터리 혹은 하위 디렉터리를 확인하고 내가 표시하지 않으려는 콘텐츠의 url을 추측할 수도 있다.
페이지가 구글에 표시되는 것은 원하지 않지만 링크를 알게 된 사용자가 페이지에 액세스하는 것은 상관없다면 noindex 태그를 사용하자. 실제로 보안을 강화하려면 사용자 비밀번호를 요구하거나 사이트에서 페이지를 완전히 삭제하는 등 적절한 승인 방법을 사용해야 한다.
구글 및 사용자가 내 콘텐츠를 이해할 수 있도록 돕기
구글이 사용자와 같은 방식으로 내 페이지를 인식하도록 하기
렌더링과 색인 생성을 최적화하려면 구글이 웹사이트에서 사용하는 자바스크립트, css, 이미지 파일에 항상 액세스할 수 있도록 허용해야 한다. 사이트의 robots.txt 파일이 이러한 asset을 크롤링하는 것을 허용하지 않으면 구글 알고리즘의 콘텐츠 렌더링 및 색인 생성 품질에 직접적으로 부정적인 영향을 주기 때문에 순위가 최적화되지 못할 수 있다.
권장 조치: URL 검사 도구를 사용. 구글이 콘텐츠를 보고 렌더링하는 방식을 정확하게 확인할 수 있고 사이트의 여러 색인 생성 문제를 파악하고 수정할 수 있다.
고유하고 정확한 페이지 제목 만들기
`<title>`요소는 사용자는 물론 검색엔진에 특정 페이지의 주제가 무엇인지 알려준다. html 문서의 head 요소 내에 title 요소를 놓고, 사이트의 각 페이지에 고유한 제목 텍스트를 만든다.
<html>
<head>
<title>Brandon's Baseball Cards - Buy Cards, Baseball News, Card Prices</title>
</head>
<body>
...
검색결과에 표시할 제목 링크와 스니펫 제어하기
문서가 검색결과 페이지에 표시될 때 title 요소의 내용이 검색결과의 제목 링크로 표시될 수 있다.
홈페이지의 title 요소에서는 웹사이트 또는 비즈니스의 이름을 명시할 수 있고, 비즈니스가 실제로 위치한 장소나 주로 다루는 항목, 주요 품목 등 중요한 정보를 포함할 수도 있다.
✔ 페이지의 콘텐츠 정확하게 설명하기
- 자연스럽게 읽히며 페이지 내용의 주제를 효과적으로 전달하는 제목 텍스트를 선택
X 피해야 할 사항
- title 요소에 페이지 내용과 관련없는 텍스트를 사용하는 경우
- '제목 없음'이나 '새 페이지1'과 같이 기본값 또는 불분명한 텍스트를 사용하는 경우
✔ 각 페이지에 고유한 title 요소 만들기
- 각 페이지의 title 요소에는 고유한 텍스트가 있어야 한다. 사이트에서 별도의 모바일 페이지를 사용하는 경우 모바일 버전의 title 요소에도 설명을 제공하는 텍스트 사용하기.
X 피해야 할 사항
- 사이트의 페이지 또는 여러 페이지의 모든 title 요소에 단일한 제목을 사용하는 경우
✔ 간단하지만 설명이 담긴 title 요소 사용하기
- title 요소는 짧지만 유익할 수 있다. title 텍스트가 너무 길거나 관련성이 낮다고 판단되면 구글에서 title 텍스트 중 일부만 표시하거나 검색 결과에 자동으로 생성된 제목 링크를 표시할 수 있다.
X 피해야 할 사항
- 사용자에게 도움이 되지 않는 title 요소에 매우 긴 텍스트 사용
- title 요소에 불필요한 키워드를 채운 경우
메타 설명 태그 사용하기
페이지의 메타 설명 태그는 구글 및 다른 검색엔진에 페이지 내용을 요약하여 제공한다.
메타 설명 태그는 한두문장 또는 짧은 단락 정도로 길어질 수 있다. 메타 설명 태그는 html 문서의 head 요소 내에 있다.
<html>
<head>
<title>Brandon's Baseball Cards - Buy Cards, Baseball News, Card Prices</title>
<meta name="description" content="Brandon's Baseball Cards provides a large selection of vintage and modern baseball cards for sale. We also offer daily baseball news and events.">
</head>
<body>
...
메타 설명 태그의 장점?
구글에서 메타 설명 태그를 구글 검색 결과에서 페이지의 스니펫으로 사용할 수 있다. (할 수 있다는 표현에 유의! 구글에서 페이지에 표시되는 텍스트 중 사용자의 검색어와 잘 어울리는 텍스트가 있는 경우 이를 선택할 수도 있기 때문이다.)
구글에서 스니펫으로 사용할 텍스트를 찾지 못하는 경우도 있기 때문에 메타 설명 태그를 각 페이지 추가하는 것은 언제나 좋은 습관이다.
✔ 페이지의 콘텐츠 정확하게 요약하기
- 검색결과에 스니펫으로 표시된 메타 설명 태그를 본 사용자에게 정보를 전달하고 사용자의 흥미를 유발할 수 있는 설명을 작성하기.
- description 메타 태그의 길이에는 최솟값이나 최댓값이 없지만 구글 검색에 완전히 표시될 정도로 길고, 사용자가 해당 페이지가 자신에게 유용하며 관련이 있는지 판단하는 데 필요한 모든 관련성 있는 정보를 담고 있는 것이 좋다.
X 피해야 할 사항
- 페이지 내용과 관련없는 메타 설명 태그를 작성하는 경우
- '이것은 웹페이지입니다' 또는 '야구 카드에 관한 페이지'와 같은 일반적인 설명
- 설명을 키워드로만 채우는 경우
- 메타 설명 태그에 문서의 전체 내용을 복사해 붙여넣는 경우
✔ 각 페이지마다 고유한 설명 사용하기
- 각 페이지에서 서로 다른 메타 설명 태그가 있으면 사용자와 구글 모두에게 유용. 특히 사용자가 내 도메인에서 여러 개의 페이지를 가져올 수 있는 검색에 도움이 된다.
- 수작업으로 메타 설명 태그를 만들기 힘들 경우 각 페이지의 콘텐츠를 기반으로 메타 설명 태그를 자동으로 생성할 수 있다.
X 피해야 할 사항
- 사이트의 모든 페이지 또는 여러 페이지에 단일한 메타 설명 태그를 사용하는 경우
표제 태그를 사용하여 중요한 텍스트 강조하기
(표제 태그는 h 태그를 의미한다.)
의미있는 표제를 사용해 중요한 주제를 표시하고 콘텐츠의 계층 구조를 만들어 사용자가 쉽게 문서를 탐색할 수 있도록 하자.
✔ 개요를 작성하고 있다고 상상하기
- 페이지 내용 중 중요한 부분과 덜 중요한 부분이 무엇인지 생각해보고 표제 태그를 어디에 사용하는 것이 적절할 지 결정
X 피해야 할 사항
- 페이지 구조를 정의하는 데 도움이 되지 않는 표제 태그에 텍스트를 배치
- em 및 strong과 같은 다른 태그를 사용하는 것이 더 적절할 수 잇는 경우에도 표제 태그를 사용
- 표제 태그 크기를 무질서하게 섞어 쓰는 경우
✔ 페이지에서 꼭 필요한 부분에만 표제 사용
- 표제 태그를 사용해 효과를 거둘 수 있는 경우에만 표제 태그를 사용.
- 페이지에 표제 태그가 너무 많으면 하나의 주제가 어디서 시작되어 어디에서 끝나는지 결정하기 어려워짐.
X 피해야 할 사항
- 한 페이지에서 표제 태그를 과도하게 사용하는 경우
- 표제가 너무 긴 경우
- 표제 태그를 텍스트의 스타일을 지정할 때만 사용하고 구조를 나타내는 데 활용하지 않는 경우
구조화된 데이터 마크업 추가하기
구조화된 데이터란 사이트 페이지에 추가할 수 있는 코드로, 검색엔진에 콘텐츠를 설명해주기 때문에 검색엔진이 페이지에 어떤 내용이 있는지 더 잘 이해할 수 있다. 이를 바탕으로 검색엔진은 유용하고 눈에 잘 띄는 방식으로 콘텐츠를 검색 결과에 표시할 수 있다.
구조화된 데이터 마크업을 통해 관련 검색 결과를 다른 형식으로 제공 가능하다.
✔ 리치 결과 테스트를 사용해 마크업을 확인하기
- 콘텐츠를 마크업할 때는 Google 리치 결과 테스트를 사용해 구현에 실수가 없는지 확인 가능.
X 피해야 할 사항
- 잘못된 마크업을 사용하는 경우
✔ 데이터 하이라이터 및 마크업 도우미 사용하기
- 사이트의 소스 코드를 변경하지 않고 구조화된 마크업을 사용해 보려는 경우, 콘텐츠 유형 하위 집합을 지원하며 서치 콘솔에 통합되어 있는 도구인 데이터 하이라이터를 사용하기.
X 피해야 할 사항
- 마크업 구현에 대해 확신이 없음에도 사이트의 소스 코드를 변경하는 경우
✔ 마크업된 페이지가 어떻게 작동하는지 추적하기
- 서치 콘솔의 다양한 리치 결과 보고서는 사이트에 특정 유형의 마크업이 포함된 페이지가 얼마나 많이 감지되었는지, 검색 결과에 페이지가 얼마나 많이 노출되었는지, 지난 90일 동안 사람들이 얼마나 많이 클릭했는지 보여줌. 또한 구글에서 발견한 오류도 표시.
X 피해야 할 사항
- 사용자에게 보이지 않는 마크업 데이터를 추가
- 가짜 리뷰를 작성하거나 관련 없는 마크업을 추가
'TIL' 카테고리의 다른 글
[TIL] 22.11.26 인터넷 네트워크, URI와 웹 브라우저의 요청 흐름 (0) | 2022.11.26 |
---|---|
[TIL] 22.11.22 SEO 기본 가이드(4) (0) | 2022.11.23 |
[TIL] 22.11.18 SEO 기본 가이드(3) (0) | 2022.11.18 |
[TIL] 22.11.16 SEO 기본 가이드(2) (0) | 2022.11.16 |
[TIL] 22.11.11 get vs post (0) | 2022.11.11 |