본문으로 이동
CranSEO
CranSEO$100 무료 받기

서치 콘솔 내보내기와 백링크를 단계별로 병합하기

서치 콘솔은 링크를 걸어주는 사이트를 알려주지만, 그 사이트의 권위(Strength)는 알려주지 않습니다. 한 번의 호출로 내보내기 데이터의 간극을 메울 수 있습니다. 아래 제시된 모든 숫자는 가상의 예시입니다.

CranSEO 연구팀 ·

다양한 나무 밀도와 무거운 사슬을 가진 두 절벽을 연결하는 돌다리

설정 방법과 병합이 필요한 이유

서치 콘솔은 링크를 걸어주는 사이트를 보여줍니다. 하지만 순위를 매겨주지는 않습니다.

상위 링크 사이트를 CSV로 내보내면 도메인 열만 제공될 뿐, 그 가치나 무게감에 대한 정보는 부족합니다. 이 간극을 메우는 것이 병합의 목적입니다. 단순한 내보내기 데이터는 하나의 주장(argument)이라기보다 단순한 목록에 불과하기 때문입니다.

저희 bulk_dr 액션은 한 번의 호출로 전체 열의 점수를 매겨줍니다. 따라서 병합은 도메인을 기준으로 한 단일 left_join()으로 처리됩니다. 서치 콘솔은 알고 있는 링크의 일부만 표시하므로, 내보내기 데이터를 총량이 아닌 최소치(floor)로 간주해야 합니다.

5단계로 수행하는 병합

01

내보내기

서치 콘솔의 링크 보고서에서 링크 사이트 테이블을 다운로드합니다. readr::read_csv()로 파일을 읽습니다.

02

정제

모두 소문자로 변환하고 www 접두어를 제거한 후 중복을 제거합니다. 키 불일치가 병합 시 NA가 반환되는 주된 원인입니다.

03

점수 매기기

고유 도메인을 2,000개 단위로 나누어 bulk_dr에 전송합니다. 한 번의 호출에 1 크레딧이 소모됩니다.

04

병합

left_join(links, scores, by = "domain")를 실행합니다. 병합 전후의 행 수를 확인하세요.

05

플래그 지정

저희 임계값 테이블의 DR 밴드로 데이터를 분류하고, 내보내기 데이터에 점수가 누락된 행을 나열합니다.

가상 결과: 가상의 내보내기 데이터 8개 행

예시 데이터입니다. 도메인과 숫자는 병합의 형태를 보여주기 위해 임의로 생성된 것입니다.
도메인 (가상)내보내기 내 링크 수DR (가상)밴드
example-news.test1471강함
example-blog.test334기반 마련됨
example-shop.test218소형
example-forum.test409얇음
example-uni.test162강함
example-dir.test274얇음
example-local.test522소형
example-wiki.test183매우 대형
작은 자갈 여러 개와 단일 금괴를 저울질하는 고대 저울

이 예시가 시사하는 점과 한계

포럼 행을 주의 깊게 읽어보세요. DR 9의 링크 40개는 양(quantity)은 많지만 무게(weight)는 부족함을 의미합니다.

이 가상의 사례에서는 링크가 각각 하나인 두 행이 얇은 사이트에서 온 67개의 링크보다 높은 순위를 차지합니다. 이것이 실제 데이터에서 주목해야 할 패턴입니다. 이는 DR의 작동 방식을 반영할 뿐, 랭킹에 대한 보장은 아닙니다.

인과관계를 과도하게 해석하지 마세요. 구글은 링크가 수많은 신호 중 하나라고 밝혔으며, 2024년 3월 코어 업데이트 이후 상황은 더욱 복잡해졌습니다.

병합 관련 질문

일부 행에 점수가 없는 이유는 무엇인가요?

주로 키 값의 차이가 원인입니다: 끝에 슬래시가 있거나 www 접두어가 있거나 대소문자가 다릅니다. 먼저 문자열을 정제하세요. 여전히 실패한다면, 해당 도메인이 저희가 크롤링한 월간 인덱스에 단순히 없을 수 있습니다.

intersect를 사용할 수 있나요?

네, 다른 질문의 경우 가능합니다. intersect는 2개에서 10개의 도메인을 받아 여러 도메인에 링크를 걸어주는 사이트를 반환합니다. 이는 자체 내보내기 데이터의 점수 매기기보다는 경쟁사 간극 분석에 적합합니다.

병합에 얼마나 많은 크레딧이 소요되나요?

