logo
SEO 포트폴리오

기술적(Technical) SEO 점검

2024-07-22 퍼스트페이지
image

검색 엔진 크롤링과 색인 최적화

검색 엔진 최적화에서 가장 중요한 단계 중 하나는 검색 엔진이 웹사이트를 원활하게 크롤링하고 색인하도록 최적화하는 것으로 크롤링이 원활하게 이루어지지 않으면 중요한 페이지가 노출되지 않을 가능성이 높아지기 때문에 이를 방지하기 위해 Robots.txt 설정과 사이트맵 제출을 올바르게 관리하는 것이 중요합니다.

Robots.txt 설정과 활용법

Robots.txt는 검색 엔진 크롤러에게 어떤 페이지를 크롤링할 수 있고 어떤 페이지를 크롤링하면 안되는지 알려주는 파일로 잘못된 설정을 할 경우 웹사이트의 중요한 페이지가 검색 결과에서 제외되는 문제가 생길 수 있습니다.

1. Robots.txt 파일의 기본 구조

User-agent: *
Disallow: /private/
Allow: /public/
Sitemap: https://example.com/sitemap.xml
                    
  • User-agent: 검색 엔진 크롤러 봇을 지정하고 *는 모든 크롤러를 의미하며, 특정 크롤러만 지정하고 싶다면 User-agent: Googlebot고 같이 작성할 수 있음
  • Disallow: 해당 경로에 대한 크롤링을 차단함
  • Allow: 차단된 디렉토리 내에서 특정 페이지의 크롤링을 허용
  • Sitemap: 사이트맵의 위치를 검색 엔진에게 인식 시킴

2. Robots.txt 파일 설정 예제

전체 웹사이트 크롤링 허용

User-agent: *
Disallow:
                    

모든 검색 엔진이 웹사이트를 자유롭게 크롤링할 수 있도록 합니다.

특정 디렉토리 차단

User-agent: *
Disallow: /admin/
Disallow: /private/
                    

Admin, private 디렉토리는 검색 엔진이 접근할 수 없도록 차단합니다.

특정 페이지 차단

User-agent: *
Disallow: /secret-page.html
                    

secret-page.html은 검색 결과에서 제외되게 됩니다.

특정 검색 엔진 크롤러 차단

User-agent: Googlebot
Disallow: /test-page/
                    

Googlebot만 /test-page/를 크롤링하지 못하도록 크롤러를 차단시킵니다.

3. Robots.txt 설정 시 주의할 점

  • 실수로 Disallow: /를 추가하게 되면 전체 웹사이트가 검색에서 제외될 수 있어 Disallow 설정을 신중하게 하는 것이 중요합니다.
  • Robots.txt는 페이지를 검색 엔진에서 완전히 삭제하는 기능이 아니며 이미 색인된 페이지는 검색 결과에 남아 있을 수 있기 때문에 색인을 완전하게 제거하려면 noindex 메타 태그를 함께 사용해야 완전히 제거할 수 있습니다.
  • Sitemap을 추가하게 되면 검색 엔진이 중요한 페이지를 보다 쉽게 찾을 수 있습니다.

사이트맵(Sitemap) 제출과 관리

사이트맵은 웹사이트의 구조를 검색 엔진에게 알려주는 XML파일이며 검색 엔진이 웹사이트의 모든 페이지를 효과적으로 크롤링하고 색인할 수 있도록 돕는 역할을 합니다.

1. 사이트맵의 중요성

새로운 페이지가 생성될 때 검색 엔진이 이를 빠르게 발견할 수 있도록 하고 웹사이트를 이해하는데 도움을 주며 사이트 맵과 Robots.txt를 함께 사용하면 크롤링 효율을 높일 수 있습니다.

