feat: add noindex meta tag to IP query result pages

This commit is contained in:
NetworkCats
2026-03-06 20:28:03 +08:00
parent 00c1b7028c
commit 512455bf72
3 changed files with 39 additions and 7 deletions
+3
View File
@@ -34,6 +34,7 @@ pub struct AppState {
struct IndexTemplate {
ip: String,
query: String,
is_query: bool,
site_domain: Arc<str>,
css_version: u64,
asn: String,
@@ -554,9 +555,11 @@ pub async fn root(
let t = build_translations(locale);
let is_query = query.ip.is_some();
let template = IndexTemplate {
ip: info.ip.clone(),
query: query.ip.unwrap_or_default(),
is_query,
site_domain: state.site_domain.clone(),
css_version: static_assets::asset_version("style.css"),
asn: format_asn(&info),
+6 -2
View File
@@ -3,10 +3,11 @@
{% block title %}{{ t_title }} - {{ site_domain }}{% endblock %}
{% block head_meta %}
{% if is_query %}
<meta name="robots" content="noindex, nofollow">
{% else %}
<meta name="description" content="{{ t_description }}">
<link rel="canonical" href="https://{{ site_domain }}/{{ lang_tag }}">
<meta name="theme-color" content="#007AFF" media="(prefers-color-scheme: light)">
<meta name="theme-color" content="#0A84FF" media="(prefers-color-scheme: dark)">
<meta property="og:title" content="{{ t_title }} - {{ site_domain }}">
<meta property="og:description" content="{{ t_description }}">
<meta property="og:type" content="website">
@@ -18,6 +19,9 @@
<link rel="alternate" hreflang="{{ l.tag() }}" href="https://{{ site_domain }}/{{ l.tag() }}">
{% endfor %}
<link rel="alternate" hreflang="x-default" href="https://{{ site_domain }}/">
{% endif %}
<meta name="theme-color" content="#007AFF" media="(prefers-color-scheme: light)">
<meta name="theme-color" content="#0A84FF" media="(prefers-color-scheme: dark)">
{% endblock %}
{% block head_preconnect %}
+30 -5
View File
@@ -674,11 +674,14 @@ async fn html_contains_seo_meta_tags() {
let app = build_test_app();
let (status, body) = get_with_headers(
&app,
"/en?ip=45.77.77.77",
vec![(
"User-Agent",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
)],
"/en",
vec![
(
"User-Agent",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
),
("CF-Connecting-IP", "45.77.77.77"),
],
)
.await;
assert_eq!(status, StatusCode::OK);
@@ -692,6 +695,28 @@ async fn html_contains_seo_meta_tags() {
assert!(body.contains("hreflang=\"en\""));
assert!(body.contains("hreflang=\"x-default\""));
assert!(body.contains("hreflang=\"es\""));
assert!(!body.contains("noindex"));
}
#[tokio::test]
async fn html_query_result_has_noindex() {
let app = build_test_app();
let (status, body) = get_with_headers(
&app,
"/en?ip=45.77.77.77",
vec![(
"User-Agent",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
)],
)
.await;
assert_eq!(status, StatusCode::OK);
assert!(body.contains("<meta name=\"robots\" content=\"noindex, nofollow\">"));
assert!(!body.contains("<meta name=\"description\""));
assert!(!body.contains("<link rel=\"canonical\""));
assert!(!body.contains("<meta property=\"og:title\""));
assert!(!body.contains("hreflang="));
assert!(body.contains("<meta name=\"theme-color\""));
}
#[tokio::test]