Skip to content
Advertisement

41 Bookmarklets to Boost Your Productivity

Amit YadavAmit Yadav···6 min read
Bookmarklet icons and browser bookmark bar on a laptop screen

A bookmarklet is a bookmark whose URL starts with javascript:. Click it on any page and the code runs in that tab. No extension install, no background process, and they sync with your browser like normal bookmarks.

See also productive Chrome tips, backup and export Chrome bookmarks, and enable right-click when sites block it.

How to save a bookmarklet

how to install bookmarklet

Select the javascript: line under any entry, drag it to the bookmarks bar, or create a new bookmark and paste the code as the URL. Test on a harmless page first. Bookmarklet.one helps wrap your own scripts if you write custom code.

Best bookmarklets to keep

4. Indexed Pages Count

SEO

Shows how many pages Google has indexed for the current hostname.

javascript:location="https://www.google.com/search?num=100&q=site:"+escape(location.hostname);void 0

5. Enable Right Click

Unblock

Removes a site's oncontextmenu block so you can open the context menu again. More options in our right-click guide.

javascript:void(document.oncontextmenu=null)

6. Website Stack (Wappalyzer)

Dev tools

Loads the Wappalyzer bookmarklet overlay to list CMS, CDN, analytics, and frameworks on the current page.

javascript:(function(){var d=document,e=d.getElementById('wappalyzer-container');if(e!==null){d.body.removeChild(e)}var u='https://www.wappalyzer.com/',c=d.createElement('div'),l=d.createElement('link'),s=d.createElement('script');c.setAttribute('id','wappalyzer-container');l.setAttribute('rel','stylesheet');l.setAttribute('href',u+'css/bookmarklet.css');d.head.appendChild(l);s.setAttribute('src',u+'bookmarklet/wappalyzer.js');s.onload=function(){window.wappalyzer=new Wappalyzer();s=d.createElement('script');s.setAttribute('src',u+'bookmarklet/apps.js');s.onload=function(){s=d.createElement('script');s.setAttribute('src',u+'bookmarklet/driver.js');c.appendChild(s)};c.appendChild(s)};c.appendChild(s);d.body.appendChild(c)})();

7. BugMeNot

Login skip

Opens BugMeNot for the current domain to find shared logins for registration walls. Use only on sites whose terms you accept.

javascript:(function(){var url='https://bugmenot.com/view/'+escape(location.hostname);w=open(url,'w','location=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=500,height=400');if(w){setTimeout('w.focus()',1000)}else{location=url}})();

8. Web to PDF

Export

Sends the current page URL to Web2PDFConvert. Pages behind a login wall usually fail.

javascript:void(window.open('https://www.web2pdfconvert.com#'+location.href))

9. URL to QR Code

Share

Opens a QR code for the current page. Uses QuickChart because Google's old Chart API QR endpoint was shut down. You can also use our QR generator tool.

javascript:(function(){var u='https://quickchart.io/qr?text='+encodeURIComponent(location.href);w=open(u,'w','location=no,status=yes,menubar=no,scrollbars=no,resizable=yes,width=500,height=500');if(w){setTimeout('w.focus()',1000)}else{location=u}})();

10. Enable Text Selection

Unblock

Strips event handlers that block selecting and copying text on restrictive pages.

javascript:(function(){function R(a){ona="on"+a;if(window.addEventListener)window.addEventListener(a,function(e){for(var n=e.originalTarget;n;n=n.parentNode)n[ona]=null},true);window[ona]=null;document[ona]=null;if(document.body)document.body[ona]=null}R("click");R("mousedown");R("mouseup");R("selectstart")})()

11. View Password

Forms

Shows values stored in password fields on the current page. Only run on pages you trust.

javascript:(function(){var s,F,j,f,i;s="";F=document.forms;for(j=0;j<F.length;++j){f=F[j];for(i=0;i<f.length;++i){if(f[i].type.toLowerCase()=="password")s+=f[i].value+"\n"}}if(s)alert("Passwords in forms on this page:\n\n"+s);else alert("There are no passwords in forms on this page.")})();

12. Sort Table

Tables

Adds sort links to every HTML table on the page. Try it on the W3Schools table demo.

