Skip to content

OnPage API:即时页面分析

POST /v3/on_page/instant_pages

本接口用于即时获取指定页面的 OnPage SEO 分析数据页面、数据、链接、资源、加载性能、结构化数据、拼写以及页面优化评分等信息。

请求方式与路径: POST /v3/on_page/instant_pages

本接口采用 Live 模式,提交请求后会直接返回任务结果,无需再调用 GET 接口查询任务状态。

计费说明

每次请求按处理任务计费。扣费以响应头 X-SeerMarTech-Charge-CNY 为准。

请求限制

平台限流以认证说明中的 30/60/120 次/分钟规则为准。

  • 单次 Live API 请求最多 20 个任务。
  • 单次请求中的 URL 最多来自 5 个相同域名。
  • 同时进行的请求数量最多为 30 个。
  • 当同一域名已有页面处于抓取队列中时,继续提交该域名的任务可能返回 40501 错误。建议在前一个任务尚未完成时重复提交相同域名。

所有 POST 请求体使用 UTF-8 编码的 JSON 数组格式:

json
[
  {
    "url": "https://example.com/page"
  }
]

请求参数

基础参数

参数类型说明
urlstring目标页面的绝对 URL。结果针对该 URL 返回。
custom_user_agentstring抓取页面时使用的自定义 User-Agent。默认值为 Mozilla/5.0 (compatible; RSiteAuditor)
accept_languagestring访问网站时使用的语言请求头。支持 xxxx-XXxxx-XX 等格式。未设置时,部分网站可能拒绝访问,页面可能以 resource_type: "broken" 返回。
store_raw_htmlboolean是否保存抓取页面的 HTML。设为 true 后,可通过 /v3/on_page/raw_html/ 获取原始 HTML。默认值:false
load_resourcesboolean是否加载图片、样式表、脚本及损坏资源。默认值:false。启用后可能产生额外费用。
disable_cookie_popupboolean是否禁用 Cookie 同意弹窗。默认值:false
return_despite_timeoutboolean页面在 120 秒未加载完成并发生时时,是否仍返回已获取的数据。默认值:false

浏览器与渲染参数

使用以下浏览器参数时,将 enable_javascriptenable_browser_rendering 设为 true

参数类型说明
browser_presetstring浏览器设备预设,可选值:desktopmobiletablet
browser_screen_widthinteger浏览器屏幕宽度,单位为像素,范围 2409999。设置后会忽略 browser_preset
browser_screen_heightinteger浏览器屏幕高度,单位为像素,范围 2409999。设置后会忽略 browser_preset
browser_screen_scale_factorfloat浏览器屏幕缩放比例,范围 0.53。设置后会忽略 browser_preset
enable_browser_renderingboolean是否模拟浏览器渲染,以测量 Core Web Vitals。启用后会自动启用 enable_javascriptload_resources。默认值:false
enable_javascriptboolean是否加载页面脚本。默认值:false
enable_xhrboolean是否页面通过 XMLHttpRequest 从服务器请求数据。启用此参数时,同时将 enable_javascript 设为 true。默认值:false

browser_preset 的预设值如下:

预设宽度高度缩放比例
desktop192010801
mobile3908443
tablet102413662

自定义脚本与校验参数

参数类型说明
custom_jsstring在页面中执行的自定义 JavaScript。脚本最长执行时间为 700 毫秒。返回值会写 custom_js_response,字段类型取决于脚本返回值。
validate_micromarkupboolean是否启用微数据校验。设为 true 后,可使用任务 ID 调用 /v3/on_page/microdata/。默认值:false
check_spellboolean是否使用 Hunspell 检查页面拼写。默认值:false
checks_thresholdarray自定义 checks 中检查项的阈值。只有整数阈值可以修改。

示例:获取页面 URL,并检查页面中是否存在指定脚本:

javascript
let meta = {
  pageUrl: document.URL,
  hasAnalytics: false,
  hasTagManager: false
};

