SEO
메타 태그, 정규 URL, 구조화된 데이터, 사이트맵, robots 및 색인 제어를 다룹니다.
TubePress는 설치하는 순간부터 완전한 SEO 레이어를 제공합니다 — 활성화해야 할 플러그인도, 추가해야 할 테마 코드도 없습니다. 깨끗한 URL, 페이지 제목, 메타 설명, Open Graph 및 Twitter 카드, 정규 링크, schema.org 구조화 데이터, 비디오 사이트맵 및 다국어 hreflang이 콘텐츠와 몇 가지 설정을 통해 자동으로 생성됩니다.
이 페이지에서는 자동으로 제공되는 기능과 /admin/settings에서 조정할 수 있는 설정에 대해 설명합니다.
기본 제공 SEO
SEO 관리자는 핵심 애플리케이션과 함께 시작되므로 모든 프론트엔드 페이지가 기본적으로 최적화됩니다. 플러그인 없음 설치 시 활성화
- 비디오, 카테고리, 태그, 출연자, 채널 및 페이지에 대한 사람이 읽을 수 있는 URL.
- 엔티티 유형별로 구성 가능한 title 및 meta description 패턴.
- 자동 이미지 선택이 포함된 Open Graph 및 Twitter Card 태그.
- 페이지당 하나의 canonical URL과 활성화된 모든 언어에 대한 hreflang 대안.
- 비디오, 브레드크럼 및 사이트 검색 상자를 위한 schema.org JSON-LD.
- Gzip 압축 비디오 사이트맵과 동적
/robots.txt. - 검색엔진 인증 메타 태그, GA4 필드, 사용자 정의 head/body 코드.
제목, meta 및 Open Graph
각 엔티티 유형에는 변수로 구성된 자체 제목 및 설명 패턴이 있습니다. 한 번 설정하면 전체 카탈로그에 적용됩니다.
Video title: {title} {sep} {site_name}
Category title: {name} {sep} {site_name}
Video meta: Watch {title} online. {description_short}유용한 변수에는 {title}, {name}, {site_name}, {sep} (제목 구분자), {count} 및 {type}이 있습니다. 설명은 HTML이 제거되고 약 160자로 제한됩니다. 개별 페이지는 페이지 편집기에서 자체 meta title 및 meta description 필드로 패턴을 재정의할 수 있습니다.
소셜 공유를 위해 og:image는 순서대로 결정됩니다: 먼저 페이지별 이미지, 그 다음 — CTR 랭킹 플러그인이 활성화된 경우 — 목록에서 가장 높은 참여도를 가진 비디오의 썸네일, 마지막으로 업로드된 기본 이미지입니다. Twitter 카드는 기본적으로 summary_large_image로 설정되며, 다른 언어를 위해 Twitter 핸들, Facebook App ID 및 og:locale:alternate 태그를 추가할 수 있습니다.
Canonical URL 및 중복 콘텐츠
모든 페이지는 정확히 하나의 <link rel="canonical">을 생성합니다. 쿼리 문자열과 프래그먼트는 canonical에서 제거되고, 후행 슬래시는 라우터에 의해 정규화되므로 /category/x, /category/x/ 및 /category/x?sort=newest는 모두 단일 색인 가능 주소로 확인됩니다.
두 개 이상의 콘텐츠 유형을 운영하는 경우 TubePress는 유형별 엔티티당 하나의 canonical URL을 강제합니다: 잘못된 비디오 유형 접두사로 도착한 요청은 올바른 URL로 301 리디렉션되므로 동일한 비디오가 두 URL에서 색인되는 일이 없습니다. 언어 버전은 중복으로 경쟁하는 대신 hreflang 대안으로 연결됩니다.
robots.txt는 이미 ?sort= 및 ?page= 크롤링을 금지하여 canonical을 강화하고 크롤 예산을 절약합니다.구조화 데이터
TubePress는 검색엔진이 리치 결과를 렌더링할 수 있도록 schema.org JSON-LD를 출력합니다:
- 시청 페이지의 VideoObject — 이름, 설명, 썸네일, 업로드 날짜, 재생 시간, 임베드 및 콘텐츠 URL, 조회수 상호작용 통계.
- 사이트 계층 구조에서 페이지 위치를 설명하는 BreadcrumbList.
- 홈페이지의 WebSite + SearchAction으로, 브랜드를 위한 사이트 링크 검색 상자를 활성화할 수 있습니다.
사이트맵
사이트맵 인덱스는 /sitemap.xml에서 제공됩니다. 몇 가지 빠른 COUNT/MAX 쿼리에서 동적으로 생성되며 하위 사이트맵을 참조하는데, 이는 gzip 압축 파일로 디스크에 기록되고 콘텐츠가 변경될 때마다 재생성됩니다.
| 사이트맵 | 내용 |
|---|---|
| 비디오 | video:video + image:image 태그: 썸네일, 제목, 설명, 플레이어 및 콘텐츠 URL, 재생 시간, 조회수, 게시 날짜 |
| 카테고리 / 태그 / 출연자 / 채널 | 양방향 hreflang 대안이 포함된 엔티티 URL (x-default 포함) |
| 페이지 | 정적 CMS 페이지 및 유형별 홈페이지 (hreflang 포함) |
각 하위 파일은 최대 25,000개의 URL을 보유합니다 (1,000에서 50,000 사이에서 구성 가능). 엔티티 유형, 비디오/이미지 태그 또는 hreflang 블록을 켜거나 끌 수 있습니다. 사이트맵 응답은 X-Robots-Tag: noindex 헤더를 포함하므로 파일 자체는 검색 결과에 나타나지 않습니다.
Robots 및 색인
/robots.txt 파일은 동적입니다: 사이트맵을 알리고, 관리 및 패싯 경로를 금지하며, 공격적인 SEO 봇에 크롤링 지연을 적용합니다. 색인 가능한 페이지는 허용적인 기본 robots 메타 (max-image-preview:large, max-video-preview:-1, max-snippet:-1)를 받습니다.
noindex를 선택적으로 적용할 수 있습니다 — 태그, 카테고리, 출연자 또는 채널 목록, 페이지 매김 페이지, 또는 검색 결과 (기본적으로 켜짐) — 사이트의 나머지 부분을 건드리지 않고. 스테이징 환경을 위한 단일 마스터 스위치도 있습니다.
seo_noindex_entire_site를 활성화하면 모든 페이지에 noindex, nofollow가 추가되고 robots.txt가 모든 것을 차단합니다. 출시 전 사이트에 적합한 스위치입니다 — 라이브로 전환하기 전에 끄는 것을 기억하세요.다국어 SEO
두 개 이상의 언어를 활성화하면 TubePress는 페이지 <head>와 엔티티 사이트맵 모두에서 rel="alternate" hreflang 태그로 번역을 연결하고, 기본 언어를 가리키는 x-default를 추가합니다. 기본 언어는 루트에 유지되고 다른 언어는 짧은 /{code}/ 접두사 아래에 있습니다. 전체 언어 워크플로는 국제화를 참조하세요.
성능
SEO 출력은 확장 가능하도록 구축되었습니다. 사이트맵은 일괄 데이터베이스 쿼리로 스트리밍되고 gzip 압축으로 저장되며, 인덱스는 count 쿼리에서 요청 시 계산되고, robots.txt는 하루 동안 캐시됩니다. CTR 기반 Open Graph 이미지는 랭킹 플러그인이 활성화된 경우에만 계산되므로, 사용하지 않으면 오버헤드가 없습니다. 결과는 수백만 개의 비디오가 있는 카탈로그에서도 정확하고 빠른 메타데이터입니다.