mcpField
B
bitrix-seo

bitrix-seo

github.com/bxmaximum营销与增长47265 次安装2 周前更新
代码仓库

关于 bitrix-seo

面向 Bitrix 开发者的 SEO 模块技能,涵盖站点地图生成、robots.txt 规则及搜索引擎站点信息。它说明后台分步构建和 CLI 执行方式,并指出页面元数据与重定向应由其他模块或机制处理。

主要功能

  1. 01通过后台任务生成站点地图
  2. 02分步运行站点地图生成器
  3. 03读写 robots.txt 规则
  4. 04查询搜索引擎站点信息
  5. 05区分 SEO 重定向的处理位置

适用场景

  1. 01按后台任务重建站点地图
  2. 02在 robots.txt 中添加站点地图 URL
  3. 03通过 CLI 执行站点地图步骤
  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')。信息块内容的页面标题和描述不存储在此处:它们由 bitrix-iblocks 中的 InheritedProperty 管理(rules/query-seo-perf.md)。Landing 计数器和元数据:使用 bitrix-landing 中的钩子。

Sitemap

类用途
Bitrix\Seo\Sitemap\Internals\SitemapTableb_seo_sitemap 行:SITE_ID、ACTIVE、NAME、DATE_RUN、序列化的 SETTINGS
Bitrix\Seo\Sitemap\Job由 Agent 在后台构建:markToRegenerate()、addJob()、doJobAgent()、STATUS_*
Bitrix\Seo\Sitemap\Generator执行构建的一步: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) 会创建作业和一个 Agent(首次在 60 秒后运行,之后每秒运行一次),每次访问执行一步,直到完成。Agent 必须运行(生产环境使用 cron,或使用 bitrix-background-jobs)。

进程内构建(CLI、stepper):run() 每次执行约 13 秒的一步,只有出错时才返回 false。当 getStep() 达到 Step::STEPS[Step::STEP_INDEX] 时,构建即完成。每一步都创建新的 Generator,并像 Job::doStep() 一样传递步骤和状态;跨 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' 时,最后一步会自行将 Sitemap: 行添加到 robots.txt。

管理页面:/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\)属于产品集成;处理 Sitemap/robots 时请跳过。

重定向:此处没有 API

内核没有用于 301/302 规则的 SEO 表。不要臆造 SeoRedirectTable。

需求位置
爬取允许/禁止规则、Sitemap URLRobotsFile、Sitemap SETTINGS
开放重定向允许列表security 模块:CSecurityRedirect、Bitrix\Security\RedirectRuleTable
页面已迁移Web 服务器规则、路由(bitrix-routing),或组件中的 LocalRedirect

更改 URL 后:修复内容中的链接,调用 Job::markToRegenerate(),调整 robots。

检查清单

  • 使用 Sitemap/Robots/Engine 类之前,先调用 Loader::includeModule('seo')。
  • 通过 SitemapTable 管理 Sitemap 行;通过 Job 构建,或使用传递步骤和状态的 Generator 步骤循环。
  • 将 run() === false 作为错误处理,而非“还有更多步骤”。
  • 信息块元数据使用 InheritedProperty,而不是自定义的 b_seo_* 列。
  • 不要在 seo 中臆造重定向 CRUD。

评论

支持 Markdown