for (const script of document.scripts) {
  const src = script.getAttribute("src") || "";

  if (src.includes("analytics.js")) {
    meta.hasAnalytics = true;
  }

  if (src.includes("gtm.js")) {
    meta.hasTagManager = true;
  }
}

meta;

如果脚本为:

javascript
meta = {};
meta.url = document.URL;
meta.test = "test";
meta;

custom_js_response 可能返回:

json
{
  "url": "https://example.com/page",
  "test": "test"
}

代理池参数

参数类型说明
switch_poolboolean是否切换代理池。大量任务并发执行时,如果偶发出现 rate-limitsite_unreachable 错误,可尝试启用。
ip_pool_for_scanstring指定抓取代理池位置。可选值:usde。当页面在某个区域无法访问时,可尝试切换位置。

请求示例

curl

bash
curl --location --request POST \
  "https://api.seermartech.cn/v3/on_page/instant_pages" \
  --header "Authorization: Bearer smt_live_YOUR_KEY" \
  --header "Content-Type: application/json" \
  --data-raw '[
    {
      "url": "https://example.com/page",
      "enable_javascript": true,
      "custom_js": "meta = {}; meta.url = document.URL; meta;"
    }
  ]'

Python

python
import requests

url = "https://api.seermartech.cn/v3/on_page/instant_pages"

headers = {
    "Authorization": "Bearer smt_live_YOUR_KEY",
    "Content-Type": "application/json",
}

payload = [
    {
        "url": "https://example.com/page",
        "enable_javascript": True,
        "custom_js": "meta = {}; meta.url = document.URL; meta;",
    }
]

response = requests.post(url, headers=headers, json=payload)
result = response.json()

if result.get("status_code") == 20000:
    print(result)
else:
    print(
        "请求失败,错误码:%s,错误信息:%s"
        % (result.get("status_code"), result.get("status_message"))
    )

TypeScript

typescript
import axios from "axios";

const payload = [
  {
    url: "https://example.com/page",
    enable_javascript: true,
    custom_js: "meta = {}; meta.url = document.URL; meta;",
  },
];

axios
  .post(
    "https://api.seermartech.cn/v3/on_page/instant_pages",
    payload,
    {
      headers: {
        Authorization: "Bearer smt_live_YOUR_KEY",
        "Content-Type": "application/json",
      },
    }
  )
  .then((response) => {
    // 处理接口结果
    console.log(response.data);
  })
  .catch((error) => {
    console.error("请求失败:", error.response?.data || error.message);
  });

响应结构

接口返回 JSON 数据,顶层 tasks 数组。

顶层字段

字段类型说明
versionstringAPI 当前版本。
status_codeinteger通用状态码。20000 表示成功。
status_messagestring通用状态信息。
timestring请求执行耗时,例如 0.9929 sec.
costfloat平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。
tasks_countintegertasks 数组中的任务数量。
tasks_errorinteger返回错误的任务数量。
tasksarray任务结果数组。

任务字段

字段类型说明
idstring任务唯一标识,UUID 格式。
status_codeinteger任务状态码。
status_messagestring任务状态信息。
timestring任务执行耗时。
costfloat平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。
result_countintegerresult 数组中的数量。
patharrayURL 路径信息。
dataobject创建任务时提交的参数。
resultarray页面分析结果数组。

结果字段

字段类型说明
crawl_progressstring抓取状态:in_progressfinished
crawl_statusobject/null抓取会话,部分场景下为 null
crawl_gateway_addressstring当前抓取会话使用的抓取 IP 地址。
total_items_countinteger数据库中项目的总数。
items_countinteger当前返回项目数量。
itemsarray页面、损坏资源、重定向资源或资源项目数组。

items 项目类型

HTML 页面:html_page

resource_typehtml 时,项目主要以下字段:

字段类型说明
resource_typestring资源类型,固定为 html
status_codeinteger页面 HTTP 状态码。
locationstringLocation 响应头中的重定向地址。
urlstring页面 URL。
metaobject页面数据与 OnPage 分析结果。
contentobject页面统计与可读性数据。
spellobject拼写检查结果。启用 check_spell 后返回。
social_media_tagsobject页面中的社交媒体标签及 Open Graph、Twitter Card 等。
page_timingobject页面加载和性能指标。
onpage_scorefloat页面 OnPage 优化评分,满分为 100。
total_dom_sizeinteger页面 DOM 总大小。
custom_js_responsestring/object/integer自定义 JavaScript 的执行结果。
custom_js_client_exceptionstring/null自定义 JavaScript 执行错误信息。
resource_errorsobject资源解析错误和警告。
broken_resourcesboolean页面是否损坏资源。
broken_linksboolean页面是否损坏链接。
duplicate_titleboolean页面是否存在重复 Title。
duplicate_descriptionboolean页面是否存在重复 Description。
duplicate_contentboolean页面是否存在重复。
click_depthinteger从首页到达该页面所需的点击层级。
sizeinteger页面原始大小,单位为字节。
encoded_sizeinteger编码后的页面大小,单位为字节。
total_transfer_sizeinteger压缩后的页面传输大小,单位为字节。
fetch_timestring资源抓取时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00
cache_controlobject页面缓存信息。
checksobject页面 OnPage 检查结果。
content_encodingstring编码类型。
media_typestring媒体类型,例如 text/html
serverstring服务器版本信息。
is_resourceboolean是否为单一资源。
last_modifiedobject/null资源变更信息。无数据时为 null
sitemapobject/nullSitemap 中的最后更新时间信息。无数据时为 null

页面数据:meta

字段类型说明
titlestring页面 Title。
charsetinteger页面字符编码,例如 65001
followboolean页面 meta robots 是否跟随链接。
generatorstringgenerator标签。
htagsobjectHTML 标题标签信息。
descriptionstringMeta Description。
faviconstring页面 Favicon 地址。
meta_keywordsstring/nullkeywords标签。
canonicalstringCanonical URL。
internal_links_countinteger页面链接数量。
external_links_countinteger页面外部链接数量。
inbound_links_countinteger指向当前页面的链接数量。
images_countinteger图片数量。
images_sizeinteger图片总大小,单位为字节。
scripts_countinteger脚本数量。
scripts_sizeinteger脚本总大小,单位为字节。
stylesheets_countinteger样式表数量。
stylesheets_sizeinteger样式表总大小,单位为字节。
title_lengthintegerTitle 字符数。
description_lengthintegerDescription 字符数。
render_blocking_scripts_countinteger阻塞页面渲染的脚本数量。
render_blocking_stylesheets_countinteger阻塞页面渲染的样式表数量。
cumulative_layout_shiftfloatCLS,累计布局偏移指标。
meta_titlestring/null页面 meta_title 信息。

###统计:content

字段类型说明
plain_text_sizeinteger页面纯文本总大小,单位为字节。
plain_text_rateinteger/float纯文本大小与页面总大小的比值。
plain_text_word_countfloat页面单词数量。
automated_readability_indexfloat自动可读性指数。
coleman_liau_readability_indexfloatColeman–Liau 可读性指数。
dale_chall_readability_indexfloatDale–Chall 可读性指数。
flesch_kincaid_readability_indexfloatFlesch–Kincaid 可读性指数。
smog_readability_indexfloatSMOG 可读性指数。
description_to_content_consistencyfloatDescription 与页面的一致性,范围 01
title_to_content_consistencyfloatTitle 与页面的一致性,范围 01
meta_keywords_to_content_consistencyfloat/nullMeta Keywords 与页面的一致性,范围 01
deprecated_tagsarray/null页面中的废弃标签。
duplicate_meta_tagsarray重复的标签。

拼写检查:spell

字段类型说明
hunspell_language_codestring拼写检查使用的语言代码。
misspelledarray拼写错误单词数组。
misspelled[].wordstring拼写错误的单词。

页面加载指标:page_timing

