opensearch.xml 是用于声明网站站内搜索功能的标准 XML 文件,需置于根目录,并通过 标签在 HTML 中声明;其核心字段包括 ShortName、Description、Url(含 {searchTerms} 占位符)、InputEncoding 和 Language。
opensearch.xml 是一个标准的 XML 文件,用来告诉浏览器或搜索引擎:你的网站支持站内搜索,并提供搜索接口的元信息。它通常放在网站根目录(比如 https://example.com/opensearch.xml),用户在浏览器地址栏输入关键词后按 Tab 键,或在某些浏览器中点击搜索框时,就能直接用你的站内搜索。
一个最小可用的 `opensearch.xml` 至少包含以下元素:
{searchTerms} 占位符UTF-8
zh-CN 或 en-US
示例(适配中文网站):
我的博客 搜索本站所有文章 blog search admin@example.com UTF-8 zh-CN
关键在 标签里的 template 属性,它定义了用户搜索时浏览器实际发起的请求地址。
{searchTerms}(不能拼错,区分大小写)作为关键词占位符https://example.com/search?q={searchTerms}&site=blog
q、keyword、s 等)text/html;若提供 JSON API 可加 application/json,但浏览器只认 HTML 类型用于地址栏搜索常见错误:
{searchterm} 或 {query} → 浏览器无法替换,搜索失效
L 中没做 URL 编码 → 实际搜索含空格或特殊字符会出错(浏览器会自动编码,你只需写原始模板)/search?q=...)→ 必须是绝对 URL(含协议和域名)仅放好 `opensearch.xml` 不够,还需在网站每个页面的 `
` 中添加一行 link 标签:title 值要和 XML 里的 一致,否则部分浏览器可能忽略href 可以是绝对路径(/opensearch.xml)或完整 URL(https://example.com/opensearch.xml)Chrome、Firefox、Edge 等主流桌面浏览器都支持该机制(移动端支持有限)。
虽然不是必需,加上这些能让体验更完善:
tech blog documentation)type="image/x-icon" 和 width/height)带图标的完整示例片段:
https://example.com/favicon.ico
基本上就这些。不复杂但容易忽略细节,重点是 URL 模板写对、link 标签加对、XML 放对位置(根目录)。上线后可以用 Firefox 地址栏测试:输入域名回车 → 点击右上角搜索框下拉箭头 → 应该能看到你的站点名。