serpapi-performance-tuning

v2026.09.24

Measure and improve SerpAPI latency, payload size, connection reuse, caching, and concurrency without breaking freshness or allowance controls. Use when search performance misses an SLO. Trigger with "tune SerpAPI performance".

GitHub
Install command
npx skhub add jeremylongshore/serpapi-performance-tuning
Markdown
SKILL.md

SerpAPI Evidence-Driven Performance Tuning

Overview

Optimize the measured bottleneck while preserving result freshness, schema correctness, privacy, and account capacity.

Prerequisites

  • Engine-level latency histograms, payload sizes, error rates, cache hits, and search consumption
  • User-facing latency and freshness objectives plus an account throughput budget
  • Representative sanitized fixtures and a reversible canary environment

Tool Discipline

Use Read, Glob, and Grep to inspect call paths and instrumentation, WebFetch to verify current cache and output features, and Write or Edit for measurements, cache layers, field selection, tests, and rollback controls.

Current Contract

For an exactly matching parameter set, SerpAPI may serve its one-hour server cache; cached searches are free and do not count toward monthly searches. no_cache=true forces a fresh fetch and must not be combined with async. JSON Restrictor reduces selected JSON fields, and output=md provides token-efficient Markdown for agent use.

Authentication

Keep SERPAPI_KEY outside measurement labels, cache keys, traces, and profiles. Treat query values and result bodies according to their data classification.

Instructions

  1. Break total latency into queue, connection, vendor processing, transfer, parsing, and downstream rendering; record p50, p95, and p99.
  2. Confirm whether the workload needs structured JSON, restricted JSON, Markdown, or approved raw HTML.
  3. Normalize parameters and add an application cache whose key excludes credentials but includes every input that changes semantics.
  4. Align cache TTL with the freshness objective; allow the SerpAPI server cache unless a justified fresh-fetch requirement exists.
  5. Reuse the official Python client's pooled connections or the supported JavaScript client rather than creating ad hoc transports.
  6. Bound concurrency below the live Account API throughput and compare sequential, limited-parallel, and cached paths with fixtures or an approved canary.
  7. Promote only if latency improves without worse correctness, privacy, errors, 429s, or search consumption; retain rollback thresholds.

Output

Return the baseline profile, bottleneck, proposed and measured changes, cache-key/TTL contract, output format, capacity impact, canary results, and rollback thresholds.

Error Handling

ConditionResponse
Cache serves semantically wrong dataDisable the layer and expand the normalized key contract.
no_cache raises usage unexpectedlyRemove it unless the freshness requirement explicitly justifies fresh fetches.
Parallelism causes 429sReduce admissions and coordinate through the shared limiter.
Field restriction breaks parsingRestore required fields and lock the projection with fixtures.

Example

engine=google; baseline_p95=measured; bottleneck=payload; change=json-restrictor; freshness=1h; search_delta=0; schema-tests=pass; rollback=feature-flag

Resources

Next Steps

Observe a full traffic cycle and revisit the tuning decision when freshness, engine mix, or account capacity changes.

Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

MIT

Source path

skills/.curated/serpapi-performance-tuning

Default branch

main

Latest commit

e5a6c3b

Tree SHA

c2dc8e8