콘텐츠 프루닝은 검색 최적화에서 가장 직관에 어긋나는 작업입니다. 모든 본능이 페이지가 많아질수록 트래픽도 늘어야 한다고 말하기 때문입니다. 글을 발행하는 일은 자산이 쌓이는 것처럼 느껴집니다. 반대로 글을 지우는 일은 누군가 비용을 치른 결과물을 그냥 버리는 것처럼 느껴집니다. 삭제가 도움이 되는 진짜 이유는 내 사이트의 페이지끼리 서로 경쟁하기 때문입니다. 내 페이지 두 개가 같은 검색 의도를 겨냥하면, 원래 한 페이지에 모였어야 할 신호가 둘로 갈라집니다. 그리고 둘 중 무엇을 보여줄지 판단해야 하는 검색 시스템은 결국 어느 쪽도 고르지 않는 결과로 끝나기도 합...
웹 튜토리얼
HTML, CSS, JavaScript, 성능, 접근성, SEO 를 다루는 명확한 웹 개발 튜토리얼. 반응형 레이아웃과 최신 도구, 사이트 최적화를 배웁니다.
엔티티 SEO는 대부분의 최적화 조언이 여전히 무시하는 하나의 사실에서 출발합니다. 검색엔진은 아주 오래전에 문자열 매칭을 그만두었습니다. 검색엔진은 사물을 매칭합니다. 페이지는 특정 문구를 포함하고 있는지로 점수를 받는 것이 아니라, 그 문구 뒤에 있는 개념에 관한 페이지라고 시스템이 믿는지, 그리고 그 개념이 무엇인지에 대해 시스템이 얼마나 확신하는지로 점수를 받습니다. 이 구분이 키워드를 반복하는 일이 도움이 되는지 아니면 아무 효과도 없는지를 결정합니다. 문자열을 매칭하는 시스템에서 반복은 신호입니다. 엔티티를 매칭하는 시스템에서 반복은 잡음이며, 실제로 결과...
순위는 올라가는데 인용은 되지 않는다. 검색 엔진 최적화를 제대로 했는데도 아무 성과가 나오지 않을 때 느끼는, 아주 특정한 종류의 답답함이 이것입니다. 순위는 옵니다. 노출수도 올라갑니다. 그런데 클릭은 따라오지 않고, 타이틀 태그를 몇 번을 고쳐 써도 상황은 달라지지 않습니다. 이것은 당신의 최적화가 실패했다는 뜻이 아닙니다. 검색 결과 페이지가 링크 목록이기를 그만두고 하나의 답변이 될 때 벌어지는 일입니다. 그리고 이제 이것은 진단이 필요한 이상 현상이 아니라 평범한 상태가 되었습니다. Search Console에서 가져온, 2026년 8월 초까지 28일간의 ...
llms.txt가 지금 뭔가를 하고 있느냐는 질문에 대한 정직한 답은 이렇습니다. 측정 가능한 수준에서는 거의 아무것도 하지 않으며, 이 파일이 AI 가시성에 필수라고 말하는 사람은 무언가를 팔고 있는 것입니다. 그러면서도 파일을 하나 만들어 두라고 권하는 것은 불편한 입장이므로, 이 글은 먼저 숫자를 보여주고 그다음에 권고의 이유를 설명합니다. 파일 자체는 합리적인 아이디어입니다. 사이트 루트에 두는 마크다운 색인으로, robots.txt가 크롤러에게 무엇을 가져가도 되는지 알려주듯 언어 모델에게 무엇을 어디에 게시하는지 알려줍니다. 발상에는 문제가 없습니다. 문제...
AI 크롤러를 차단할지 말지는 흔히 기술 문제처럼 제시되지만, 사실은 기술 문제가 아닙니다. 차단 자체는 설정 몇 줄이면 되고 십 분이면 끝납니다. robots.txt에 몇 줄을 적거나 네트워크 단에서 규칙 하나를 켜는 일이 전부입니다. 어려운 쪽은 그것을 정말 원하는지 판단하는 일이고, 그 판단은 철저히 사업적인 판단입니다. 내 콘텐츠가 모델 학습에 쓰이지 않도록 지킬 것인지, 아니면 사람들이 이제 검색 결과 목록 대신 받아 보는 답변 안에 존재할 것인지를 고르는 문제이기 때문입니다. 온라인에 있는 조언 대부분은 먼저 한쪽 편을 고른 뒤 그 편만 변호합니다....
Cloudflare Queues는 모든 서버리스 애플리케이션이 언젠가는 마주치는 문제를 해결합니다. 사용자가 기다릴 이유가 없는 작업을 유발하는 요청이 들어온다는 문제입니다. 확인 메일 발송, 업로드된 이미지 리사이즈, 레코드를 외부 서비스로 동기화하는 처리 같은 것들입니다. 전통적인 서버라면 그 일을 백그라운드 워커 프로세스에 넘기면 됩니다. 그런데 Workers에는 넘길 프로세스 자체가 없습니다. 흔히 쓰이는 우회책들은 보기보다 나쁩니다. 요청 안에서 그대로 처리하면 사용자가 메일 발송 업체의 응답을 기다리게 됩니다. 다른 Worker로 요청만 던지고 기다리지 않...
Cloudflare Hyperdrive는 아주 구체적이고 전혀 화려하지 않은 문제 때문에 존재합니다. 200개 도시에서 실행되는 Worker가 한 도시에 있는 단일 Postgres 데이터베이스와 대화하면, 그 데이터베이스 바로 옆에 놓인 서버 한 대에서 같은 쿼리를 던질 때보다 느립니다. 조금 느린 정도가 아닙니다. 흔히 몇 배씩 느리며, 그 이유는 쿼리를 어떻게 작성했는지와는 아무 상관이 없습니다. 서버리스 애플리케이션이 굼뜨게 느껴질 때 나오는 반사적인 반응은 쿼리 플래너를 탓하거나 인덱스를 하나 더 추가하는 것입니다....
이커머스 GEO는 콘텐츠 GEO보다 범위가 좁은 문제이고, 딱 한 가지 점에서는 오히려 더 쉽습니다. 상품 질문에 답하려는 어시스턴트가 원하는 것은 얼버무리지 않고 그대로 말할 수 있는 사실이기 때문입니다. 가격, 재고 여부, 치수, 호환 목록, 반품 가능 기간. 이 값들은 기계가 읽을 수 있는 형태로 사이트에 존재하거나 존재하지 않거나 둘 중 하나이며, 존재하지 않는 것은 인용될 수도 없습니다. 그래서 이것은 글쓰기 문제라기보다 데이터 문제입니다. 작업의 대부분은 상품 피드와 마크업 쪽에 있고 판매 문구 쪽에는 없습니다. 이 분야의 다른 모든 주제와는 정확히 반대되...
GEO는 예전에 검색 엔진 최적화를 측정하던 방식으로는 아무도 측정할 수 없습니다. 이유는 도구가 부족해서가 아니라 구조가 달라졌기 때문입니다. 옛 지표들은 하나같이 클릭이 일어난다는 것을 전제로 삼았습니다. 순위를 아는 것이 가치 있었던 이유는 순위가 트래픽을 예측했고 트래픽이 매출을 예측했기 때문입니다. 그런데 방문 없이 답이 그 자리에서 전달되면 이 사슬은 첫 고리에서 끊어지고, 그 뒤에 이어지는 모든 숫자는 아무 일도 없었다는 듯이 계속 같은 값을 보고합니다. 위험한 대목은 바로 여기입니다. 순위는 멀쩡해 보입니다. 세션 수도 버틸 만해 보입니다. 대시보드는 ...
여러 지점을 둔 기업의 SEO는 시도하는 거의 모든 곳에서 같은 방식으로 어긋납니다. 누군가 좋은 서비스 페이지를 하나 쓰고, 지점 수만큼 복사하고, 도시 이름만 바꿔서 아흔다섯 퍼센트가 같은 페이지 열두 개를 올립니다. 규모를 키운 느낌이 듭니다. 그러나 동작은 중복이고, 어느 한 곳을 돕기는커녕 모든 지점을 눌러 앉히는 쪽으로 작용합니다. 그 본능은 이해할 만합니다. 같은 서비스에 대해 진짜로 다른 열두 페이지를 쓰는 일은 어렵고 비싸니까요. 하지만 지름길이 만들어 내는 것은 검색 엔진이 서로 중에 무엇을 골라야 할 이유가 없는 페이지들입니다. 그래서 하나를 고르...