2. XML 사이트맵 예제

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <url>
        <loc>https://example.com/</loc>
        <lastmod>2024-02-10</lastmod>
        <changefreq>daily</changefreq>
        <priority>1.0</priority>
    </url>
    <url>
        <loc>https://example.com/about/</loc>
        <lastmod>2024-02-08</lastmod>
        <changefreq>weekly</changefreq>
        <priority>0.8</priority>
    </url>
</urlset>
                    
  • <loc>: 페이지 URL
  • <lastmod>: 마지막 수정 날짜
  • <changefreq>: 페이지 변경 빈도 (daily, weekly, monthly 등 설정 가능)
  • <priority>: 해당 페이지의 중요도

3. 사이트맵 제출 방법

  • Google Search Console에 사이트맵 제출: Google Search Console에 접속 >"Sitemaps" 메뉴로 이동 > https://example.com/sitemap.xml 입력 후 제출
  • Robots.txt 파일에 사이트맵 추가
Sitemap: https://example.com/sitemap.xml
                    

이를 통해 검색 엔진은 사이트 맵을 자동으로 발견 가능합니다.

4. 사이트맵 관리 시 주의할 점

  • WordPress, Shopify 등 CMS를 사용할 경우에는 자동으로 사이트맵이 생성 되지만 정적 사이트라면 직접 업데이트를 해야 합니다.
  • 404페이지 또는 중복된 페이지 등 검색엔진이 불필요한 페이지를 색인하지 못하도록 관리가 필요합니다.
  • 모바일과 데스크톱이 분리된 경우 개별 사이트맵을 생성할 수 있으며 sitemap-mobile.xml을 따로 생성하여 모바일 SEO를 최적화 할 수 있습니다.

검색 엔진이 웹 사이트를 원활하게 크롤링하고 색인 할 수 있게 하기 위해서는 Robots.txt 설정과 사이트맵 제출이 필수이며 적절한 설정을 통하여 중요한 페이지가 검색 결과에 노출되도록 최적화하는 것이 필수입니다.

중복 콘텐츠와 URL 관리

검색 엔진 최적화에서 중복된 컨텐츠 문제는 검색 순위에 부정적인 영향을 미칠 수 있으며 같은 내용이 여러 개의 URL에서 제공되면 검색 엔진이 어떤 페이지를 우선적으로 색인 해야 할지 혼란을 겪게 되기 때문에 이를 해결하기 위해 캐노니컬 테그를 활용하고 적절한 리디렉션 설정을 적용시키는 것이 좋습니다.

캐노니컬 태그(Canonical Tag)의 역할과 설정

캐노니컬 태그는 검색 엔진에게 “해당 페이지의 원본 URL은 여기다” 라고 알려주는 HTML 태그로 이를 통해 중복 콘텐츠 문제를 해결하고 검색 엔진이 원하는 페이지를 색인 할 수 있습니다.

1. 캐노니컬 태그가 필요한 상황

  • 같은 콘텐츠가 여러 URL에서 제공되는 경우: 예를 들어 https://example.com/product와 https://example.com/product?ref=naver가 동일한 페이지라면 검색 엔진은 이를 별개의 페이지로 인식하는 경우가 있습니다.
  • 모바일과 데스크톱 페이지가 따로 존재하는 경우: https://m.example.com과 https://www.example.com이 같은 내용을 제공하고 있다면 캐노니컬 태그를 설정하는 것이 좋습니다.
  • HTTP와 HTTPS 버전이 공존하는 경우: http://example.com과 https://example.com이 있다면 HTTPS 페이지를 대표 페이지로 지정해야 합니다.
  • www 버전과 비www 버전이 존재하는 경우: https://www.example.com과 https://example.com이 동일한 사이트라면 이 중 하나를 대표 URL로 설정해야 합니다.

2. 캐노니컬 태그 사용법

<head> 태그 안에 아래와 같이 추가

<link rel="canonical" href="https://example.com/product">
                    

위 코드를 적용하게 되면 검색 엔진은 해당 페이지의 원본 URL은 https://example.com/product 이라고 인식하고 다른 URL을 중복 콘텐츠로 간주하지 않습니다.

