댓글 검색 목록

[Python] 이 Python 도구를 사용하여 웹 사이트 오류 테스트 자동화

페이지 정보

작성자 운영자 작성일 20-08-05 11:35 조회 783 댓글 0

SEODeploy는 배포 전에 웹 사이트에서 SEO 문제를 식별 할 수 있도록 도와줍니다.


기술적 인 검색 엔진 최적화 도구 인 저는 종종 웹 사이트 마이그레이션, 새로운 사이트 출시, 분석 구현 및 사이트의 온라인 가시성 및 측정에 영향을 미치는 기타 영역을 조정하여 위험을 제한해야 합니다. 많은 회사들이 검색 엔진을 통해 제품과 서비스를 찾는 사용자로부터 월별 반복 수익의 상당 부분을 생성합니다. 검색 엔진은 형식이 잘못된 코드를 처리하는 데 능숙하지만 개발 과정에서 검색 엔진이 사용자의 페이지를 색인화하고 표시하는 방법에 악영향을 미치더라도 여전히 잘못 될 수 있습니다.


https://opensource.com/article/20/7/seodeploy 


검색 엔진 최적화 (SEO)의 주요 문제에 대한 단계별 변경 사항을 검토하여 이 위험을 완화하려는 수동 프로세스의 일부였습니다. 우리 팀의 조사 결과에 따라 프로젝트 시작에 녹색 불이 들어오는 지 여부가 결정됩니다. 그러나 이 프로세스는 종종 비효율적이며 제한된 수의 페이지에만 적용 할 수 있으며 인적 오류 가능성이 높습니다.


업계는 오랫동안이 프로세스를 자동화하는 유용하고 신뢰할 수 있는 방법을 모색하면서 개발자와 검색 엔진 최적화 프로그램에 테스트 대상에 대한 의미 있는 설명을 제공했습니다. 검색 엔진 최적화 프로그램이 변경 사항을 추진하고 개발자가 회귀 및 예기치 않은 경험을 제어 해야 하는 경우, 이러한 그룹은 종종 개발 스프린트에서 경쟁 우선 순위를 갖기 때문에 중요합니다.


일반적인 SEO 문제 


내가 작업하는 많은 웹 사이트에는 수만 페이지가 있습니다. 일부는 수백만이 있습니다. 개발 변경이 얼마나 많은 페이지에 영향을 줄 수 있는지 이해하는 것은 어려운 일입니다. SEO 세계에서는 Google 및 기타 검색 엔진이 매우 사소하고 무해한 변경 사항으로 페이지를 표시하는 방식이 사이트 전체에서 크게 변하는 것을 볼 수 있습니다. 이러한 유형의 오류가 발생하기 전에 이를 처리하는 프로세스를 반드시 갖추어야 합니다.


다음은 작년에 본 몇 가지 문제의 예입니다.


Accidental noindex 


우리가 사용하는 독자적인 타사 SEO 모니터링 도구 인 ContentKing은 이 제품을 출시 한 직후에 이 문제를 발견했습니다. HTML에서는 보이지 않기 때문에 서버 응답 헤더의 보기에서 숨겨져 있어 검색 가시성을 잃을 수 있습니다.


HTTP/1.1 200 OK
Date: Tue May 25 2010 21:12:42 GMT
[...]
X-Robots-Tag: noindex
[...] 


Canonical lower-casing 


생산 변경으로 인해 전체 웹 사이트의 정식 링크 요소가 실수로 소문자로 표시되었습니다. 이 변경은 거의 30,000 개의 URL에 영향을 미쳤습니다.

업데이트하기 전에 URL은 제목 케이스 (예 : / URL-Path /)였습니다. 표준 링크 요소는 웹 페이지의 실제 표준 URL 버전에 대한 Google의 힌트이므로 문제입니다. 이 변경으로 인해 많은 URL이 Google 색인에서 제거되고 새로운 경우 위치 (/ url-path /)에서 다시 색인이 생성되었습니다. 그 영향은 향후 몇 주 동안 트래픽의 10–15 % 손실과 페이지 메트릭 데이터 손상으로 인한 것입니다.


