Drag these tools to your bookmarks bar for instant content analysis on any webpage.
How to Install
- Make sure your browser's bookmarks bar is visible (
Ctrl/Cmd+Shift+B). - Drag the link to your bookmarks bar.
- Right click and edit the bookmark and paste the
javascript:......blob to replace the existing link. Edit the bookmarklet text if you like, too. - Visit any webpage and click the bookmarklet to run it.
Content Analysis
Word Count & Stats
Shows word count, character count, paragraph count, and estimated reading time for any page.
javascript:(function(){const b=document.body,t=b.innerText||b.textContent,w=t.trim().split(/\s+/).filter(x=>x.length>0).length,c=t.length,p=document.querySelectorAll('p').length,r=Math.ceil(w/238);alert(`š Content Stats\n\nWords: ${w.toLocaleString()}\nCharacters: ${c.toLocaleString()}\nParagraphs: ${p}\nReading Time: ~${r} min`)})();
Drag This Link To Bookmarks: š Word Count
Then right click and replace the bookmark link with the javascript:...... blob above.
Heading Structure
Displays the heading hierarchy (H1-H6) to check content structure and SEO best practices.
javascript:(function(){const h=document.querySelectorAll('h1,h2,h3,h4,h5,h6');let o='š HEADING STRUCTURE\n'+'-'.repeat(40)+'\n';if(h.length===0){alert('No headings found on this page.');return;}h.forEach(e=>{const l=parseInt(e.tagName[1]),i=' '.repeat(l-1),t=(e.innerText||e.textContent||'').trim().substring(0,60);o+=`${i}${e.tagName}: ${t}${t.length>=60?'...':''}\n`;});alert(o);})();
Drag This Link To Bookmarks: š Headings
Then right click and replace the bookmark link with the javascript:...... blob above.
Readability Score
Calculates Flesch Reading Ease score and grade level for the page content.
javascript:(function(){const t=(document.body.innerText||'').replace(/[^\w\s.!?]/g,' '),w=t.trim().split(/\s+/).filter(x=>x.length>0),s=t.split(/[.!?]+/).filter(x=>x.trim().length>0),wc=w.length,sc=s.length||1,sy=w.reduce((a,x)=>a+x.replace(/[^aeiouy]/gi,'').length,0)||1,asl=wc/sc,asw=sy/wc,fre=206.835-(1.015*asl)-(84.6*asw),gl=0.39*asl+11.8*asw-15.59;let lv='';if(fre>=90)lv='Very Easy (5th grade)';else if(fre>=80)lv='Easy (6th grade)';else if(fre>=70)lv='Fairly Easy (7th grade)';else if(fre>=60)lv='Standard (8th-9th)';else if(fre>=50)lv='Fairly Difficult (10th-12th)';else if(fre>=30)lv='Difficult (College)';else lv='Very Difficult (Graduate)';alert(`š READABILITY ANALYSIS\n\nFlesch Score: ${fre.toFixed(1)}\nGrade Level: ${gl.toFixed(1)}\nDifficulty: ${lv}\n\nWords: ${wc}\nSentences: ${sc}\nAvg Words/Sentence: ${asl.toFixed(1)}`);})();
Drag This Link To Bookmarks: š Readability
Then right click and replace the bookmark link with the javascript:...... blob above.
SEO Analysis
Meta Tags Viewer
Shows title, meta description, canonical URL, robots directives, and Open Graph tags.
javascript:(function(){const g=n=>document.querySelector(n),a=n=>g(`meta[name='${n}']`)?.content||g(`meta[property='${n}']`)?.content||'(not set)',t=document.title||'(not set)',d=a('description'),c=g('link[rel=canonical]')?.href||'(not set)',r=a('robots'),og=a('og:title'),ogi=a('og:image');alert(`š·ļø META TAGS\n${'ā'.repeat(30)}\n\nTitle (${t.length} chars):\n${t}\n\nDescription (${d.length} chars):\n${d.substring(0,150)}${d.length>150?'...':''}\n\nCanonical:\n${c}\n\nRobots: ${r}\n\nOG Title: ${og}\nOG Image: ${ogi.substring(0,50)}${ogi.length>50?'...':''}`);})();
Drag This Link To Bookmarks: š·ļø Meta Tags
Then right click and replace the bookmark link with the javascript:...... blob above.
Link Extractor
Counts and categorizes all links on the page (internal, external, nofollow). Copies external links to clipboard.
javascript:(function(){const h=location.hostname,a=[...document.querySelectorAll('a[href]')],int=[],ext=[],nf=[];a.forEach(l=>{const u=l.href,n=l.rel?.includes('nofollow');try{const p=new URL(u);if(p.hostname===h)int.push(u);else{ext.push(u);if(n)nf.push(u);}}catch{}});const ue=[...new Set(ext)];navigator.clipboard?.writeText(ue.join('\n'));alert(`š LINK ANALYSIS\n${'ā'.repeat(30)}\n\nTotal Links: ${a.length}\nInternal: ${int.length}\nExternal: ${ext.length} (${ue.length} unique)\nNofollow: ${nf.length}\n\nā
${ue.length} unique external links copied to clipboard!`);})();
Drag This Link To Bookmarks: š Links
Then right click and replace the bookmark link with the javascript:...... blob above.
Image Alt Audit
Checks all images for alt text. Highlights images missing alt attributes on the page.
javascript:(function(){const i=[...document.querySelectorAll('img')],m=i.filter(x=>!x.alt||x.alt.trim()===''),g=i.filter(x=>x.alt&&x.alt.trim()!=='');m.forEach(x=>{x.style.outline='5px solid red';x.style.outlineOffset='2px';});g.forEach(x=>{x.style.outline='3px solid green';x.style.outlineOffset='2px';});alert(`š¼ļø IMAGE ALT AUDIT\n${'ā'.repeat(30)}\n\nTotal Images: ${i.length}\nā
With Alt Text: ${g.length}\nā Missing Alt: ${m.length}\n\nImages highlighted on page:\nš¢ Green = Has alt text\nš“ Red = Missing alt text`);})();
Drag This Link To Bookmarks: š¼ļø Alt Text
Then right click and replace the bookmark link with the javascript:...... blob above.
Schema Markup
Extracts and displays any JSON-LD structured data found on the page.
javascript:(function(){const s=[...document.querySelectorAll('script[type="application/ld+json"]')];if(s.length===0){alert('No JSON-LD schema markup found on this page.');return;}let o='š SCHEMA MARKUP FOUND\n'+'ā'.repeat(35)+'\n\n';s.forEach((e,i)=>{try{const d=JSON.parse(e.textContent),t=d['@type']||'Unknown';o+=`Schema ${i+1}: ${Array.isArray(t)?t.join(', '):t}\n`;}catch{o+=`Schema ${i+1}: (parse error)\n`;}});o+='\n(Full data logged to console)';console.log('Schema Data:',s.map(e=>{try{return JSON.parse(e.textContent)}catch{return null}}));alert(o);})();
Drag This Link To Bookmarks: š Schema
Then right click and replace the bookmark link with the javascript:...... blob above.
Competitor Research
Copy Page Outline
Copies the complete heading structure as a formatted markdown outline to your clipboard.
javascript:(function(){const h=document.querySelectorAll('h1,h2,h3,h4,h5,h6');if(h.length===0){alert('No headings found.');return;}let o=document.title+'\n'+'='.repeat(40)+'\n\n';h.forEach(e=>{const l=parseInt(e.tagName[1]),i=' '.repeat(l-1),b=l===1?'# ':l===2?'## ':l===3?'### ':'- ',t=(e.innerText||e.textContent||'').trim();o+=`${i}${b}${t}\n`;});navigator.clipboard?.writeText(o).then(()=>alert('ā
Outline copied to clipboard!')).catch(()=>alert(o));})();
Drag This Link To Bookmarks: š Copy Outline
Then right click and replace the bookmark link with the javascript:...... blob above.
View Cached Version
Opens the Google cached version of the current page (if available).
javascript:(function(){window.open('https://webcache.googleusercontent.com/search?q=cache:'+encodeURIComponent(location.href),'_blank');})();
Drag This Link To Bookmarks: šø Cached
Then right click and replace the bookmark link with the javascript:...... blob above.
Wayback Machine
Opens the Internet Archive's history for the current page.
javascript:(function(){window.open('https://web.archive.org/web/*/'+location.href,'_blank');})();
Drag This Link To Bookmarks: ā° Wayback
Then right click and replace the bookmark link with the javascript:...... blob above.
Productivity
Highlight All Links
Highlights all links on the page with a yellow background. Run again to remove.
javascript:(function(){const a=document.querySelectorAll('a'),f=a[0]?.style.backgroundColor==='yellow';a.forEach(l=>{l.style.backgroundColor=f?'':'yellow';l.style.color=f?'':'black';});})();
Drag This Link To Bookmarks: ⨠Highlight Links
Then right click and replace the bookmark link with the javascript:...... blob above.
Text-Only View
Strips styling to show clean, readable text. Great for distraction-free reading.
javascript:(function(){const h=document.head,b=document.body;[...h.querySelectorAll('style,link[rel=stylesheet]')].forEach(e=>e.remove());b.style.cssText='max-width:700px;margin:40px auto;padding:20px;font:18px/1.7 Georgia,serif;color:#222;background:#fff';[...b.querySelectorAll('*')].forEach(e=>{e.style.cssText='';});})();
Drag This Link To Bookmarks: š¤ Text Only
Then right click and replace the bookmark link with the javascript:...... blob above.
Content Inventory
Full content audit: counts headings, paragraphs, lists, images, links, videos, and tables.
javascript:(function(){const c=(s)=>document.querySelectorAll(s).length;const d={H1:c('h1'),H2:c('h2'),H3:c('h3'),'H4-H6':c('h4,h5,h6'),Paragraphs:c('p'),Lists:c('ul,ol'),Images:c('img'),Links:c('a'),Videos:c('video,iframe[src*=youtube],iframe[src*=vimeo]'),Tables:c('table'),Forms:c('form')};let o='š CONTENT INVENTORY\n'+'ā'.repeat(30)+'\n\n';for(const[k,v]of Object.entries(d)){o+=`${k}: ${v}\n`;}alert(o);})();
Drag This Link To Bookmarks: š Inventory
Then right click and replace the bookmark link with the javascript:...... blob above.