# Changelog of Google Custom Search API Alternative (Site Search) (`cleandata-labs/site-search`) Actor

- **URL**: https://apify.com/cleandata-labs/site-search/changelog.md
- **Full Actor documentation**: https://apify.com/cleandata-labs/site-search.md

## Changelog

### 0.3 (2026-10-31)

- **New: relevance test mode** (`mode: "relevance"`). Give a list of test queries, each with one or more expected URLs or URL prefixes, and get the rank of the expected page per query, hit@1, hit@3, hit@10 and MRR, plus the list of queries whose expected page is not in the top 10. Per-query rows go to the dataset, the summary to the `RELEVANCE_REPORT` record. Each test query is charged as one normal search. Works on existing indexes.
- **New: freshness fields in search results.** Each result now has `pagemap.sitesearch[0].lastCrawled` (when the page was last downloaded or confirmed unchanged) and, when known, `lastModified` (from the sitemap or the HTTP Last-Modified header). Every response has a new top-level `siteSearchIndex` object with the index name, page count, last update time, version and the oldest / newest crawl date. Applies to the Standby `/customsearch/v1` endpoint and to batch search mode (where the dataset rows also get `lastCrawled` and `lastModified`).
- All existing Google-format fields, inputs, defaults and prices are unchanged; the new data is added only, so existing clients keep working.
- Re-index runs now record a fresh crawl date for pages your server confirms unchanged with HTTP 304.
- README: documented both features; text cleaned up to plain ASCII.

### 0.2 (2026-10-30)

- Incremental re-index: only new or changed pages are re-indexed (sitemap lastmod, ETag / Last-Modified, content hash); unchanged pages are carried over at a lower price and removed pages (404/410) are dropped.
- Better ranking for real queries: partial matches when no page has all words, light typo correction, title / heading / URL boosts.
