A search result is not a live mirror of a website. Search engines keep their own copies, snippets and URL relationships and may continue to show old information after a page has changed.
It is therefore important to distinguish whether the old information still exists on the site, survives only in a cache or remains accessible through an old URL.
Open the URL directly and check the current HTML, canonical and HTTP status. Then check whether old URLs are still linked internally or listed in the sitemap. A search engine receives conflicting signals when the site itself still points to the old version.
Not always. During a controlled migration it can temporarily be useful for the old URL to keep showing current content with a canonical pointing to the new URL. Someone clicking an old result then does not see outdated content while the new URL is being discovered.
Once the new URL is stable and the move is intended to be permanent, a 301 is usually the clearest final signal.
With redirect('/new-url');, Nocterra can use the target page content internally without immediately sending a 301 or 302 to the browser. This makes it possible for the old URL to return current content temporarily while using the new URL as canonical.
For a genuine permanent redirect, redirect('/new-url', REDIRECT_PERMANENT); can be used later.
The search engine decides that. You can make the signals consistent and use any available re-indexing tools, but there is no reliable fixed timescale. Monitor both old and new URLs during the migration.