Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Replace existing canonical tag with javascript or jquery

I'm wanting to create a widget for Adobe Muse that replaces the canonical tags that Muse automatically generates.

I know that this will not work with most bots because they don't run any scripts when crawling pages, but I have read that Google's bot does run scripts when it crawls.

I found many questions on how to replace the href from a links but I couldn't seem to find any questions on replacing the href URL of a canonical tag. I'm almost positive this is where I start... I just don't know how to finish it:

<script>
    $(document).ready(function() {
         $('link[rel=canonical]').attr('href' 'NEW_LINK');
    }
</script>
like image 549
John R Perry Avatar asked Mar 16 '15 00:03

John R Perry


2 Answers

$('link[rel="canonical"]').attr('href', 'NEW_HREF_GOES_HERE');
like image 102
Miguel Mota Avatar answered Nov 14 '22 15:11

Miguel Mota


And for those who are fans of vanilla JS:

const canonical = document.querySelector('link[rel="canonical"]');
if (canonical !== null) {
  canonical.href = 'NEW_HREF_GOES_HERE';
}

If cross-browser compatibility is important, and you're not using a transpiler, change const to var.

like image 33
crenshaw-dev Avatar answered Nov 14 '22 17:11

crenshaw-dev