Why it matters
Temporary redirects tell search engines to keep the old URL indexed; for moved content the signals don't consolidate on the new URL.
How to fix it
Use 301/308 (permanent: true or permanentRedirect() in Next.js) when the move is permanent. Keep 302/307 for genuinely temporary states (locale negotiation, maintenance).
References
More seo rules
void seo reports 60 rules in this category. What search engines need from the raw response: status codes, titles and descriptions in <head>, self-referencing canonicals, one h1, crawlable links, Open Graph, icons, robots.txt and a sitemap with real dates.
http-statusPage does not return HTTP 200redirect-chainURL reaches its content through more than one redirectclient-redirectRedirect done with meta refresh or JavaScriptnoindexIndexable page carries noindexrobots-snippet-restrictednosnippet or a very low max-snippet limits previewssoft-404Missing page returns HTTP 200 (soft 404)html-too-largeUncompressed HTML is over Googlebot's 2 MB fetch limitrsc-payload-ratioInline RSC flight payload dominates the HTML