Origin server regression 


복잡하고 참신한 React 구현이 있는 한 웹 사이트에서 오리진 콘텐츠 배달 네트워크 서버에 표시되는 origin.domain.com URL의 회귀와 관련하여 신비한 문제가 있었습니다. 사이트 메타 데이터 (표준 링크 요소, URL 및 오픈 그래프 링크 등)의 에지 호스트 대신 원본 호스트를 간헐적으로 출력합니다. 원시 HTML과 렌더링 된 HTML에서 문제가 발견되었습니다. 이는 검색 가시성과 소셜 미디어에 대한 주식의 품질에 영향을 미쳤습니다.


Introducing SEODeploy 

SEO는 종종 diff-testing 도구를 사용하여 렌더링 된 HTML 세트와 원시 HTML 세트 간의 변경 사항을 확인합니다. Diff 테스트는 눈이 확실하지 않기 때문에 이상적입니다. 사용자가 하는 방식이 아니라 Google이 페이지를 렌더링 하는 방식의 차이점을 찾고자 합니다. 렌더링 된 HTML이 아닌 원시 HTML이 Google에 대한 두 개의 별도 처리 단계이므로 원시 HTML이 어떻게 보이는지 확인하려고 합니다.


이로 인해 동료와 저는 "배포 파이프 라인에서 SEO 테스트를 자동화하기 위한 Python 라이브러리"인 SEODeploy를 만들었습니다. 우리의 임무는


개발자가 수에서 다수의 URL 경로를 제공 할 수 있게 하고 도구 및 프로덕션 및 준비 호스트에서 경로를 비교 테스트 할 수 있도록 하는 도구를 개발하기 위해 특히 SEO 관련 데이터에서 예상치 못한 회귀를 찾습니다. 


SEODeploy의 메커니즘은 간단합니다. 줄 바꿈으로 구분 된 경로 집합이 포함 된 텍스트 파일을 제공하고 도구는 해당 경로에서 일련의 모듈을 실행하여 생산 및 준비 URL을 비교하고 찾은 오류 또는 메시지 (변경 사항)를 보고 합니다.


SEODeploy overview 


도구 및 모듈의 구성은 하나의 YAML 파일 일 뿐이며 예상되는 변경에 따라 사용자 정의 할 수 있습니다.


SEODeploy output 


초기 릴리스에는 다음과 같은 핵심 기능과 개념이 포함되어 있습니다.


  • 오픈 소스 : 우리는 비판, 개선, 확장, 공유 및 재사용이 가능한 코드 공유를 깊이 믿고 있습니다.
  • 모듈식 : 웹 개발에는 다양한 스택과 엣지 케이스가 있습니다. SEODeploy 도구는 개념적으로 단순하므로 모듈성을 사용하여 복잡성을 제어합니다. 우리는 두 개의 내장 모듈과 기본 구조를 개략적으로 설명하는 예제 모듈을 제공합니다.
  • URL 샘플링 : 모든 URL을 테스트하는 것이 항상 가능하거나 효율적인 것은 아니기 때문에 ContentKing에서 모니터링 하는 XML 사이트 맵 URL 또는 URL을 임의로 샘플링 하는 방법이 포함되었습니다.
  • 유연한 diff 확인 : 웹 데이터가 지저분합니다. diff 확인 기능은 ext, 배열 (목록), JSON 객체 (사전), 정수, 부동 소수점 등을 포함하여 확인하는 데이터 유형에 관계 없이 이 데이터를 메시지 (변경)로 변환하는 데 효과적입니다.
  • 자동화 : 간단한 명령 줄 인터페이스는 샘플링 및 실행 방법을 호출하여 SEODeploy를 기존 파이프 라인에 쉽게 통합 할 수 있도록 합니다.


Modules 