javascript:function toArray(c){var a,k;a=new Array;for(k=0;k<c.length;++k)a[k]=c[k];return a}function insAtTop(par,child){if(par.childNodes.length)par.insertBefore(child,par.childNodes[0]);else par.appendChild(child)}function countCols(tab){var nCols,i;nCols=0;for(i=0;i<tab.rows.length;++i)if(tab.rows[i].cells.length>nCols)nCols=tab.rows[i].cells.length;return nCols}function makeHeaderLink(tableNo,colNo,ord){var link;link=document.createElement('a');link.href='javascript:sortTable('+tableNo+','+colNo+','+ord+');';link.appendChild(document.createTextNode((ord>0)?'a':'d'));return link}function makeHeader(tableNo,nCols){var header,headerCell,i;header=document.createElement('tr');for(i=0;i<nCols;++i){headerCell=document.createElement('td');headerCell.appendChild(makeHeaderLink(tableNo,i,1));headerCell.appendChild(document.createTextNode('/'));headerCell.appendChild(makeHeaderLink(tableNo,i,-1));header.appendChild(headerCell)}return header}g_tables=toArray(document.getElementsByTagName('table'));if(!g_tables.length)alert("This page doesn't contain any tables.");(function(){var j,thead;for(j=0;j<g_tables.length;++j){thead=g_tables[j].createTHead();insAtTop(thead,makeHeader(j,countCols(g_tables[j])))}})();function compareRows(a,b){if(a.sortKey==b.sortKey)return 0;return(a.sortKey<b.sortKey)?g_order:-g_order}function sortTable(tableNo,colNo,ord){var table,rows,nR,bs,i,j,temp;g_order=ord;g_colNo=colNo;table=g_tables[tableNo];rows=new Array();nR=0;bs=table.tBodies;for(i=0;i<bs.length;++i)for(j=0;j<bs[i].rows.length;++j){rows[nR]=bs[i].rows[j];temp=rows[nR].cells[g_colNo];if(temp)rows[nR].sortKey=temp.innerHTML;else rows[nR].sortKey="";++nR}rows.sort(compareRows);for(i=0;i<rows.length;++i)insAtTop(table.tBodies[0],rows[i])}

13. Edit Page

Design

Turns the page into a temporary editable document. Reload to undo. Handy for mockups, not for publishing.

javascript:document.body.contentEditable='true';document.designMode='on';void 0

14. What Font Is This

Design

Install the bookmarklet from Typewolf's Type Sample page. The old typesample.com script URL no longer loads reliably. Hover over text to identify the font family in use.

15. Word Frequency

SEO

Counts single-word frequency across the visible page and opens a sorted list in a new window. Pairs well with our word counter tool.

javascript:(function(){var T={},W=[],C=0,s,i;function F(n){var i,x,a,w,t=n.tagName;if(n.nodeType==3){a=n.data.toLowerCase().split(/[\s\(\)\:\,\.;<>&'"]/);for(i in a)if(w=a[i]){w=" "+w;T[w]=T[w]?T[w]+1:1;++C}}if(t!="SCRIPT"&&t!="STYLE")for(i=0;x=n.childNodes[i];++i)F(x)}F(document);for(i in T)W.push([T[i],i]);W.sort(function(a,b){var x=b[0]-a[0];return x?x:((b[1]<a[1])?1:-1)});s="<h3>"+C+" words</h3>";for(i in W)s+=W[i][0]+":"+W[i][1]+"<br>";with(open().document){write(s);close()}})()

16. Check Alt Tags

SEO

Outlines images in red (missing alt), gray (empty alt), or green (alt present). Hover for the alt text value.

javascript:(function(){function d(s){return s==null?"missing":"\""+s+"\""}var c=[0,0,0],i,P,a,y,D=document;for(i=0;P=D.images[i];++i){a=P.getAttribute("alt");y=!!a+(a!=null);++c[y];P.style.border="2px "+["dotted red","dashed #888","solid green"][y];P.title="Alt: "+d(a)+", Title: "+d(P.getAttribute("title"))}top.status="Image alt texts: "+c[0]+" missing, "+c[1]+" empty, "+c[2]+" present"})()

17. Down For Everyone or Just Me

Uptime

Checks whether the current host is down globally or only on your connection.

javascript:location='https://downforeveryoneorjustme.com/'+location.hostname

19. Performance Analyzer

Dev tools

Loads the performance-bookmarklet overlay with Navigation Timing and Resource Timing data. Some sites block it with Content Security Policy.

javascript:(function(){var el=document.createElement('script');el.type='text/javascript';el.src='https://micmro.github.io/performance-bookmarklet/dist/performanceBookmarklet.min.js';el.onerror=function(){alert("CSP blocked this bookmarklet. Paste the script URL into the browser console instead.");console.log("https://micmro.github.io/performance-bookmarklet/dist/performanceBookmarklet.min.js")};document.getElementsByTagName('body')[0].appendChild(el)})();
Do bookmarklets still work in 2026?
Yes. Chrome, Firefox, Edge, and Safari still run javascript: bookmarks. Some sites block injected scripts with Content Security Policy, which limits a few dev-tool bookmarklets.
Are bookmarklets safe?
They are as safe as the code you run. Read every line before saving. Never use bookmarklets from untrusted sites on pages with passwords or banking data.
How do I make my own bookmarklet?
Wrap your JavaScript in an IIFE, prefix it with javascript:, URL-encode special characters, and save it as a bookmark URL. Bookmarklet.one and mrcoles.com/bookmarklet/ are free helpers.
Do bookmarklets work on mobile?
Yes on Android browsers that expose the bookmarks bar or let you edit bookmark URLs. iOS Safari is more limited but bookmarklets can run from favorites on some setups.
Why did my share bookmarklet stop working?
AddThis shut down in May 2023. Replace it with the browser native share button, AddToAny, or a site-specific share link.
What happened to the Alexa rank bookmarklet?
Amazon retired Alexa.com rankings in 2022. That bookmarklet no longer returns useful data and was removed from this list.
AYAmit Yadav

Amit Yadav

Contributor

Amit loves new tech and apps that make life easier, he writes about apps, games and useful websites on TheTechBasket.

869 articles writtenView all posts by Amit →

Related articles

See all