Canonical and metadata
Populate metadata in the layout/template for each public page; do not rely only on client-side head updates. Point each page's canonical at its own clean URL (consolidating tracking/variant query parameters), keep `og:url` consistent with that canonical, add all four required `og:*` properties, and remove `noindex` from pages that should be available to agents.
Canonical and metadata
- Категория
- Обнаруживаемость
- Remediation key
- canonical_metadata_incomplete
- URL
- https://api.starveri.net/
HTML contains a server-rendered `<title>`, meta description, a self-referential canonical link, and the four required Open Graph properties (`og:title`, `og:type`, `og:image`, `og:url`) consistent with the canonical and not marked `noindex`.
Populate metadata in the layout/template for each public page; do not rely only on client-side head updates. Point each page's canonical at its own clean URL (consolidating tracking/variant query parameters), keep `og:url` consistent with that canonical, add all four required `og:*` properties, and remove `noindex` from pages that should be available to agents.
Промпт для AI-агента
You are a senior web developer. Improve api.starveri.net for AI agents. Task: add or repair support for Canonical and metadata (canonical_metadata). Current check result:
{"evidence":{"final_url":"https://api.starveri.net/credits","headers":{"content-type":"text/html; charset=utf-8","vary":"Origin"},"inconsistent_fields":[],"items":[{"type":"canonical_url","value":"https://api.starveri.net/credits"},{"type":"title","value":"Starveri API Credits"},{"type":"meta_description","value":"Buy prepaid Starveri API credits for OpenAI-compatible GPT and Codex chat completions at 1/3 OpenAI-style pricing. Includes model discovery, API keys, tier limits, and a text-only GPT 5.5 demo."},{"type":"open_graph.description","value":"OpenAI-compatible GPT/Codex API credits, public model discovery, and prepaid keys at 1/3 OpenAI-style pricing."},{"type":"open_graph.site_name","value":"Starveri API"},{"type":"open_graph.title","value":"Starveri API Credits"},{"type":"open_graph.type","value":"website"},{"type":"open_graph.url","value":"https://api.starveri.net/credits"}],"malformed_fields":[],"metadata":{"canonical_self_reference":true,"canonical_url":"https://api.starveri.net/credits","description_length":193,"meta_description":"Buy prepaid Starveri API credits for OpenAI-compatible GPT and Codex chat completions at 1/3 OpenAI-style pricing. Includes model discovery...Expected result: HTML contains a server-rendered `<title>`, meta description, a self-referential canonical link, and the four required Open Graph properties (`og:title`, `og:type`, `og:image`, `og:url`) consistent with the canonical and not marked `noindex`.. Fix guidance: Populate metadata in the layout/template for each public page; do not rely only on client-side head updates. Point each page's canonical at its own clean URL (consolidating tracking/variant query parameters), keep `og:url` consistent with that canonical, add all four required `og:*` properties, and remove `noindex` from pages that should be available to agents.. Stack templates: - Generic web server: serve canonical and metadata tags from the public web root or a route, with the correct status, `Content-Type`, and cache policy. - Nginx: add a `location`/`add_header` for canonical and metadata tags; verify `try_files`, redirects, and that private upstreams are not exposed. - Apache: configure `Alias`, `Header set`, or a rewrite rule for canonical and metadata tags; check `.htaccess` and virtual host precedence. - Next.js: use `public/`, route handlers, Metadata API, or middleware for canonical and metadata tags; do not disable SSR/SSG for public content. - Nuxt: use `public/`, server routes, `useHead`/Nitro middleware for canonical and metadata tags; verify prerender/SSR output. - Laravel: add a route/controller, Blade metadata, or middleware headers for canonical and metadata tags; do not bypass auth/authorization for private routes. - Django: add a `urls.py` route/view, template metadata, or middleware headers for canonical and metadata tags; verify `ALLOWED_HOSTS` and cache behavior. - WordPress: implement canonical and metadata tags via theme/plugin hooks, SEO plugin settings, or a static file; do not edit core files. - Bitrix: add canonical and metadata tags via the site template, component, or web server config; verify composite cache and multi-site rules. - Static hosting: add canonical and metadata tags as a static asset or platform headers file (`_headers`, `vercel.json`, `netlify.toml`). - Headless CMS: generate canonical and metadata tags in the delivery layer/edge app from published content; do not expose draft or admin APIs. Constraints: do not break SEO; do not expose private endpoints; preserve SSRF/redirect safety; do not add remote JS execution to the scanner; add tests. Return a patch/diff and a short explanation.
Evidence JSON
{ "items": [ { "type": "canonical_url", "value": "https://api.starveri.net/credits" }, { "type": "title", "value": "Starveri API Credits" }, { "type": "meta_description", "value": "Buy prepaid Starveri API credits for OpenAI-compatible GPT and Codex chat completions at 1/3 OpenAI-style pricing. Includes model discovery, API keys, tier limits, and a text-only GPT 5.5 demo." }, { "type": "open_graph.description", "value": "OpenAI-compatible GPT/Codex API credits, public model discovery, and prepaid keys at 1/3 OpenAI-style pricing." }, { "type": "open_graph.site_name", "value": "Starveri API" }, { "type": "open_graph.title", "value": "Starveri API Credits" }, { "type": "open_graph.type", "value": "website" }, { "type": "open_graph.url", "value": "https://api.starveri.net/credits" } ], "headers": { "vary": "Origin", "content-type": "text/html; charset=utf-8" }, "snippet": "<!doctype html> <html lang=\"en\"> <head> <meta charset=\"utf-8\"> <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"> <title>Starveri API Credits</title> <meta name=\"description\" content=\"Buy prepaid Starveri API credits for OpenAI-compatible GPT and Codex chat completions at 1/3 OpenA", "metadata": { "title": "Starveri API Credits", "twitter": { "card": "summary", "title": "Starveri API Credits", "description": "Prepaid OpenAI-compatible GPT/Codex API credits at 1/3 OpenAI-style pricing." }, "open_graph": { "url": "https://api.starveri.net/credits", "type": "website", "title": "Starveri API Credits", "site_name": "Starveri API", "description": "OpenAI-compatible GPT/Codex API credits, public model discovery, and prepaid keys at 1/3 OpenAI-style pricing." }, "title_length": 20, "canonical_url": "https://api.starveri.net/credits", "meta_description": "Buy prepaid Starveri API credits for OpenAI-compatible GPT and Codex chat completions at 1/3 OpenAI-style pricing. Includes model discovery, API keys, tier limits, and a text-only GPT 5.5 demo.", "description_length": 193, "canonical_self_reference": true }, "final_url": "https://api.starveri.net/credits", "redirects": [ { "url": "https://api.starveri.net/", "location": "/credits", "status_code": 302 } ], "status_code": 200, "requested_url": "https://api.starveri.net/", "malformed_fields": [], "inconsistent_fields": [] }{ "has_canonical": true, "has_open_graph": true, "metadata_item_count": 8 }"canonical_metadata_incomplete""Some metadata was found, but canonical/basic/Open Graph coverage is incomplete.""partial"