字段类型说明
time_to_interactiveintegerTTI,页面可交互耗时,单位为毫秒。
dom_completeinteger页面及子资源下载完成的时间,单位为毫秒。
largest_contentful_paintfloatLCP,最大可见的渲染耗时,单位为毫秒。
first_input_delayfloatFID,首次交互到浏览器响应的延迟,单位为毫秒。
connection_timeinteger建立服务器连接耗时,单位为毫秒。
time_to_secure_connectioninteger建立连接耗时,单位为毫秒。
request_sent_timeinteger请求发送耗时,单位为毫秒。
waiting_timeintegerTTFB,首字节耗时,单位为毫秒。
download_timeinteger浏览器接收响应耗时,单位为毫秒。
duration_timeinteger接收完整响应的总耗时,单位为毫秒。
fetch_startinteger开始下载 HTML 资源的时间。
fetch_endinteger完成下载 HTML 资源的时间。

缓存信息:cache_control

字段类型说明
cachableboolean页面或资源是否可缓存。
ttlinteger缓存生存时间。

页面检查项:checks

以下字段通常为布尔值,用于表示页面是否存在对应问题:

字段检查
no_content_encoding页面未使用压缩。
high_loading_time页面加载时间 3 秒。
is_redirect页面存在 3XX 重定向。
is_4xx_code页面返回 4XX 状态码。
is_5xx_code页面返回 5XX 状态码。
is_broken页面状态码小于 200 或大于 400。
is_www页面位于 www 子域名。
is_https页面使用 HTTPS。
is_http页面使用 HTTP。
high_waiting_timeTTFB过 1.5 秒。
has_micromarkup页面微数据标记。
has_micromarkup_errors页面微数据标记存在错误。
no_doctype页面缺少 DOCTYPE 声明。
has_html_doctype页面 HTML DOCTYPE 声明。
canonical页面 Canonical 检查通过。
no_encoding_meta_tag页面缺少编码标签。
no_h1_tag页面缺少或存在空的 H1 标签。
https_to_http_linksHTTPS 页面指向 HTTP 页面的链接。
size_greater_than_3mb页面大小 3 MB。
meta_charset_consistency页面字符集与声明的字符集不一致。
has_meta_refresh_redirect页面 Meta Refresh 重定向。
has_render_blocking_resources页面阻塞渲染的资源。
low_content_rate纯文本与页面大小的比值小于 0.1。
high_content_rate纯文本与页面大小的比值大于 0.9。
low_character_count页面字符数少于 1024。
high_character_count页面字符数 256,000。
small_page_size页面小于 1024 字节。
large_page_size页面大小 1 MB。
low_readability_rateFlesch–Kincaid 可读性评分低于 15。
irrelevant_descriptionDescription 与页面性低于 0.2。
irrelevant_titleTitle 与页面性低于 0.3。
irrelevant_meta_keywordsMeta Keywords 与页面性低于 0.6。
title_too_longTitle过 65 个字符。
has_meta_title页面 Meta Title。
title_too_shortTitle 少于 30 个字符。
deprecated_html_tags页面废弃 HTML 标签。
duplicate_meta_tags页面存在重复标签。
duplicate_title_tag页面存在多个 Title 标签。
no_image_alt图片缺少 alt 属性。
no_image_title图片缺少 title 属性。
no_description页面缺少或使用空 Description。
no_title页面缺少或使用空 Title。
no_favicon页面缺少 Favicon。
seo_friendly_urlURL 通过 SEO 友好性检查。
flash页面 Flash素。
frame页面 frameiframeframeset 标签。
lorem_ipsum页面 Lorem Ipsum 占位文本。
has_misspelling页面存在拼写错误。在启用 check_spell 时有效。
seo_friendly_url_characters_checkURL 使用拉丁字母、数字和短横线。
seo_friendly_url_dynamic_checkURL 不动态参数。
seo_friendly_url_keywords_checkURL 与 Title一致。
seo_friendly_url_relative_length_checkURL 相对路径不 120 个字符。

SEO 友好 URL 综合检查以下条件:

  • 相对路径长度小于 120 个字符;
  • 不特殊字符;
  • 不动态参数;
  • URL 与页面。

任一条件不满足时,seo_friendly_url 将被判定为不通过。

