> ## Documentation Index
> Fetch the complete documentation index at: https://aisa.one/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# OnPage API 不可索引页面

> 爬取到但搜索引擎不会收录的页面，每条含 reason 和 url。

爬取到但搜索引擎不会收录的页面，每条含 `reason` 和 `url`。实测 588 字节。读的是一次已完成的爬取，因此需要 `post_dataforseo_on_page_submit` 返回的 `id`，并会带回 `crawl_progress` 和 `crawl_status`（`max_crawl_pages`、`pages_in_queue`、`pages_crawled`）——结果偏少时先看这几个字段，爬取还在跑就是本来没那么多。 **`reason` 才是重点**——noindex、canonical 指向别处、被 robots 挡住，症状一样但完全是三个问题。## 示例

<CodeGroup>
  ```bash REST theme={null}
  curl -X POST "https://api.aisa.one/apis/v1/dataforseo/on_page/non_indexable" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -d '[{"id": "...", "limit": "...", "offset": "..."}]'
  ```

  ```jsonc MCP theme={null}
  // 把整段复制给 Claude Code、Codex、Cursor 或任意 coding agent。
  // 连接、授权、跑通这个例子需要的东西都在里面 ——
  // 不用粘贴任何 key，浏览器里点一次 Allow 就好。
  {
    "operation_id": "post_dataforseo_on_page_non_indexable",
    "arguments": {},
    "max_price_usd": 0.05
  }
  // ── for the agent ─────────────────────────────────────────────────────────
  // Register the AIsa MCP server, then call its `use` tool with the JSON above.
  //   name       aisa
  //   endpoint   https://mcp.aisa.one/mcp
  //   transport  streamable-http
  //   auth       OAuth. The server publishes RFC 9728 metadata, so open a
  //              browser and the user clicks Allow once — nothing to paste.
  //              If AISA_API_KEY is set, send it as a bearer header instead.
  // Use your own MCP mechanism, not a hand-edited config file:
  //   Codex        codex mcp add aisa --url https://mcp.aisa.one/mcp
  //   Claude Code  claude mcp add --transport http -s user aisa https://mcp.aisa.one/mcp
  //   Cursor / VS Code   a "url" entry for https://mcp.aisa.one/mcp in the MCP config
  // The server lists five tools over https://mcp.aisa.one/servers worth of APIs:
  // search, get_details, use, batch_use, list_categories. search and
  // get_details are free; use is billed per call and max_price_usd refuses
  // anything above the cap before spending. This operation's full contract —
  // every argument, the response shape, the price and the pitfalls — is at
  //   https://aisa.one/docs/zh/api-reference/dataforseo/post_dataforseo-on-page-non-indexable.md
  // Then run the call and show me the result.
  ```
</CodeGroup>

