검색 엔진 최적화에서 가장 중요한 단계 중 하나는 검색 엔진이 웹사이트를 원활하게 크롤링하고 색인하도록 최적화하는 것으로 크롤링이 원활하게 이루어지지 않으면 중요한 페이지가 노출되지 않을 가능성이 높아지기 때문에 이를 방지하기 위해 Robots.txt 설정과 사이트맵 제출을 올바르게 관리하는 것이 중요합니다.
Robots.txt는 검색 엔진 크롤러에게 어떤 페이지를 크롤링할 수 있고 어떤 페이지를 크롤링하면 안되는지 알려주는 파일로 잘못된 설정을 할 경우 웹사이트의 중요한 페이지가 검색 결과에서 제외되는 문제가 생길 수 있습니다.
User-agent: *
Disallow: /private/
Allow: /public/
Sitemap: https://example.com/sitemap.xml
전체 웹사이트 크롤링 허용
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/를 크롤링하지 못하도록 크롤러를 차단시킵니다.
사이트맵은 웹사이트의 구조를 검색 엔진에게 알려주는 XML파일이며 검색 엔진이 웹사이트의 모든 페이지를 효과적으로 크롤링하고 색인할 수 있도록 돕는 역할을 합니다.
새로운 페이지가 생성될 때 검색 엔진이 이를 빠르게 발견할 수 있도록 하고 웹사이트를 이해하는데 도움을 주며 사이트 맵과 Robots.txt를 함께 사용하면 크롤링 효율을 높일 수 있습니다.
<?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>
Sitemap: https://example.com/sitemap.xml
이를 통해 검색 엔진은 사이트 맵을 자동으로 발견 가능합니다.
검색 엔진이 웹 사이트를 원활하게 크롤링하고 색인 할 수 있게 하기 위해서는 Robots.txt 설정과 사이트맵 제출이 필수이며 적절한 설정을 통하여 중요한 페이지가 검색 결과에 노출되도록 최적화하는 것이 필수입니다.
검색 엔진 최적화에서 중복된 컨텐츠 문제는 검색 순위에 부정적인 영향을 미칠 수 있으며 같은 내용이 여러 개의 URL에서 제공되면 검색 엔진이 어떤 페이지를 우선적으로 색인 해야 할지 혼란을 겪게 되기 때문에 이를 해결하기 위해 캐노니컬 테그를 활용하고 적절한 리디렉션 설정을 적용시키는 것이 좋습니다.
캐노니컬 태그는 검색 엔진에게 “해당 페이지의 원본 URL은 여기다” 라고 알려주는 HTML 태그로 이를 통해 중복 콘텐츠 문제를 해결하고 검색 엔진이 원하는 페이지를 색인 할 수 있습니다.
<head> 태그 안에 아래와 같이 추가
<link rel="canonical" href="https://example.com/product">
위 코드를 적용하게 되면 검색 엔진은 해당 페이지의 원본 URL은 https://example.com/product 이라고 인식하고 다른 URL을 중복 콘텐츠로 간주하지 않습니다.
중복 콘텐츠를 해결하기 위한 또 다른 방법은 리디렉션을 설정하는 것으로 검색 엔진과 사용자가 특정 URL을 방문했을 때 자동으로 다른 URL로 이동할 수 있도록 설정할 수 있습니다.
301 리디렉션은 영구적인 페이지 이동을 의미하며 예를 들어, http://example.com에서 https://example.com의 URL로 변경할 때 301리디렉션을 설정하게 되면 검색 엔진은 새 URL을 원본 페이지로 간주하게 되고 기존 URL의 SEO점수를 새 URL로 이전 가능합니다.
해당 방법은 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]
302 리디렉션은 임시적으로 다른 페이지로 이동할 때 사용하는 것으로 페이지가 유지보수 중이거나 일시적으로 다른 페이지를 보여주고 싶을 때 사용되기도 하며 검색엔진이 기존 페이지의 색인을 유지하면서 새로운 URL을 임시적으로 제공할 수 있게 합니다.
Redirect 302 /old-page.html https://example.com/new-temporary-page.html
하지만 302 리디렉션을 잘못 사용하게 되면 검색 엔진이 기존 페이지를 유지하면서 새 페이지를 색인 하지 못하는 문제가 발생할 수 있어 SEO측면에서 301 리디렉션이 유리하게 작용합니다.
중복 콘텐츠를 방지하고 검색 엔진이 올바르게 색인 할 수 있도록 하기 위해서는 URL을 체계적으로 관리하는 것이 중요하기 때문에 URL 구조를 간결하게 만들어 의미 없는 숫자 또는 기호를 포함하지 않고 가독성이 좋은 URL을 사용하는 것이 좋으며 한글 URL은 가급적으로 피하고 영어 또는 로마자로 작성하는 것이 좋습니다. 또한 같은 콘텐츠를 제공하는 여러 페이지가 존재한다면 캐노니컬 태그를 설정하거나 301 리디렉션을 적용하여 하나의 URL로 통합하는 것이 중요합니다.
검색 엔진이 웹사이트를 효과적으로 인식하고 색인 할 수 있게 하기 위해서는 캐노니컬 태그, 리디렉션 설정, URL 최적화가 필수이며 잘못한 설정으로 인하여 트래픽이 손실되지 않도록 신중하게 관리해야 합니다.