$ headless-seo-check http://127.0.0.1:4311 -a --verbose --json --- stdout+stderr --- headless-seo-check: checking http://127.0.0.1:4311 … headless-seo-check: 23 URLs pointed at another host, checked on 127.0.0.1:4311 instead headless-seo-check: 23 of 23 URLs selected, from http://127.0.0.1:4311/sitemap.xml { "tool": "headless-seo-check", "version": "0.1.0", "checked_at_unix": 1786210243, "interrupted": false, "notes": [], "fatal": null, "site": "http://127.0.0.1:4311", "discovery": { "source": "http://127.0.0.1:4311/sitemap.xml", "total": 23, "checked": 23, "rebased": "23 URLs pointed at another host, checked on 127.0.0.1:4311 instead" }, "pages": [ { "url": "http://127.0.0.1:4311/", "outcome": "checked", "status": 200, "ttfb_ms": 2, "render_mode": "static", "words": 324, "internal_links": 17, "findings": [ { "kind": "canonical-missing", "severity": "warn", "message": "no canonical link in the served HTML" } ] }, { "url": "http://127.0.0.1:4311/static", "outcome": "checked", "status": 200, "ttfb_ms": 2, "render_mode": "static", "words": 325, "internal_links": 17, "findings": [ { "kind": "canonical-missing", "severity": "warn", "message": "no canonical link in the served HTML" } ] }, { "url": "http://127.0.0.1:4311/force-dynamic", "outcome": "checked", "status": 200, "ttfb_ms": 3, "render_mode": "dynamic", "words": 323, "internal_links": 17, "findings": [ { "kind": "dynamic-render", "severity": "error", "message": "rendered on every request, never cached at the edge", "detail": [ "cache-control: private, no-cache, no-store, max-age=0, must-revalidate" ] }, { "kind": "canonical-missing", "severity": "warn", "message": "no canonical link in the served HTML" } ] }, { "url": "http://127.0.0.1:4311/isr", "outcome": "checked", "status": 200, "ttfb_ms": 2, "render_mode": "static", "words": 324, "internal_links": 17, "findings": [ { "kind": "canonical-missing", "severity": "warn", "message": "no canonical link in the served HTML" } ] }, { "url": "http://127.0.0.1:4311/noindex-meta", "outcome": "checked", "status": 200, "ttfb_ms": 2, "render_mode": "static", "words": 324, "internal_links": 17, "findings": [ { "kind": "noindex-meta", "severity": "warn", "message": " says noindex, yet this URL is offered for crawling", "detail": [ "" ] }, { "kind": "canonical-missing", "severity": "warn", "message": "no canonical link in the served HTML" } ] }, { "url": "http://127.0.0.1:4311/noindex-header", "outcome": "checked", "status": 200, "ttfb_ms": 1, "render_mode": "static", "words": 326, "internal_links": 17, "findings": [ { "kind": "noindex-header", "severity": "error", "message": "blocked from indexing by a response header that does not appear in the page source", "detail": [ "X-Robots-Tag: noindex, nofollow" ] }, { "kind": "canonical-missing", "severity": "warn", "message": "no canonical link in the served HTML" } ] }, { "url": "http://127.0.0.1:4311/noindex-conflict", "outcome": "checked", "status": 200, "ttfb_ms": 0, "render_mode": "static", "words": 325, "internal_links": 17, "findings": [ { "kind": "noindex-header", "severity": "error", "message": "blocked from indexing by a response header that does not appear in the page source", "detail": [ "X-Robots-Tag: noindex, nofollow" ] }, { "kind": "indexability-conflict", "severity": "error", "message": "the header and the HTML disagree about indexing, and the header is the one that counts", "detail": [ "X-Robots-Tag: noindex, nofollow", "" ] }, { "kind": "canonical-missing", "severity": "warn", "message": "no canonical link in the served HTML" } ] }, { "url": "http://127.0.0.1:4311/canonical-self", "outcome": "checked", "status": 200, "ttfb_ms": 2, "render_mode": "static", "words": 324, "internal_links": 17, "findings": [] }, { "url": "http://127.0.0.1:4311/canonical-other", "outcome": "checked", "status": 200, "ttfb_ms": 1, "render_mode": "static", "words": 327, "internal_links": 17, "findings": [ { "kind": "canonical-elsewhere", "severity": "info", "message": "canonical points at another page", "detail": [ "http://127.0.0.1:4311/static" ] } ] }, { "url": "http://127.0.0.1:4311/hreflang-good", "outcome": "checked", "status": 200, "ttfb_ms": 0, "render_mode": "static", "words": 324, "internal_links": 17, "findings": [] }, { "url": "http://127.0.0.1:4311/hreflang-drift", "outcome": "checked", "status": 200, "ttfb_ms": 0, "render_mode": "static", "words": 324, "internal_links": 17, "findings": [ { "kind": "hreflang-drift", "severity": "error", "message": "the Link: header and the HTML advertise different URLs for 1 language", "detail": [ "fr header: http://127.0.0.1:4311/fr/hreflang-drift", "fr HTML: http://127.0.0.1:4311/fr/slug-traduit", "fr the header target answers HTTP 200" ] } ] }, { "url": "http://127.0.0.1:4311/hreflang-dead", "outcome": "checked", "status": 200, "ttfb_ms": 0, "render_mode": "static", "words": 327, "internal_links": 17, "findings": [] }, { "url": "http://127.0.0.1:4311/hreflang-drift-dead", "outcome": "checked", "status": 200, "ttfb_ms": 0, "render_mode": "static", "words": 327, "internal_links": 17, "findings": [ { "kind": "hreflang-drift", "severity": "error", "message": "the Link: header and the HTML advertise different URLs for 1 language", "detail": [ "fr header: http://127.0.0.1:4311/fr/nexiste-pas", "fr HTML: http://127.0.0.1:4311/fr/slug-traduit", "fr the header target does not exist (HTTP 404)" ] }, { "kind": "hreflang-dead-target", "severity": "error", "message": "1 hreflang target in the Link: header do not exist", "detail": [ "fr http://127.0.0.1:4311/fr/nexiste-pas — does not exist (HTTP 404)" ] } ] }, { "url": "http://127.0.0.1:4311/hreflang-html-only", "outcome": "checked", "status": 200, "ttfb_ms": 0, "render_mode": "static", "words": 325, "internal_links": 17, "findings": [] }, { "url": "http://127.0.0.1:4311/shell", "outcome": "checked", "status": 200, "ttfb_ms": 0, "render_mode": "static", "words": 0, "internal_links": 0, "findings": [ { "kind": "canonical-missing", "severity": "warn", "message": "no canonical link in the served HTML" }, { "kind": "empty-server-html", "severity": "error", "message": "the served HTML carries 0 words — Googlebot has to run JavaScript to see this page", "detail": [ "7