ranklint init
Первый шаг после установки CLI. ranklint init задаёт несколько вопросов, пишет ranklint.config.ts в текущий каталог и сразу читает его настоящим загрузчиком конфига, чтобы вы знали, что файл валиден.
npx ranklint init
Что спрашивает
- URL сайта (абсолютный http/https, с валидацией).
- Нужен ли профиль для UAT/staging? URL UAT попадёт в
profiles.uatи применяется черезranklint audit --profile uat. - Делят ли домен несколько приложений? Glob-пути вашей секции (через запятую) становятся
apps.self, остальной домен считается чужой зоной. См. Зоны. - CI:
gitlab,githubилиnone. Сниппет печатается, файл пайплайна не создаётся и не правится. - Включить scheduled-мониторинг прода? Добавит
monitorс fs-хранилищем, его используетranklint audit --mode monitor.
Если ranklint.config.ts уже есть, init спросит, перезаписать ли его; по умолчанию нет.
Что генерирует
import { defineRanklintConfig } from '@ranklint/core'
export default defineRanklintConfig({
site: { url: 'https://example.com' },
apps: {
self: { paths: ['/en/market/**', '/ar/market/**'] },
main: { paths: ['/**'], owner: 'external' },
},
monitor: { storage: 'fs', dir: '.ranklint/reports' },
profiles: {
uat: { site: { url: 'https://uat.example.com' } },
},
})
Секции, от которых вы отказались, просто отсутствуют: минимальный результат это один site. После записи init выполняет loadRanklintConfig и печатает config is valid; если @ranklint/core ещё не установлен, вместо этого будет подсказка npm i -D @ranklint/core.
Неинтерактивный режим
| Флаг | Описание |
|---|---|
--yes | без вопросов, требует --url |
--url | прод-url сайта |
--uat | url UAT, генерирует профиль uat |
--zones | глобы своей зоны через запятую |
--ci | gitlab | github | none, печатает сниппет пайплайна |
--force | перезаписать существующий ranklint.config.ts |
--cwd | каталог, в котором создать конфиг |
npx ranklint init --yes --url https://example.com --uat https://uat.example.com --ci github
Без --yes и без TTY команда падает с ошибкой «use --yes with --url», так что в пайплайне она не зависнет.
Сниппеты CI
GitLab:
include:
- remote: 'https://raw.githubusercontent.com/aakazancev/ranklint/main/presets/gitlab-ci/seo.yml'
seo:audit:
extends: .ranklint-audit
variables:
RANKLINT_URL: https://example.com
GitHub Actions (reusable workflow, положить в .github/workflows/seo.yml):
name: seo
on: [pull_request]
jobs:
seo:
uses: aakazancev/ranklint/.github/workflows/seo.yml@main
with: { url: 'https://example.com' }
Подробнее про пресеты в Diff и CI.
Детект Nuxt
Если в каталоге есть nuxt.config.ts|js|mjs, а @ranklint/nuxt нет в package.json, init в конце печатает:
Nuxt detected: npx nuxi module add @ranklint/nuxt
Модуль даёт sitemap, robots и JSON-LD на сборке, а CLI проверяет уже задеплоенный результат.