{"id":"ia.soft-404","name":"Soft-404 hygiene","verify":{"command":"curl -s -o /dev/null -w '%{http_code}\\n' https://{domain}/isagentready-missing-check","rescan":"isagentready results {domain} --checkpoint ia.soft-404","expect":"404 or 410"},"fix":{"steps":[{"action":"Request a random path that does not exist and record the status.","order":1,"language":null,"code_example":null},{"action":"Configure the server or the single-page app router to return 404 for unknown routes.","order":2,"language":"nginx","code_example":"location / {\n  try_files $uri $uri/ =404;\n}"},{"action":"Do not redirect unknown paths to the home page.","order":3,"language":null,"code_example":null}],"summary":"Answer unknown paths with HTTP 404 or 410, not with HTTP 200 or a redirect.","skill":{"name":"ai-content-discovery","anchor":"ia.soft-404"}},"category":"discovery","aggregate":null,"references":[{"title":"Google Search Central: soft 404 errors","kind":"guide","url":"https://developers.google.com/search/docs/crawling-indexing/http-network-errors#soft-404-errors"},{"title":"RFC 9110 section 15.5.5: 404 Not Found","kind":"spec","url":"https://www.rfc-editor.org/rfc/rfc9110#name-404-not-found"}],"expected":"HTTP 404 or 410 for a path that does not exist","stage":"read","lifecycle":{"introduced":"2026-08-25","revised":[],"retired":null,"replaced_by":null},"methodology_version":"2026-10-22","evidence_tier":"standard","evidence_source":{"title":"agentready.org AR-READ-02","url":"https://www.agentready.org/#read"},"why":"Agents and crawlers rely on a real 404 or 410 status to know a resource is missing. A 200 with the app shell (soft 404) makes them believe every probed path exists, pollutes indexes, and hides broken links from monitoring.","profiles":["ai_search_visibility","browser_agent_usability","api_tool_readiness"],"score_role":"core","legacy_id":"1.13","i18n":{"nl":{"name":"Soft-404-hygiene","steps":["Vraag een willekeurig pad op dat niet bestaat en noteer de status.","Stel de server of de router van de single-page app zo in dat onbekende routes 404 geven.","Stuur onbekende paden niet door naar de homepage."],"why":"Agents en crawlers vertrouwen op een echte 404- of 410-status om te weten dat een resource ontbreekt. Een 200 met de app-shell (soft 404) laat ze denken dat elk pad bestaat, vervuilt indexen en verbergt kapotte links.","fix_summary":"Beantwoord onbekende paden met HTTP 404 of 410, niet met HTTP 200 of een redirect.","verify_expect":"404 of 410"}},"ar_practice_ids":["AR-READ-02"],"strength":"MUST","ar_mapping":"full","evidence_type":"recommendation","detail_url":"https://isagentready.com/en/methodology/checkpoints/ia.soft-404","maturity":"recommended","applicability":{"mode":"always","condition":null,"surfaces":["website"]}}