损坏页面:broken_page

当页面无法正常抓取或返回错误时,resource_typebroken,通常:

字段类型说明
resource_typestring固定为 broken
status_codeinteger页面状态码。
locationstring重定向地址。
urlstring页面 URL。
sizeinteger资源大小,单位为字节。
encoded_sizeinteger编码后的资源大小。
total_transfer_sizeinteger压缩后的传输大小。
fetch_timestring抓取时间,UTC 格式。
fetch_timingobject抓取耗时信息。
cache_controlobject缓存信息。
checksobject页面检查结果。
resource_errorsobject资源错误与警告。
content_encodingstring编码类型。
media_typestring媒体类型,例如 text/html
serverstring服务器版本。
is_resourceboolean是否为单一资源。
last_modifiedobject/nullHTTP Header 最后修改时间。
sitemapobject/nullSitemap 最后修改时间。
meta_tagstring/nullMeta 标签最后修改时间。

重定向页面:redirect_page

当页面发生重定向时,resource_typeredirect

字段类型说明
resource_typestring固定为 redirect
status_codeinteger页面状态码。
locationstring重定向目标 URL。
urlstring重定向源 URL。
sizeinteger资源大小。重定向资源通常为 0
encoded_sizeinteger编码后的资源大小。重定向资源通常为 0
total_transfer_sizeinteger压缩后的传输大小。
fetch_timestring抓取时间,UTC 格式。
fetch_timingobject抓取耗时信息。
resource_errorsobject资源错误与警告。
cache_controlobject缓存信息。
checksobject页面检查结果。
content_encodingstring编码类型。
media_typestring媒体类型。
serverstring服务器版本。
is_resourceboolean是否为单一资源。
last_modifiedobject/nullHTTP Header 最后修改时间。
sitemapobject/nullSitemap 最后修改时间。
meta_tagstring/nullMeta 标签最后修改时间。

资源:resources

如果首个抓取 URL 本身是脚本、图片或样式表,结果中可能返回资源项目。

resource_type 的可选值:

  • script
  • image
  • stylesheet

资源项目以下字段:

字段类型说明
resource_typestring资源类型。
metaobject资源数据。图片资源可 alternative_textalternative_text_variationstitlealternative_title_variations
status_codeinteger资源所在页面的状态码。
locationstring重定向地址。
urlstring资源 URL。
sizeinteger资源原始大小,单位为字节。
encoded_sizeinteger编码后的资源大小。
total_transfer_sizeinteger压缩后的资源传输大小。
fetch_timestring资源抓取时间,UTC 格式。
fetch_timingobject资源抓取耗时。
cache_controlobject资源缓存信息。
checksobject资源检查结果。
content_encodingstring编码类型。
media_typestring资源媒体类型。
accept_typestring预期资源类型,可选值 anynoneimagesitemaprobotsscriptstylesheetredirecthtmltextotherfont
serverstring服务器版本。
is_minifiedboolean脚本或样式表是否已压缩。适用于 scriptstylesheet
has_redirectboolean资源是否存在重定向。适用于脚本和图片。
has_subrequestsboolean脚本或样式表是否额外请求。
original_size_displayedboolean图片是否以原始尺寸展示。适用于图片。
resource_errorsobject资源错误与警告。
last_modifiedobject/nullHTTP Header 最后修改时间。
sitemapobject/nullSitemap 最后修改时间。
meta_tagstring/nullMeta 标签最后修改时间。

资源错误与警告

resource_errors 对象 errorswarnings 两个数组。

错误字段

字段类型说明
lineinteger错误所在行。
columninteger错误所在列。
messagestring错误文本。
status_codeinteger错误状态码。

错误状态码:

状态码含义
0未识别错误
501HTML 解析错误
1501JavaScript 解析错误
2501CSS 解析错误
3501图片解析错误
3502图片缩放值为零
3503图片尺寸为零
3504图片格式无效

警告字段

字段类型说明
lineinteger警告所在行。为 0 时表示警告针对整个页面。
columninteger警告所在列。为 0 时表示警告针对整个页面。
messagestring警告文本。
status_codeinteger警告状态码。