<Note>
  **第一次用？** 把任意 MCP 客户端指向 `https://mcp.aisa.one/mcp` —— Claude Code、
  Codex、Cursor、VS Code 都可以。鉴权走 OAuth：客户端打开浏览器，你点一次
  Allow，不需要粘贴任何 key。各客户端的具体命令和每次调用的价格见
  [aisa.one/zh-cn/mcp](https://aisa.one/zh-cn/mcp#connect)。
</Note>

[在你的 agent 里把这个端点跑起来 →](https://aisa.one/mcp?from=/zh/api-reference/dataforseo/post_dataforseo-on-page-non-indexable)


## OpenAPI

````yaml openapi/zh/dataforseo.json POST /dataforseo/on_page/non_indexable
openapi: 3.0.3
info:
  title: DataForSEO API
  version: 1.0.0
  description: 通过 AIsa 统一网关提供的 DataForSEO API 端点。
servers:
  - url: https://api.aisa.one/apis/v1
security:
  - BearerAuth: []
paths:
  /dataforseo/on_page/non_indexable:
    post:
      summary: OnPage API 不可索引页面
      description: >-
        爬取到但搜索引擎不会收录的页面，每条含 `reason` 和 `url`。实测 588 字节。读的是一次已完成的爬取，因此需要
        `post_dataforseo_on_page_submit` 返回的 `id`，并会带回 `crawl_progress` 和
        `crawl_status`（`max_crawl_pages`、`pages_in_queue`、`pages_crawled`）——结果偏少时先看这几个字段，爬取还在跑就是本来没那么多。
        **`reason` 才是重点**——noindex、canonical 指向别处、被 robots 挡住，症状一样但完全是三个问题。
      operationId: post_dataforseo_on_page_non_indexable
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    description: >-
                      任务 ID，必填字段；您可以从 Task POST 端点的响应中获取此
                      ID。示例：“07131248-1535-0216-1000-17384017ad04”
                  limit:
                    type: integer
                    description: 返回页面的最大数量，可选字段，默认值：100，最大值：1000
                  offset:
                    type: integer
                    description: >-
                      返回的页面在结果数组中的偏移量。可选字段。默认值：0。如果指定值
                      10，结果数组中的前十个页面将被忽略，并提供后续页面的数据
                  filters:
                    type: array
                    items: {}
                    description: >-
                      结果筛选参数数组。可选字段。你可以同时添加多个筛选条件（最多 8 个）。应在条件之间设置逻辑运算符
                      and、or。支持以下运算符：regex、not_regex、 、 、>、>=、=、
                      、in、not_in、like、not_like。你可以将 % 运算符与 like 和 not_like
                      搭配使用，以匹配包含零个或多个字符的任意字符串。示例：["reason","=","robots_txt"][["reason","","robots_txt"],
                      "and", ["url","not_like","%/wp-admin/%"]]
                      [["url","not_like","%/wp-admin/%"], "and",
                      [["reason","","meta_tag"],"or",["reason","","http_header"]]]
                      可通过此链接查看所有可用筛选条件。
                required:
                  - id
      responses:
        '200':
          description: 成功响应
          content:
            application/json:
              schema:
                type: object
                properties:
                  version:
                    type: string
                    description: API 的当前版本
                  status_code:
                    type: integer
                    description: 通用状态码；您可以在此处查看完整的响应码列表。注意：我们强烈建议设计必要的系统来处理相关异常或错误情况
                  status_message:
                    type: string
                    description: 常规信息消息；可在此处查看常规信息消息的完整列表
                  time:
                    type: string
                    description: 执行时间（秒）
                  cost:
                    type: number
                    description: 任务总成本（美元）
                  tasks_count:
                    type: integer
                    description: tasks 数组中的任务数量
                  tasks_error:
                    type: integer
                    description: 返回错误的 tasks 数组中的任务数量
                  tasks:
                    type: array
                    items:
                      type: string
                    description: 任务数组
                  tasks.id:
                    type: string
                    description: 任务标识符，系统中采用 UUID 格式的唯一任务标识符
                  tasks.status_code:
                    type: integer
                    description: DataForSEO 生成的任务状态码；范围为：10000-60000；完整响应代码列表可在此处查看
                  tasks.status_message:
                    type: string
                    description: 任务的信息性消息，你可以在此处查看通用信息性消息的完整列表
                  tasks.time:
                    type: string
                    description: 执行时间（秒）
                  tasks.cost:
                    type: number
                    description: 任务成本（美元）
                  tasks.result_count:
                    type: integer
                    description: 结果数组中的元素数量
                  tasks.path:
                    type: array
                    items:
                      type: string
                    description: URL 路径
                  tasks.data:
                    type: object
                    description: 包含您在 POST 请求中指定的相同参数
                  tasks.result:
                    type: array
                    items:
                      type: string
                    description: 结果数组
                  tasks.result.crawl_progress:
                    type: string
                    description: 抓取会话的状态，可能的值：in_progress、finished
                  tasks.result.crawl_status:
                    type: object
                    description: 抓取会话的详细信息
                  tasks.result.crawl_status.max_crawl_pages:
                    type: integer
                    description: 最大抓取页面数，表示设置任务时指定的 max_crawl_pages 限制
                  tasks.result.crawl_status.pages_in_queue:
                    type: integer
                    description: 当前位于抓取队列中的页面数量
                  tasks.result.crawl_status.pages_crawled:
                    type: integer
                    description: 已抓取页面数
                  tasks.result.total_items_count:
                    type: integer
                    description: 数据库中相关项目的总数
                  tasks.result.items_count:
                    type: integer
                    description: results 数组中的项目数量
                  tasks.result.items:
                    type: array
                    items:
                      type: string
                    description: items 数组
                  tasks.result.reason:
                    type: string
                    description: >-
                      页面不可编入索引的原因，可以采用以下值：robots_txt, meta_tag, http_header,
                      attribute, too_many_redirects
                  tasks.result.url:
                    type: string
                    description: 不可索引页面的 url
        '400':
          description: 错误请求
        '401':
          description: 未授权
        '429':
          description: 超出速率限制
        '500':
          description: 内部服务器错误
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.