고유 도메인 5,000개의 경우, 세 번의 bulk_dr 호출에 3 크레딧이 필요하며 이는 약 $0.0003입니다. 내보내기 데이터를 정제하는 데 소요되는 시간에 비해 데이터 추출 비용은 미미합니다.

여러 내보내기 데이터를 하나의 테이블로 먼저 결합하세요

백링크와 서치 콘솔 내보내기를 병합하기 전에 파일들을 먼저 결합하세요. 실제 작업은 대부분 여러 내보내기 데이터를 포함하며(클라이언트별 또는 분기별), 하나의 테이블로 병합하는 것이 훨씬 깔끔합니다.

파일들이 실제로 일치하는지 확인하세요

여러 사람이 보낸 여러 CSV 파일은 열 이름, 열 순서, 날짜 형식 및 인코딩이 동일할 때만 깔끔하게 결합됩니다. 클라이언트별로 내보내기 데이터를 받는 경우, 결합 전에 각 파일의 헤더 행을 비교하고 하나라도 다르면 중단하세요.

빠른 확인을 위해 파일별 열 이름 목록을 작성하고 스크립트에 단일 중단 조건을 추가하세요. 이는 몇 줄의 코드로 해결할 수 있으며, 조용히 일어나는 정렬 불일치를 방지합니다.

구분자 및 소수점 표기

서로 다른 시스템에서 내보낸 데이터는 구분자로 세미콜론이나 다른 소수점을 사용할 수 있습니다. 파일이 쉼표로 구분된 파일이라고 가정하기 전에 각 파일의 구분자를 확인하고, 소수점 표기가 다를 경우 명시적인 로캘을 설정하세요.

단일 열로 파싱되는 파일은 가장 저렴하게 발견할 수 있는 오류입니다. 각 파일의 열 개수를 출력하고, 열 개수가 1일 때 처리를 중단하세요.

파싱 옵션을 기본값이 아닌 명시적인 인수로 스크립트에 기록하세요. 그러면 다음 사용자가 데이터를 열지 않고도 설정을 확인할 수 있습니다.

소스 열이 있는 긴 테이블 하나로 통합

파일들을 하나의 긴 테이블로 쌓고, 소스 파일과 내보낸 날짜를 기록하는 열을 추가하세요. 이 테이블은 사람들이 수동으로 단계별로 관리하던 여러 시트 집합을 대체합니다.

요약 작업은 이제 클라이언트별 시트 대신 group_by() 호출 하나로 처리됩니다. 원본 파일은 그대로 유지하여 스택 단계를 처음부터 다시 실행할 수 있게 하세요.

시트 간 조회는 조인입니다

열 2를 열 1과 함께 이동하라는 요청은 숨겨진 조인입니다. 키(여기서는 도메인)를 선택하고 left_join()을 사용하여 두 번째 열을 이동하세요. 스프레드시트 버전은 행이 이동할 때마다 깨지지만, 키 기반 조인은 그렇지 않습니다.

두 번째 테이블이 다른 키 형식을 사용하는 경우, 조인 후에 수정하는 대신 조인 전에 키를 수정하세요. 불일치는 보통 대소문자 또는 접두사 문제입니다.

조인으로 해결할 수 없는 것들

조인은 키를 기준으로 두 테이블을 나란히 배치합니다. 두 소스가 일치하도록 만들거나, 내보내지지 않은 도메인을 구출할 수는 없습니다. 두 내보내기에서 개수가 다를 경우, 조인은 이를 해결하지 않고 불일치를 보여줍니다.

두 소스 이름이 함께 표시되도록 보고서에 그 차이를 명시적으로 남겨, 읽는 사람이 숫자가 어떤 내보내기에서 왔는지 확인할 수 있게 하세요.

조인은 두 소스가 불일치하는 이유도 알려주지 않습니다. 이는 원본 행을 살펴봐야 하므로, 내보내기 파일을 그대로 유지해야 하는 또 다른 이유입니다.

테이블에 소스 이름을 유지하세요

소스 열은 저렴한 보험과 같습니다. 6개월 후 숫자가 이상해 보일 때 첫 번째 질문은 해당 내보내기 출처이며, 이 열은 이전 폴더를 검색하지 않고도 이에 대한 답을 제공합니다.

어떤 클라이언트가 특정 도메인이 두 번 표시되는 이유를 묻는다고 가정해 보세요. 소스 열은 해당 도메인이 봄 내보내기 및 여름 내보내기에서 모두 가져온 것임을 보여주며, 이는 한 문장으로 설명할 수 있는 사실입니다.

스택 및 조인을 4단계로 처리

01

모든 파일 읽기

