robots.txt와 robots.ts의 차이
결론
robots.txt와 robots.ts의 선택은 웹사이트의 특정 요구 사항과 기술 스택에 따라 다릅니다.
정적 사이트나 간단한 크롤링 규칙을 가진 사이트의 경우,
robots.txt가 가장 쉽고 효과적인 방법입니다.동적 사이트에서 다양한 크롤링 규칙을 적용해야 하는 경우,
robots.ts가 더 적합할 수 있습니다.
robots.txt
정의: robots.txt는 웹사이트의 루트 디렉토리에 위치하는 표준 텍스트 파일입니다. 이 파일은 웹 크롤러(검색 엔진 봇 등)에게 사이트의 어떤 부분을 크롤링하거나 인덱싱해서는 안 되는지 지시합니다.
접근성: 웹 크롤러가 사이트를 방문할 때 가장 먼저 확인하는 파일이 robots.txt입니다. 크롤러는 자동으로 사이트의 루트 URL에서 이 파일의 존재를 확인합니다 (예: https://www.example.com/robots.txt).
효과성: 거의 모든 웹 크롤러가 이 표준을 인식하고 존중합니다. 이는 사이트 전체에 대한 크롤링 지침을 설정하는 가장 직접적이고 효과적인 방법 중 하나입니다.
User-agent: *
Disallow: /admin/
Disallow: /private/robots.ts
정의: robots.ts는 주로 Next.js와 같은 현대적인 자바스크립트 프레임워크에서 robots.txt 파일의 내용을 동적으로 생성하기 위해 사용되는 TypeScript 파일입니다. 이 파일은 서버 측에서 실행되어 크롤러의 규칙을 정의하고, 동적인 사이트맵 주소를 생성할 수 있습니다.
접근성: robots.ts 파일 자체는 웹 크롤러에 의해 직접적으로 확인되거나 접근되지 않습니다. 대신, 이 파일은 서버 측에서 robots.txt의 내용을 동적으로 생성하고 제공하는 데 사용됩니다.
import { NextApiRequest, NextApiResponse } from 'next';
export default function handler(req: NextApiRequest, res: NextApiResponse) {
const robots = `
User-agent: *
${process.env.NODE_ENV === 'production' ? 'Disallow: /secret/' : 'Disallow: /'}
`;
res.setHeader('Content-Type', 'text/plain');
res.send(robots);
}효과성: robots.ts는 환경 변수나 애플리케이션의 상태에 따라 동적으로 robots.txt 파일의 내용을 변경해야 할 경우 매우 유용합니다. 예를 들어, 개발 환경과 프로덕션 환경에서 다른 크롤링 규칙을 적용하고 싶을 때 효과적입니다.