). Reuse and de-duplicate // them instead of appending a second tag — two // triggers GSC "multiple canonical". var links = document.head.querySelectorAll('link[rel="canonical"]'); for (var i = 1; i < links.length; i++) links[i].parentNode.removeChild(links[i]); if (!links.length) { var c = document.createElement('link'); c.setAttribute('rel', 'canonical'); c.setAttribute('href', href); document.head.appendChild(c); } var metas = document.head.querySelectorAll('meta[property="og:url"]'); for (var j = 1; j < metas.length; j++) metas[j].parentNode.removeChild(metas[j]); if (!metas.length) { var o = document.createElement('meta'); o.setAttribute('property', 'og:url'); o.setAttribute('content', href); document.head.appendChild(o); } } catch (e) {} } // Wait for the full head to parse so prerendered tags are visible. if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', seed); } else { seed(); } })();