readr::read_csv()를 사용하여 각 내보내기를 읽고 파일 이름을 열로 유지하세요. 첫 번째 파일의 열 형식이 나머지 파일에도 적용된다고 가정하지 마세요.

02

행 결합

헤더가 일치하면 bind_rows()를 사용하세요. 소스별 행 수를 세고 각 파일에서 예상했던 값과 비교하세요.

03

한 번에 요약

키로 그룹화하고 한 번에 요약하세요. 예를 들어 클라이언트별 사이트 수를 연결하여 각 계산이 한 곳에 위치하도록 하세요.

04

점수 조인

스택 후 cleaned domain에 bulk_dr 점수를 조인하고, 조인 전후의 행 수를 확인하세요.

돋보기를 든 나무 벤치 위에 놓인 마스터 키와 녹슨 자물쇠

조인을 보호하는 정리 규칙

키가 먼저 깨지며, 조용히 깨집니다.

모든 도메인을 소문자로 변환하고, 선행 www를 제거하며, 후행 점수와 슬래시를 제거하고, 호출 전에 중복을 병합하세요. 대문자 하나만 잘못되어도 좋은 매치가 NA가 되어 클라이언트가 묻기 전까지 눈치채지 못할 수 있습니다.

원본 내보내기는 별도의 파일로 그대로 유지하고, 정리된 테이블을 그 옆에 작성하며, 파일 이름에 내보낸 날짜를 기록하세요. 월간 실행서는 날짜가 있는 파일이 중요한 이유를 설명하며, 대량 점수 매기기 페이지에는 재사용할 수 있는 요청 코드가 있습니다.

마지막으로, 내보내기에 1,200개의 고유 도메인이 있고 점수 매긴 테이블에 1,150개가 있을 경우, 차트 그리기 전에 이 50개를 찾아야 합니다. 용어집은 액션이 반환하는 내용을 나열하며, 의사결정 트리는 다른 소스가 더 나은 답변이 되는 시기를 알려줍니다.

조인을 다시 빌드하지 않고 두 번째 내보내기 추가

두 번째 기간을 추가할 때 많은 조인이 조용히 잘못됩니다. 해결책은 점수를 매지기 전에 스냅샷을 결정하는 것입니다.

스냅샷을 키의 일부로 생각하세요. 같은 도메인과 다른 스냅샷 날짜를 가진 두 행은 숫자가 비슷해 보여도 다른 사실입니다.

서로 다른 달의 두 내보내기는 스냅샷 문제가 해결되기 전까지 추세가 아닙니다. 먼저 이를 해결한 후 선을 그리세요.

두 기간 모두 한 번에 점수 매기기

이번 분기 내보내기와 지난 분기 내보내기가 있다고 가정해 보세요. 날짜와 함께 두 파일을 스택한 후, 두 파일의 고유 도메인을 한 번에 점수 매겨 두 분기가 하나의 스냅샷을 공유하도록 하세요.

서로 다른 시간에 별도로 점수 매기면 두 인덱스 상태가 비교에 섞입니다. 차트에 스냅샷 날짜를 표기하여 읽는 사람이 두 숫자가 한 번의 처리에서 나왔음을 알 수 있게 하세요.

두 내보내기에 모두 나타나는 도메인

두 내보내기에 모두 존재하는 도메인은 점수 테이블에는 한 번, 스택된 테이블에는 두 번 나타나야 합니다. 이렇게 하면 점수가 정확하고 분기별 링크 수도 정확해집니다.

조인 전에 점수 테이블을 도메인당 한 행으로 만들어 조인이 행을 복제하지 않도록 하세요. 행 수가 고유 도메인 수와 같은지 확인하세요.

점수 매기기 및 조인을 별도 단계로 유지

점수 매기기 단계는 별도의 스크립트에, 조인은 다른 스크립트에 유지하세요. 점수가 변경되면 다시 실행해야 할 단계를 알 수 있으며, 조인은 수동으로 다시 수행할 필요가 없습니다.

스냅샷 날짜와 내보내기 이름을 기록한 작은 파일은 나중에 두 단계를 쉽게 일치시키는 데 도움이 됩니다.

무엇이든 조인하기 전

  • 모든 파일은 동일한 헤더 행을 가져야 하며, 그렇지 않으면 스크립트가 중단됩니다
  • 키 양쪽 테이블에서 소문자로 변환되고 www가 제거됩니다
  • 파일 이름에는 내보낸 날짜가 포함됩니다
  • 각 조인 전후에 행 수가 기록됩니다
  • 원본 내보내기는 별도의 폴더에 그대로 유지됩니다