mcpField
B
bitrix-seo

bitrix-seo

github.com/bxmaximumマーケティング・グロース47265 回インストール2 週間前に更新
リポジトリ

bitrix-seo について

Bitrix 開発者向けの SEO モジュールスキルです。サイトマップ生成、robots.txt のルール、検索エンジンのサイト情報を扱います。バックグラウンド処理とコマンドラインでの段階的な生成を説明し、ページメタデータやリダイレクトの担当箇所も示します。

主な機能

  1. 01バックグラウンドジョブでのサイトマップ生成
  2. 02サイトマップ生成の段階的な実行
  3. 03robots.txt ルールの読み書き
  4. 04検索エンジンのサイト情報の参照
  5. 05SEO 外でのリダイレクト処理箇所の確認

活用シーン

  1. 01バックグラウンドジョブでのサイトマップ再生成
  2. 02robots.txt へのサイトマップ URL 追加
  3. 03コマンドラインでの生成ステップ実行
  4. 04ページメタデータを扱うモジュールの特定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/bxmaximum/bitrix-framework-skills --skill bitrix-seo

インストール後、Claude Code で/bitrix-seoを入力して読み込まれたか確認します。

詳細

SEO モジュール(seo)

ベースライン:main 23.0+ · 検証済み:seo 26.100.0、main 26.800.0

以下のクラスを使用する前に Loader::includeModule('seo') を呼び出してください。iblock コンテンツのページタイトル/説明はここには保存されません:bitrix-iblocks の InheritedProperty(rules/query-seo-perf.md)。ランディングページのカウンター/メタデータについては、bitrix-landing のフックを使用してください。

サイトマップ

クラス役割
Bitrix\Seo\Sitemap\Internals\SitemapTableb_seo_sitemap の行:SITE_ID、ACTIVE、NAME、DATE_RUN、シリアル化された SETTINGS
Bitrix\Seo\Sitemap\Jobエージェントによるバックグラウンド生成:markToRegenerate()、addJob()、doJobAgent()、STATUS_*
Bitrix\Seo\Sitemap\Generator生成の1ステップ:init($step, $state)、run()、getStep()、getState()
Bitrix\Seo\Sitemap\Type\Stepステップの値:Step::STEPS[Step::STEP_INIT] = 0 … Step::STEPS[Step::STEP_INDEX] = 100

フォームから保存する設定は、SitemapTable::prepareSettings($settings) を通します。独自の XML ライターを作成しないでください。

バックグラウンド(推奨):Job::markToRegenerate($sitemapId) はジョブとエージェントを作成します(初回は60秒後に実行され、その後は毎秒実行されます)。完了するまで、アクセスごとに1ステップずつ実行します。本番環境では cron と bitrix-background-jobs を設定し、エージェントが実行されるようにしてください。

プロセス内(CLI、ステッパー):run() は約13秒のステップを1つ実行し、エラーの場合にのみ false を返します。getStep() が Step::STEPS[Step::STEP_INDEX] に達すると生成が完了します。Job::doStep() と同様に、ステップごとに新しい Generator を作成し、ステップと状態を引き継いでください。HTTP リクエストをまたぐ場合は、両方を永続化してください。

use Bitrix\Seo\Sitemap\Generator;
use Bitrix\Seo\Sitemap\Type\Step;

$step = Step::getFirstStep();
$state = [];
do {
    $generator = (new Generator($sitemapId))->init($step, $state);
    if (!$generator->run()) {
        throw new \RuntimeException($generator->getStatusMessage());
    }
    $step = $generator->getStep();
    $state = $generator->getState();
} while ($step < Step::STEPS[Step::STEP_INDEX]);

SETTINGS['ROBOTS'] === 'Y' の場合、最後のステップで robots.txt に Sitemap: 行が自動的に追加されます。

管理ページ:/bitrix/admin/seo_sitemap.php、seo_sitemap_edit.php。

robots.txt

use Bitrix\Seo\RobotsFile;

$robots = new RobotsFile('s1'); // site document root robots.txt
$robots->addRule([RobotsFile::SITEMAP_RULE, 'https://example.com/sitemap.xml']);
$sitemaps = $robots->getRules(RobotsFile::SITEMAP_RULE);

RobotsFile は Bitrix\Main\IO\File を継承します。SECTION_RULE = User-Agent。管理画面:seo_robots.php。

ウェブマスターと検索エンジン

  • レジストリ:Bitrix\Seo\SearchEngineTable(b_seo_search_engine、キーは CODE)。
  • Bitrix\Seo\Engine\ のエンジン:Yandex(ENGINE_ID = 'yandex')、Google('google')、YandexDirect、基底クラスの YandexBase。
  • Bitrix\Seo\Webmaster\Service::getSites() — バインド済み/検証済みのフラグを含むホスト。
  • Bitrix\Seo\Service::REDIRECT_URI(/bitrix/tools/seo_client.php)は OAuth コールバックであり、HTTP リダイレクトではありません。
  • レガシーヘルパー(互換性維持のみ):CSeoKeywords(Add/Update/GetByURL)、CSeoPageChecker、CSeoUtils::getDomainsList()。管理画面:seo_tools.php、seo_search_yandex.php、seo_search_google.php。
  • 広告/リターゲティングの名前空間(Bitrix\Seo\Retargeting\、LeadAds\、Analytics\)は製品連携用です。サイトマップ/robots の作業では使用しないでください。

リダイレクト:ここに API はありません

カーネルには、301/302 ルール用の seo テーブルはありません。SeoRedirectTable を作らないでください。

必要な機能場所
クロールの許可/拒否、サイトマップ URLRobotsFile、サイトマップの SETTINGS
オープンリダイレクトの許可リストsecurity モジュール:CSecurityRedirect、Bitrix\Security\RedirectRuleTable
ページの移転ウェブサーバーのルール、ルート(bitrix-routing)、またはコンポーネント内の LocalRedirect

URL を変更した後は、コンテンツ内のリンクを修正し、Job::markToRegenerate() を実行して、robots を調整してください。

チェックリスト

  • Sitemap/Robots/Engine クラスを使用する前に Loader::includeModule('seo') を呼び出します。
  • サイトマップの行には SitemapTable を使用します。生成には Job、またはステップと状態を引き継ぐ Generator のステップループを使用します。
  • run() === false は「続きのステップがある」ではなく、エラーとして処理します。
  • Iblock のメタデータには InheritedProperty を使用し、独自の b_seo_* 列を作成しません。
  • seo にリダイレクト用の CRUD を作りません。

コメント