3. 캐노니컬 태그 사용 시 주의할 점

  • 모든 페이지에 캐노니컬 태그를 넣어야 하는 것은 아니며 중복 콘텐츠가 없는 경우 불필요하게 사용하지 않아도 됩니다.
  • 301 리디렉션을 적용한 페이지에 캐노니컬 태그를 추가하게 되면 검색엔진이 혼란스러워 할 수 있어 캐노니컬 태그와 리디렉션을 함께 사용해서는 안됩니다.
  • http://와 https:// 또는 www와 비www URL을 혼용하게 되면 제대로 적용되지 않을 수 있어 올바른 URL을 지정해야 합니다.

301 리디렉션과 302 리디렉션 차이

중복 콘텐츠를 해결하기 위한 또 다른 방법은 리디렉션을 설정하는 것으로 검색 엔진과 사용자가 특정 URL을 방문했을 때 자동으로 다른 URL로 이동할 수 있도록 설정할 수 있습니다.

1. 301 리디렉션

301 리디렉션은 영구적인 페이지 이동을 의미하며 예를 들어, http://example.com에서 https://example.com의 URL로 변경할 때 301리디렉션을 설정하게 되면 검색 엔진은 새 URL을 원본 페이지로 간주하게 되고 기존 URL의 SEO점수를 새 URL로 이전 가능합니다.

301 리디렉션 설정 예

해당 방법은 Apache 서버에서 .htaccess 파일을 이용하여 301 리디렉션을 설정하는 방법으로

Redirect 301 /old-page.html https://example.com/new-page.html
                    

또는 특정 도메인 전체를 HTTPS로 리디렉트 하려면 다음과 같이 설정이 가능합니다.

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
                    
301 리디렉션을 사용해야 하는 경우
  • HTTP → HTTPS로 이동할 때
  • 오래된 페이지를 새 페이지로 변경할 때

2. 302 리디렉션

302 리디렉션은 임시적으로 다른 페이지로 이동할 때 사용하는 것으로 페이지가 유지보수 중이거나 일시적으로 다른 페이지를 보여주고 싶을 때 사용되기도 하며 검색엔진이 기존 페이지의 색인을 유지하면서 새로운 URL을 임시적으로 제공할 수 있게 합니다.

302 리디렉션 설정 예
Redirect 302 /old-page.html https://example.com/new-temporary-page.html
                    
302 리디렉션을 사용해야 하는 경우
  • 특정 이벤트 페이지를 임시로 운영할 때
  • A/B 테스트를 위해 페이지를 임시 변경할 때

하지만 302 리디렉션을 잘못 사용하게 되면 검색 엔진이 기존 페이지를 유지하면서 새 페이지를 색인 하지 못하는 문제가 발생할 수 있어 SEO측면에서 301 리디렉션이 유리하게 작용합니다.

URL 정리 및 최적화 전략

중복 콘텐츠를 방지하고 검색 엔진이 올바르게 색인 할 수 있도록 하기 위해서는 URL을 체계적으로 관리하는 것이 중요하기 때문에 URL 구조를 간결하게 만들어 의미 없는 숫자 또는 기호를 포함하지 않고 가독성이 좋은 URL을 사용하는 것이 좋으며 한글 URL은 가급적으로 피하고 영어 또는 로마자로 작성하는 것이 좋습니다. 또한 같은 콘텐츠를 제공하는 여러 페이지가 존재한다면 캐노니컬 태그를 설정하거나 301 리디렉션을 적용하여 하나의 URL로 통합하는 것이 중요합니다.

검색 엔진이 웹사이트를 효과적으로 인식하고 색인 할 수 있게 하기 위해서는 캐노니컬 태그, 리디렉션 설정, URL 최적화가 필수이며 잘못한 설정으로 인하여 트래픽이 손실되지 않도록 신중하게 관리해야 합니다.

image
image