On this page
- How to save a bookmarklet
- Best bookmarklets to keep
- WayBack Search
- Second Opinion Search
- Google Site Search
- Indexed Pages Count
- Enable Right Click
- Website Stack (Wappalyzer)
- BugMeNot
- Web to PDF
- URL to QR Code
- Enable Text Selection
- View Password
- Sort Table
- Edit Page
- What Font Is This
- Word Frequency
- Check Alt Tags
- Down For Everyone or Just Me
- Show Full Link URLs
- Performance Analyzer
- APKMirror Search
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

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
1. WayBack Search
Archive
Opens the Internet Archive for the current page URL. Useful when a link is dead or a site changed.
javascript:void(location.href='https://web.archive.org/web/*/'+escape(location.href));2. Second Opinion Search
Search
Pulls the search query from the current Google results page and reruns it on DuckDuckGo. Edit the last URL in the code to switch to Bing, Brave, or Yahoo.
javascript:Q=[];c=location.search.slice(1).split('&');for(i in c){f=c[i].split('=');if(f[0]=='q'||f[0]=='as_q'||f[0]=='p'||f[0]=='query')if(f[1])Q.push(f[1])}R=unescape(Q.join('; ').replace(/\+/g,' '));location='https://duckduckgo.com/?q='+escape(R);3. Google Site Search
Search
Search Google limited to the current site's domain. Select text first, or enter a phrase when prompted.
javascript:q=""+(window.getSelection?window.getSelection():document.getSelection?document.getSelection():document.selection.createRange().text);if(!q)q=prompt("Enter a search phrase:","");if(q!=null)location=("https://www.google.com/search?num=100&q=site:"+escape(location.hostname)+" \""+escape(q.replace(/\"/g,""))+"\"").replace(/ /g,"+");void 04. 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 05. 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 014. 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.hostname18. Show Full Link URLs
Safety
Replaces link anchor text with the full destination URL. Useful on download pages littered with ad buttons.
javascript:(function(){var i,c,x,h;for(i=0;x=document.links[i];++i){h=x.href;x.title+=" "+x.innerHTML;while(c=x.firstChild)x.removeChild(c);x.appendChild(document.createTextNode(h))}})()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)})();20. APKMirror Search
Android
On a Google Play app page, opens APKMirror search for that package ID. Not every app is listed there.
javascript:var regeX=/[?&]id=([^&\n]+)/,match=location.href.match(regeX);if(match){var url="https://www.apkmirror.com/?s="+escape(match[1])+"&post_type=app_release&searchtype=apk";(w=open(url,"w","location=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=500,height=800"))?setTimeout("w.focus()",1000):location=url}else alert("Open a Google Play app page first, e.g. play.google.com/store/apps/details?id=...");Do bookmarklets still work in 2026?
Are bookmarklets safe?
How do I make my own bookmarklet?
Do bookmarklets work on mobile?
Why did my share bookmarklet stop working?
What happened to the Alexa rank bookmarklet?

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






