
  <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
      <title>Kamil Owczarek | Senior Full-Stack Engineer</title>
      <link>https://whoisarjen.com/blog</link>
      <description>Senior Full-Stack Engineer specializing in high-performance e-commerce, scalable architecture, and performance optimization. TypeScript, React, Next.js, Vue, Nuxt, PostgreSQL, Redis.</description>
      <language>en-us</language>
      <managingEditor>kamilow97@gmail.com (Kamil Owczarek)</managingEditor>
      <webMaster>kamilow97@gmail.com (Kamil Owczarek)</webMaster>
      <lastBuildDate>Mon, 06 Apr 2026 09:00:00 GMT</lastBuildDate>
      <atom:link href="https://whoisarjen.com/tags/vuejs/feed.xml" rel="self" type="application/rss+xml"/>
      
  <item>
    <guid>https://whoisarjen.com/blog/history-replacestate-vs-router-replace-url-canonicalization</guid>
    <title>Stop Using Router.replace() for URL Canonicalization — Use History.replaceState() Instead</title>
    <link>https://whoisarjen.com/blog/history-replacestate-vs-router-replace-url-canonicalization</link>
    <description>We were burning full Vue Router navigation cycles just to fix slug URLs on product pages. Replacing router.replace() with history.replaceState() eliminated wasted re-renders, fixed broken SEO meta tags, and cut client-side canonicalization to a single DOM-free call.</description>
    <pubDate>Mon, 06 Apr 2026 09:00:00 GMT</pubDate>
    <author>kamilow97@gmail.com (Kamil Owczarek)</author>
    <category>Vue.js</category><category>Performance</category><category>SEO</category><category>Nuxt</category><category>URL Canonicalization</category><category>SSR</category><category>Router</category>
  </item>

    </channel>
  </rss>