常见警告消息:

  • Has node with more than 60 childs.:页面存在同级嵌套 60 层的标签。
  • Has more that 1500 nodes.:DOM 树 1500 个。
  • HTML depth more than 32 tags.:HTML DOM 深度 32 层。

警告状态码:

状态码含义
0未识别警告
1节点子 60 个
2DOM 节点 1500 个
3HTML 深度 32 层

响应示例

以下示例展示成功响应的主要结构,返回字段会根据页面状态及请求参数有所不同。

json
{
  "version": "0.1.20220627",
  "status_code": 20000,
  "status_message": "Ok.",
  "time": "0.9929 sec.",
  "cost": 0.00025,
  "tasks_count": 1,
  "tasks_error": 0,
  "tasks": [
    {
      "id": "00000000-0000-0000-0000-000000000001",
      "status_code": 20000,
      "status_message": "Ok.",
      "time": "0.9929 sec.",
      "cost": 0.00025,
      "result_count": 1,
      "data": {
        "api": "on_page",
        "function": "instant_pages",
        "url": "https://example.com/page",
        "custom_js": "meta = {}; meta.url = document.URL; meta;"
      },
      "result": [
        {
          "crawl_progress": "finished",
          "total_items_count": 1,
          "items_count": 1,
          "items": [
            {
              "resource_type": "html",
              "status_code": 200,
              "url": "https://example.com/page",
              "meta": {
                "title": "示例页面",
                "description": "示例页面描述",
                "canonical": "https://example.com/page",
                "internal_links_count": 12,
                "external_links_count": 3,
                "images_count": 5,
                "scripts_count": 8,
                "title_length": 5,
                "description_length": 7
              },
              "content": {
                "plain_text_size": 2480,
                "plain_text_rate": 0.42,
                "plain_text_word_count": 432,
                "title_to_content_consistency": 0.71,
                "description_to_content_consistency": 0.47
              },
              "page_timing": {
                "time_to_interactive": 380,
                "dom_complete": 420,
                "largest_contentful_paint": 650,
                "first_input_delay": 0,
                "waiting_time": 120,
                "duration_time": 850
              },
              "onpage_score": 98.17,
              "broken_resources": false,
              "broken_links": false,
              "duplicate_title": false,
              "duplicate_description": false,
              "checks": {
                "is_https": true,
                "is_redirect": false,
                "is_4xx_code": false,
                "is_5xx_code": false,
                "no_title": false,
                "no_description": false,
                "no_h1_tag": false,
                "seo_friendly_url": true
              },
              "custom_js_response": {
                "url": "https://example.com/page"
              }
            }
          ]
        }
      ]
    }
  ]
}

错误处理

请根据顶层 status_code、任务级 status_code 以及 status_message 处理异常。建议对以下问题进行重试或记录:

  • 相同域名仍处于抓取队列;
  • 页面无法访问;
  • 页面返回 4XX 或 5XX;
  • 页面加载时;
  • 代理池或区域访问限制;
  • JavaScript、HTML、CSS 或图片解析失败。

完整错误码请参考 /v3/appendix/errors

实用场景

  • 批量审计落地页:获取 Title、Description、H1、Canonical、链接和页面评分,快速定位影响自然搜索表现的页面问题。
  • 监控 Core Web Vitals:启用浏览器渲染,采集 LCP、CLS、FID、TTI 和 TTFB,评估页面性能对 SEO 和用户体验的影响。
  • 检测技术 SEO 缺陷:识别重定向、4XX/5XX、缺少 HTTPS、缺少 H1、重复标签及不友好 URL,生成开发修复单。
  • 分析页面资源性能:统计脚本、样式表、图片的数量、大小、压缩状态和加载耗时,支持前端性能优化。
  • 提取页面自定义信号:执行自定义 JavaScript,检测分析、标签管理器或页面特定,为 SEO 监控和营销技术治理提供数据。

统一入口:官网 · LLM API · 控制台