About the author
An SEO expert specializing in Schema markup and EEAT, help simplify the complex world of SEO to businesses around the world.
I plan to regularly share a collection of SEO bookmarklets that I either personally use or find particularly useful.
Bookmarkelet to extract headings
I use this one a lot. There are many Chrome extensions available, but I find most of them unclear and requiring too many steps to see the outcome. This is why I created a clear and simple bookmarklet to extract headings with one click and then copy them wherever you want. I’ve also added a close button, in case you’re just analyzing the headings. You can see in the image below where I extracted headings from my previously written post about product schema markup.
You can find code of the bookmarkelet to copy below
javascript:(function() { var headings = document.querySelectorAll(‘h1, h2, h3, h4, h5, h6’); var headingTexts = Array.from(headings).map(h => h.tagName + ‘: ‘ + h.textContent.trim()).join(‘\n’); var div = document.createElement(‘div’); div.style.position = ‘fixed’; div.style.top = ’10px’; div.style.right = ’10px’; div.style.zIndex = ‘9999’; div.style.padding = ’10px’; div.style.border = ‘1px solid black’; div.style.background = ‘white’; div.style.maxHeight = ’70vh’; div.style.overflowY = ‘auto’; var pre = document.createElement(‘pre’); pre.textContent = headingTexts; div.appendChild(pre); var copyButton = document.createElement(‘button’); copyButton.textContent = ‘Copy’; copyButton.onclick = function() { navigator.clipboard.writeText(headingTexts); }; div.appendChild(copyButton); var closeButton = document.createElement(‘button’); closeButton.textContent = ‘Close’; closeButton.onclick = function() { document.body.removeChild(div); }; div.appendChild(closeButton); document.body.appendChild(div); })();
Bookmarkelet to extract headings for Zimmwritter
If you use Zimmwriter to draft your connect than this bookmarkelet I created would save you quite a bit of time.
You can find code of the bookmarkelet to copy below
javascript:(function() { var h1s = document.querySelectorAll(‘h1’); var h1Texts = Array.from(h1s).map(h => ‘H1: ‘ + h.textContent.trim()); var h2s = document.querySelectorAll(‘h2’); var h2Texts = Array.from(h2s).map(h => h.textContent.trim()); var h3s = document.querySelectorAll(‘h3’); var h3Texts = Array.from(h3s).map(h => ‘-‘ + h.textContent.trim()); var allTexts = h1Texts.concat(h2Texts, h3Texts).join(‘\n’); var div = document.createElement(‘div’); div.style.position = ‘fixed’; div.style.top = ’10px’; div.style.right = ’10px’; div.style.zIndex = ‘9999’; div.style.padding = ’10px’; div.style.border = ‘1px solid black’; div.style.background = ‘white’; div.style.maxHeight = ’70vh’; div.style.overflowY = ‘auto’; var pre = document.createElement(‘pre’); pre.textContent = allTexts; div.appendChild(pre); var copyButton = document.createElement(‘button’); copyButton.textContent = ‘Copy’; copyButton.onclick = function() { navigator.clipboard.writeText(allTexts); }; div.appendChild(copyButton); var closeButton = document.createElement(‘button’); closeButton.textContent = ‘Close’; closeButton.onclick = function() { document.body.removeChild(div); }; div.appendChild(closeButton); document.body.appendChild(div); })();
I will add new bookmarkelets on regular basis and hopefully I save you some precious time here and there.