šŸ‘‰ Tools

Content Marketing Bookmarklets

Drag these tools to your bookmarks bar for instant content analysis on any webpage.

How to Install

  1. Make sure your browser's bookmarks bar is visible (Ctrl/Cmd + Shift + B).
  2. Drag the link to your bookmarks bar.
  3. Right click and edit the bookmark and paste the javascript:...... blob to replace the existing link. Edit the bookmarklet text if you like, too.
  4. 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.


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

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.

Ready To Try
Content Harmony?

Get your first 10 briefs for just $10

No trial limits or auto renewals. Just upgrade when you're ready.