핵심 기능은 단순하지만 설계 상으로는 SEODeploy가 기능과 복잡성을 얻는 곳이 모듈입니다. 이 모듈은 스테이징 및 프로덕션 서버에서 수집 된 데이터를 비교, 비교, 수집, 정리 및 정리하는 어려운 작업을 처리합니다.


Headless module 


이 도구의 헤드리스 모듈은 라이브러리에서 가치를 얻기 위해 타사 서비스 비용을 지불하지 않으려는 사람에게는 끄덕입니다. 모든 버전의 Chrome을 실행하고 각 URL 비교 세트에서 렌더링 된 데이터를 추출합니다.


헤드리스 모듈은 다음 핵심 데이터를 추출하여 비교합니다.

  1. SEO 콘텐츠 (예 : 제목, 제목, 링크 등)
  2. Chrome 타이밍 및 Chrome DevTools 프로토콜 (CDP) 성능 API의 성능 데이터
  3. Google에서 최근에 출시 한 Web Vital 인 CLS (Cumulative Layout Shift)를 포함한 계산 된 성능 지표
  4. CDP Coverage API의 CSS 및 JavaScript에 대한 적용 범위 데이터

이 모듈에는 스테이징에 대한 인증, 네트워크 속도 사전 설정 (비교의 정규화를 향상 시키기 위해) 및 스테이징 비교 데이터 스테이징 호스트 교체를 처리하는 기능이 포함되어 있습니다. 개발자가 이 모듈을 확장하여 페이지 당 비교할 다른 데이터를 수집하는 것이 매우 쉬워야 합니다.


Other modules 


프레임 워크를 사용하여 사용자 지정 추출 모듈을 생성하려는 개발자를 위한 예제 모듈을 만들었습니다. 다른 모듈은 ContentKing과 통합됩니다. ContentKing 모듈은 ContentKing에 가입해야 하며 헤드리스는 Chrome을 실행할 수 있는 모든 컴퓨터에서 실행할 수 있습니다.


해결해야 할 문제 


리는 라이브러리를 확장하고 향상 시킬 계획을 가지고 있지만 개발자의 요구와 부합하지 않는 것에 대한 피드백을 찾고 있습니다. 목록에 있는 몇 가지 문제와 항목은 다음과 같습니다.


  1. 동적 타임 스탬프는 일부 비교 요소, 특히 스키마에 대해 오 탐지를 만듭니다.
  2. 테스트 데이터를 데이터베이스에 저장하여 히스토리 배치 프로세스를 검토하고 마지막 스테이징 푸시에 대한 변경 사항을 테스트 할 수 있습니다.
  3. 렌더링을 위한 클라우드 인프라를 통해 추출의 규모와 속도를 향상 시킵니다.
  4. 현재 46 %에서 99 % 이상의 테스트 범위 증가
  5. 현재 의존성 관리를 위해 Poetry를 사용하고 있지만 PyPl 라이브러리를 게시하여 pip install로 쉽게 설치할 수 있습니다.
  6. 우리는 더 많은 문제와 사용법에 대한 현장 데이터를 찾고 있습니다.


시작하다 


이 프로젝트는 GitHub에 있으며 대부분의 기능에 대한 문서가 있습니다.


SEODeploy를 복제하여 활용하시기 바랍니다. 우리의 목표는 기술 검색 엔진 최적화 프로그램에 의해 개발되고 개발자와 엔지니어에 의해 검증 된 도구로 오픈 소스 커뮤니티를 지원하는 것입니다. 

복잡한 준비 문제를 확인하는 데 걸리는 시간과 사소한 변경이 여러 URL에 미치는 비즈니스 영향을 확인했습니다. 이 라이브러리는 시간을 절약하고 개발 팀의 배포 프로세스를 위험에서 벗어날 수 있다고 생각합니다.



댓글목록 0

등록된 댓글이 없습니다.

웹학교 로고

온라인 코딩학교

코리아뉴스 2001 - , All right reserved.