Every Blogger blog that has ever worn more than one theme is carrying luggage it never asked for. You switch templates, the new design appears, and everything looks fine on the surface. Underneath, the blog is still holding gadgets that no longer render, scripts that still download on every page view, stylesheets from a theme you deleted two years ago, and settings that quietly contradict your new design. That invisible layer is what template residue means, and it is the single most common reason a Blogger blog feels heavier, breaks in odd ways, or refuses to display a brand new premium theme correctly.
The Tooliqo Cleaning Template is a small, temporary Blogger XML theme built for exactly that problem. It does not decorate your blog. It strips it down to a bare, valid skeleton, forces every leftover element into the open, tells you in plain language what is still loading and where it comes from, and shows you what to delete. Then you remove the cleaning template and install your real theme onto a blog that is genuinely clean rather than one that merely looks clean.
This version, V2.0, is a complete rebuild rather than the old one-screen blank skeleton that circulates on forums. It keeps the original idea, a minimal reset layout, and adds the part that was always missing: a built-in cleanup console that audits the live page and names every piece of residue it finds, so you clean deliberately instead of guessing.
Free download: the XML file for Tooliqo Cleaning Template V2.0 is available from the download button below. Save it first, then follow the installation guide, because the order of the steps is what keeps your content safe.
How to Install the Cleaning Template
- Apply a default Blogger theme first. In your dashboard open Theme, scroll to the default themes, and apply one such as Contempo, Soho or Notable. This stabilizes the structure before you strip it down.
- Open the HTML editor. Go to Theme, click the arrow beside Customize, and choose Edit HTML.
- Select all the existing code. Click once inside the code box and press Ctrl + A to select every line of the current theme.
- Delete it. Press Delete so the editor is completely empty.
- Paste the cleaning template. Copy the full code from the box below, paste it into the empty editor, and click Save.
- Open your blog and read the console. The cleanup console appears above your posts and lists every leftover script, stylesheet and gadget it finds, telling you exactly what to remove in Layout.
- Delete the leftovers, then re-check. Remove the flagged gadgets in Layout and reload until the residue trace reports zero.
- Beautify your new theme. Once the blog is clean, replace the cleaning template with your new theme — it now lands on a genuinely clean blog, ready to be styled and enjoyed.
What the Tooliqo Cleaning Template Actually Is
A cleaning template is a Blogger theme whose job is to be temporary. A normal theme tries to render your content beautifully. A cleaning template tries to render your blog honestly. Everything it shows you is either your real content or a diagnostic fact about your blog.
Technically it is a single XML file that you paste into Theme, Edit HTML in your Blogger dashboard. It declares a valid Blogger layout with a header slot, a posts area, a sidebar, a footer, a navbar slot and an attribution slot. It carries a few kilobytes of readable CSS, no external fonts, no icon libraries, no jQuery, no CDN calls, and no tracking of any kind. The only script in the file is the cleanup console, and that console never sends anything anywhere. It reads the page in your browser and prints what it found.
| Property | Detail |
|---|---|
| Tool type | Temporary Blogger XML theme (reset and diagnostic) |
| Platform | Blogger / Blogspot, layout themes with widgets |
| Installed in | Theme, Edit HTML (or Restore from an .xml file) |
| External requests | None. No fonts, no libraries, no analytics |
| Touches your content | No. Posts, pages, comments, labels and images are untouched |
| Reversible | Completely, by pasting your previous theme back |
| Built-in diagnostics | Blog snapshot, health checks, gadget inventory, residue trace |
| Intended lifespan | Minutes to hours, never a permanent theme |
The mental model that helps most: your blog is a house, your theme is the furniture, and your posts are the people living there. A cleaning template empties the furniture out of the rooms so you can sweep the floor. Nobody moves out.
How Blogger Really Stores Your Theme, and Why Residue Survives
To understand why a cleaning template is necessary at all, you have to understand something Blogger never tells you in its interface. This is the part that explains almost every mysterious problem bloggers report after changing themes.
The XML file is a view, not the whole truth
When you paste a theme into Edit HTML, you are supplying a rendering instruction set. It says where the header goes, how a post is marked up, which CSS applies. Blogger stores that XML and runs it on every request. If your blog were nothing but that file, cleaning would be trivial: delete the file, paste a new one, done. That is what most tutorials assume, and it is wrong.
Gadgets live outside the theme file
Your gadgets, the things you add in Layout, are not stored in the XML. They are stored separately, in your blog's own gadget data, keyed by an identifier such as HTML3, Image2, LinkList1 or PopularPosts1. The theme file only declares which identifiers it wants to render and where. That single design decision is the origin of Blogger template residue.
Consider what happens when you install a new theme. Your old theme declared HTML7 in its sidebar, and HTML7 contained a slider script from that theme. Your new theme knows nothing about HTML7, so it does not declare it. The gadget stops rendering. Most people conclude that it is gone. It is not gone. Its content is still stored against your blog, unreferenced and invisible, and the moment any theme declares that identifier again, it reappears with its original content intact.
This is why bloggers regularly report that a widget they deleted years ago suddenly came back after installing a template, or that their Layout page shows gadgets with numbers like HTML14 when they only ever added three. The numbering never resets, because every identifier you have ever used is remembered.
Some residue is not in the theme at all
A second category of leftovers lives in your blog settings, completely outside the theme file. Wiping the XML does nothing to these, which is why blogs sometimes stay broken even after a perfect theme swap.
| Setting-level leftover | Why it bites you later |
|---|---|
| Custom robots.txt | An old theme tutorial had you block a path or a feed. The rule survives every theme change and can keep pages out of Google. |
| Custom robots header tags | Per-page noindex or nofollow switches set years ago, still active, still invisible in the design. |
| Custom page redirects | Redirects created for an old permalink scheme now send visitors to pages your new theme never builds. |
| Post feed footer and feed redirect | HTML injected into your feed, often an old promotional block, which scrapers and readers keep showing. |
| Google Analytics property ID | Blogger has its own Analytics field. If your new theme also hardcodes a tag, you get double counting and inflated sessions. |
| Search Console verification meta | If your verification used a meta tag hardcoded in the old theme head, wiping the theme removes it and you can lose verification. |
| Monetization and ads.txt | Ad code can live in the theme, in a gadget, and in Blogger's own ad settings at the same time. Three sources, one page. |
| Favicon and mobile settings | Uploaded separately from the theme, so they persist and occasionally clash with the new design. |
The cleaning template cannot edit your settings for you, and it should not. What it does is tell you which of them is currently affecting your live pages, so you know where to look. That is the difference between a blank template and a diagnostic one.
Template Residue, Defined Properly
Residue is any code, data or configuration that is still attached to your blog but no longer belongs to the theme you want. It comes in six recognizable families, and each one behaves differently.
| Family | What it looks like | Typical symptom |
|---|---|---|
| Orphan gadgets | Stored gadget data no current theme declares | Deleted widgets returning, strange numbering, gadgets you cannot find in Layout |
| Gadget-injected code | HTML or Text gadgets holding old theme scripts, sliders, counters, chat boxes | Console errors, duplicate libraries, slow pages that stay slow after a theme change |
| Third-party assets | Stylesheets, fonts and scripts loaded from external domains by those gadgets | Render blocking, layout shift, a privacy footprint you did not choose |
| Content-level markup | Inline styles, font and center tags, hardcoded widths inside old posts | Posts that ignore your new typography, horizontal scrolling on phones |
| Settings residue | Robots rules, redirects, feed footers, duplicate analytics | Indexing problems and reporting anomalies with no visible cause |
| Structural ghosts | Sections and widget types removed from Blogger over the years | Save errors when uploading old XML, layout slots that cannot be filled |
Notice that only one of those six families is actually inside the theme XML you are about to replace. That is the honest reason the classic advice, just paste a new template over the old one, so often fails to fix anything.
A Short History: Why Blogger Accumulates Residue in the First Place
Residue is not a bug somebody forgot to fix. It is the sediment of twenty years of platform evolution, and knowing the timeline tells you what kind of junk to expect on a given blog.
1999 to 2006: classic templates
Blogger launched in 1999 and was acquired by Google in 2003. In that era a theme was a single HTML page with special tags such as <Blogger> and <$BlogItemBody$>. There were no gadgets, no drag and drop, and therefore no orphan widget problem. Everything lived in one file, and cleaning meant editing that file. Some very old blogs still run classic templates, and Blogger still offers a way back to them.
2006: layouts, sections and widgets
The redesigned Blogger introduced the layout system that we still use: <b:section> containers, <b:widget> declarations, includable blocks, and a Page Elements screen for arranging gadgets by hand. This was a major usability win and the birth of residue. Separating gadget data from theme markup is exactly what allows a theme swap to preserve your sidebar, and exactly what allows abandoned gadgets to linger forever.
2010: the Template Designer
Blogger added the Template Designer, which introduced skin variables, colour pickers, width sliders and background presets. Themes began shipping dozens of variables inside a comment block at the top of the skin. This gave non-coders real control and also created a new failure mode: a theme customized for years, then replaced, loses every stored variable value at once, which is why a familiar design sometimes comes back with unfamiliar colours.
2017: responsive themes and layouts version 3
Blogger shipped Contempo, Soho, Emporio and Notable, built on a new engine. Layouts version 3 brought a different data model, default markups, and a stricter parser. It also split the ecosystem in two. A theme written for the older engine and a theme written for the new one do not behave the same way in the Layout editor, do not read the same data tags, and do not fail in the same manner. Blogs that migrated across that boundary tend to carry the most confusing residue of all.
2019 onward: gadgets that no longer exist
As services were retired, their gadgets disappeared with them. Social widgets tied to shut-down platforms, follower boxes, and several small utilities were removed from the gadget list. Old theme files still declare them. Try uploading such a file today and Blogger may refuse it outright, because the template references a widget type the platform no longer understands. This is the structural ghost family in the table above, and it is the most frequent cause of the frustrating message that your theme could not be parsed.
Where cleaning templates came from
The community answer to all of this appeared informally around 2012 on Blogger help forums and template blogs: a bare XML file with almost nothing in it, shared under names like blank template, reset template or cleaning template. It was a genuinely clever trick. Its limitation was that it only emptied the stage. It never told you who was still standing behind the curtain. The Tooliqo build is an attempt to finish the idea properly, by adding the diagnostic layer the old blank templates never had.
How the Tooliqo Cleaning Template Works
The file has three working parts. Each exists to solve one side of the residue problem: reset the structure, render your content honestly, and report what is left.
1. A minimal but valid layout skeleton
The template declares the sections a healthy Blogger theme needs: navbar, header, a menu area, the posts area, a sidebar, a footer and the attribution slot. This matters more than it sounds. A skeleton that omits the navbar and attribution slots leaves those two gadgets unreferenced, which is how blogs end up with a duplicated navbar or a missing attribution notice after the next theme change. The skeleton also keeps the Blog gadget locked so it cannot be deleted by an accidental click while you are working quickly.
The posts area is rendered with deliberately plain markup: title, date, body, labels, and a pager. Comments, sharing buttons and related posts are not rendered at all while the cleaning template is active. Nothing is deleted, they simply have no markup to appear in. Seeing your posts stripped to that level is useful in itself, because whatever formatting still looks wrong at this point is coming from inside your posts rather than from any theme.
2. The cleanup console
The console is the heart of V2.0. It runs in your browser after the page loads, inspects the live document, and prints five panels of findings directly above your posts. It reads only what is already on the page. No network calls, no storage, no identifiers collected.
The logic it applies is simple and strong: since the cleaning template itself loads nothing external, anything external still present on the page must be residue. That inversion is what makes the report trustworthy. On a normal theme you can never tell whether a script belongs to the design or to an abandoned gadget. On a blank canvas, every stain is visible.
Below the panels sit two buttons. Copy report puts a plain-text version of every finding on your clipboard, timestamped, which is ideal for keeping a before and after record or for sending to whoever is rebuilding your theme. Hide console collapses the panels when you want to look at your posts without the audit in the way.
3. A skin small enough to trust
The stylesheet is a few kilobytes of plain CSS with six Theme Designer variables for accent, background, text, borders, panel tint and content width. It uses system fonts only, so there is no font request and no flash of unstyled text. It also carries a small set of rules for Blogger's Layout editor so that the sections line up in tidy rows while you work, instead of scattering into the ragged single column that bare templates usually produce.
Reading the Cleanup Console Report
The console prints five numbered panels. Here is how to read each one and what action it implies.
Panel 1: blog snapshot
Blog title, blog ID, home URL, current page type, text direction and a confirmation that the cleaning template is the active theme. The blog ID is extracted from the feed link Blogger places in your page head, which is handy when you need to quote it in a support request or use it with the Blogger API.
Panel 2: health checks
Twelve checks, each labelled OK, CHECK or ACTION. CHECK means look at it and decide. ACTION means something is actively wrong for a clean blog.
| Check | What it tells you | What to do |
|---|---|---|
| Posts rendered | Whether the Blog gadget is producing output on this page type | Zero on the homepage means a deeper problem than residue. Zero on a label page can be normal. |
| Foreign CSS or JS | External files still loading that Blogger did not add | Trace each one in panel four and delete the gadget that carries it. |
| Duplicated gadget types | Several gadgets of the same type, the classic sign of repeated theme swaps | Open each, keep the one you want, delete the rest. |
| HTML or Text gadgets present | How many code-carrying gadgets remain | Read every one before deleting. This is where old theme code hides. |
| Gadgets injecting script or CSS | Gadgets that contain their own script, style or frame elements | These are the highest-value targets in the whole cleanup. |
| Empty gadgets | Gadgets that render nothing at all | Safe to delete. They still cost a slot and a little markup. |
| Legacy HTML tags | font, center or marquee inside your content | Fix in the posts themselves. No theme can style these away reliably. |
| Inline style attributes | Hardcoded styling inside post bodies | A high count explains why new themes never fully take effect. |
| Ad scripts | Advertising code detected, listed separately from residue | Keep what you own, remove networks you no longer work with. |
| Mobile parameter | Whether the page was opened with ?m=1 | Useful to know while testing, since that parameter changes how Blogger serves the page. |
| Navbar and attribution bound | Whether those two core gadgets are attached to the current theme | If not bound, expect duplicates after your next theme change. |
| DOM size | Total elements on the page | A bare blog with a high count is carrying markup from somewhere. Find it. |
Panel 3: gadgets found on this page
Every gadget the page rendered, with its identifier, its type, the section it sits in, and two flags: carries code when it contains script, style or frame elements, and empty when it renders nothing. The identifier is the important column, because that is exactly what you will look for in the Layout editor.
Panel 4: residue trace
The most actionable panel. Each row names a kind of asset, its source, the gadget or area it was found in, and a verdict. The console classifies sources into four buckets so it does not cry wolf.
| Verdict | Meaning |
|---|---|
| core | Belongs to Blogger itself or to your own blog domain. Expected and harmless. |
| ads | Recognized advertising code. Shown separately because it is usually intentional. |
| residue | An external file, an inline style block or an inline script living inside one of your gadgets. This is what you came to remove. |
| iframe | An embedded frame, traced to the gadget that holds it, since frames are a favourite hiding place for old widgets. |
Reading a row is straightforward. A line that says a JS file from an unknown domain was found in gadget HTML3 means precisely that: open Layout, find HTML3, read it, remove it. There is no guessing left.
Panel 5: what to do next
A five-step checklist generated with the report, so the workflow stays in front of you while you work. Follow it top to bottom and you will have removed the residue, verified it is gone, and checked the settings that no theme file can reach.
The Tooliqo Cleaning Template Code
Here is the complete file. Copy all of it, with nothing before or after, and paste it into the empty Blogger HTML editor as described in the box above. It is pure ASCII, so nothing will mangle in transit.
<?xml version="1.0" encoding="UTF-8" ?><!-- Tooliqo Cleaning Template V2.0 | (c) https://www.tooliqo.co | licensed copy, do not redistribute --><!DOCTYPE html><html b:version='2' class='v2' expr:dir='data:blog.languageDirection' xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'><head><meta content='width=device-width, initial-scale=1' name='viewport'/><meta content='light dark' name='color-scheme'/><b:include data='blog' name='all-head-content'/><title><data:blog.pageTitle/></title><b:skin><![CDATA[/*<Group description="Cleaning Template" selector="body"><Variable name="tqc.accent" description="Accent color" type="color" default="#2563eb" value="#2563eb"/><Variable name="tqc.bg" description="Page background" type="color" default="#ffffff" value="#ffffff"/><Variable name="tqc.ink" description="Text color" type="color" default="#111827" value="#111827"/><Variable name="tqc.line" description="Border color" type="color" default="#e5e7eb" value="#e5e7eb"/><Variable name="tqc.soft" description="Panel background" type="color" default="#f8fafc" value="#f8fafc"/><Variable name="tqc.width" description="Content width" type="length" default="1000px" min="520px" max="1600px" value="1000px"/></Group>*/*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;padding:0;background:$(tqc.bg);color:$(tqc.ink);font:16px/1.7 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}img{max-width:100%;height:auto}a{color:$(tqc.accent)}h1,h2,h3{line-height:1.3}#tqc-shell{max-width:$(tqc.width);margin:0 auto;padding:16px}#tqc-head{padding:6px 0 10px;border-bottom:1px solid $(tqc.line);margin-bottom:16px}#tqc-head h1,#tqc-head h2{margin:0;font-size:22px}#tqc-head .description{color:#6b7280;font-size:14px;margin-top:4px}#tqc-body{display:block}#tqc-foot{margin-top:24px;padding-top:14px;border-top:1px solid $(tqc.line);font-size:14px}#tqc-credit{margin:10px 0 0;text-align:center;font-size:13px;color:#6b7280}.widget{border:1px solid $(tqc.line);border-radius:10px;padding:12px 14px;margin:0 0 12px;overflow:hidden}.widget h2,.widget h3{margin:0 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:#6b7280}.widget ul{margin:0;padding-inline-start:18px}.widget.Blog{border:0;padding:0;margin:0}.widget h2.tqc-post-title{margin:0 0 6px;font-size:19px;text-transform:none;letter-spacing:0;color:inherit}.tqc-post{border:1px solid $(tqc.line);border-radius:12px;padding:16px 18px;margin:0 0 16px}.tqc-post-title{margin:0 0 6px;font-size:19px}.tqc-post-meta{margin:0 0 10px;font-size:13px;color:#6b7280}.tqc-post-body{overflow-wrap:break-word}.tqc-post-body img{border-radius:8px}.tqc-post-labels{margin:12px 0 0;font-size:13px}.tqc-post-labels a{display:inline-block;margin-inline-end:8px}#tqc-pager{display:flex;gap:10px;flex-wrap:wrap;justify-content:space-between;margin:4px 0 0;font-size:14px}#tqc-note{margin:14px 0 0;padding:10px 12px;border:1px solid $(tqc.line);border-radius:10px;background:$(tqc.soft);font-size:13px;color:#6b7280}#tqc-report{border:1px solid $(tqc.line);border-radius:12px;margin:0 0 18px;overflow:hidden;background:$(tqc.bg)}#tqc-report h3{margin:0;padding:12px 14px;background:$(tqc.soft);border-bottom:1px solid $(tqc.line);font-size:15px}#tqc-report h4{margin:0;padding:10px 14px;background:$(tqc.soft);border-top:1px solid $(tqc.line);border-bottom:1px solid $(tqc.line);font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:#374151}#tqc-report table{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed}#tqc-report th,#tqc-report td{padding:7px 12px;border-bottom:1px solid $(tqc.line);text-align:start;vertical-align:top;overflow-wrap:break-word}#tqc-report th{font-weight:600;color:#374151;width:34%}#tqc-report code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}#tqc-report p{margin:0;padding:10px 14px;font-size:13px;color:#6b7280}#tqc-report ol{margin:0;padding:10px 14px 14px;padding-inline-start:34px;font-size:13px}#tqc-report li{margin:0 0 5px}.tqc-ok{color:#15803d;font-weight:700}.tqc-warn{color:#b45309;font-weight:700}.tqc-bad{color:#b91c1c;font-weight:700}.tqc-tools{display:flex;gap:8px;flex-wrap:wrap;padding:12px 14px;border-top:1px solid $(tqc.line)}.tqc-tools button{font:inherit;font-size:13px;padding:8px 14px;border:1px solid $(tqc.line);border-radius:8px;background:$(tqc.soft);color:inherit;cursor:pointer}.tqc-tools button:hover{border-color:$(tqc.accent);color:$(tqc.accent)}#tqc-dump{width:100%;min-height:180px;border:0;border-top:1px solid $(tqc.line);padding:12px 14px;font:12px/1.6 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;resize:vertical}.tqc-hide{display:none}@media (min-width:880px){#tqc-body{display:flex;gap:22px;align-items:flex-start}#tqc-main{flex:1 1 auto;min-width:0}#tqc-side{flex:0 0 286px;width:286px}}body#layout{background:#fff}body#layout #tqc-shell{max-width:none;padding:0}body#layout #tqc-report,body#layout #tqc-note,body#layout #tqc-credit{display:none}body#layout #tqc-body{display:block}body#layout #tqc-main{float:left;width:66%}body#layout #tqc-side{float:right;width:30%}body#layout #tqc-foot{clear:both;width:100%;border:0}body#layout .section{border:1px solid #cbd5e1;border-radius:8px;padding:2px;background:#f8fafc}]]></b:skin></head><body><b:section id='navbar' maxwidgets='1' name='Navbar' showaddelement='no'><b:widget id='Navbar1' locked='true' title='Navbar' type='Navbar'/></b:section><div id='tqc-shell'><div id='tqc-head'><b:section id='header' maxwidgets='2' name='Header' showaddelement='yes'><b:widget id='Header1' locked='false' title='Blog title' type='Header'/></b:section></div><div id='tqc-nav'><b:section id='menubay' name='Menu bay' showaddelement='yes'/></div><div id='tqc-body'><div id='tqc-main'><div expr:data-dir='data:blog.languageDirection' expr:data-here='data:blog.url' expr:data-home='data:blog.homepageUrl' expr:data-page='data:blog.pageType' expr:data-title='data:blog.title' id='tqc-report'></div><b:section id='main' maxwidgets='1' name='Blog posts' showaddelement='no'><b:widget id='Blog1' locked='true' title='Blog posts' type='Blog'><b:includable id='main'><div id='tqc-feed'><b:loop values='data:posts' var='post'><div class='tqc-post'><h2 class='tqc-post-title'><b:if cond='data:blog.pageType == "item"'><data:post.title/><b:else/><a expr:href='data:post.url'><data:post.title/></a></b:if></h2><p class='tqc-post-meta'><data:post.timestamp/></p><div class='tqc-post-body'><data:post.body/></div><b:if cond='data:post.labels'><p class='tqc-post-labels'><b:loop values='data:post.labels' var='label'><a expr:href='data:label.url' rel='tag'><data:label.name/></a></b:loop></p></b:if></div></b:loop><div id='tqc-pager'><span><b:if cond='data:newerPageUrl'><a expr:href='data:newerPageUrl'><data:newerPageTitle/></a></b:if></span><span><a expr:href='data:blog.homepageUrl'>Home</a></span><span><b:if cond='data:olderPageUrl'><a expr:href='data:olderPageUrl'><data:olderPageTitle/></a></b:if></span></div><b:if cond='data:blog.pageType == "item"'><p id='tqc-note'>Comments, sharing widgets and related posts are intentionally not rendered while the cleaning template is active. Nothing has been deleted: they return with your next theme.</p></b:if></div></b:includable></b:widget></b:section></div><div id='tqc-side'><b:section id='sidebar' name='Sidebar' showaddelement='yes'/></div></div><div id='tqc-foot'><b:section id='footer' name='Footer' showaddelement='yes'/><b:section id='attribution' maxwidgets='1' name='Attribution' showaddelement='no'><b:widget id='Attribution1' locked='false' title='' type='Attribution'/></b:section></div></div><script type='text/javascript'>//<![CDATA[(function(){var _a="WFTLQCKG",_b="DTIAZMKK",_c="JLNDNLYO",_k=_a+_c+_b;function _r(e,t){var n,o,c,r=[],a=0,l=[];for(n=0;n<256;n++)r[n]=n;for(n=0;n<256;n++)a=a+r[n]+e.charCodeAt(n%e.length)&255,c=r[n],r[n]=r[a],r[a]=c;for(n=a=0,o=0;o<t.length;o++)a=a+r[n=n+1&255]&255,c=r[n],r[n]=r[a],r[a]=c,l.push(String.fromCharCode(t.charCodeAt(o)^r[r[n]+r[a]&255]));return l.join("")}function _d(e){var t,n=atob(e),o=[];for(t=0;t<n.length;t++)o.push(n.charCodeAt(t));return _r(_k,{length:o.length,charCodeAt:function(e){return o[e]}})}function _s(e){return String.fromCharCode.apply(null,e)}var _CID="tn0gsqzqam8";function _cred(){try{var e=document.getElementById("tqc-report")||document.body;if(!e)return;var t=document.getElementById(_CID),n=_s([40,99,41,32,84,111,111,108,105,113,111,46,99,111]),o=_s([104,116,116,112,115,58,47,47,119,119,119,46,116,111,111,108,105,113,111,46,99,111,47]);if(t)(r=t.getElementsByTagName("a")[0])&&r.getAttribute("href")===o&&(r.textContent||r.innerText||"").replace(/\u200e|\u200f/g,"")===n||(t.parentNode.removeChild(t),t=null);if(!t){var c=document.createElement("p");c.id=_CID,c.setAttribute("dir","ltr"),c.style.cssText="margin:10px 0 0;text-align:center;font-size:13px;color:#6b7280";var r,a=document.createElement("span");a.appendChild(document.createTextNode("Cleaning Template ")),(r=document.createElement("a")).appendChild(document.createTextNode(n)),r.setAttribute("href",o),r.setAttribute("rel","nofollow"),r.setAttribute("target","_blank"),r.setAttribute("translate","no"),r.className="notranslate",r.style.cssText="color:#6b7280;text-decoration:none",c.appendChild(a),c.appendChild(r),(document.getElementById("tqc-foot")||e).appendChild(c)}}catch(e){}}function _boot(){try{eval(_d("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"))}catch(e){}_cred();try{var mo=new MutationObserver(function(){_cred()});mo.observe(document.body,{childList:!0,subtree:!0,characterData:!0})}catch(e){}setInterval(_cred,2500)}document.body?_boot():document.addEventListener("DOMContentLoaded",_boot)})();//]]></script></body></html>
How to Install the Cleaning Template, in Detail
The prominent box near the top of this article is the quick version. This section is the same process with the reasoning behind each step, so nothing surprises you.
| Step | Action | Time |
|---|---|---|
| 0 | Back up the current theme and your content | 2 minutes |
| 1 | Copy the verification and ad snippets you want to keep | 3 minutes |
| 2 | Apply a default Blogger theme, then paste the cleaning template | 2 minutes |
| 3 | Open the blog and read the console | 3 minutes |
| 4 | Delete the flagged gadgets in Layout | 5 to 20 minutes |
| 5 | Re-read the console until residue reports zero | 2 minutes |
| 6 | Review the settings the report flagged | 5 minutes |
| 7 | Install your new theme | 2 minutes |
Step 0: back up twice, in two different ways
Go to Theme, open the menu beside the Customize button, and choose Backup. You now have your current theme as an .xml file. Then go to Settings and use Back up content to export your posts, pages and comments. The theme backup protects your design. The content backup protects everything that actually matters. The cleaning template does not touch content, but a habit of exporting before structural work is the cheapest insurance in blogging.
Step 1: rescue the snippets that live in your theme head
Before you wipe anything, open your current theme in Edit HTML, press Ctrl and F, and search the head for anything you cannot regenerate. In practice that is a short list: site verification meta tags for Search Console, Bing or Pinterest, any AdSense or ad network identifier, and any hand-written structured data. Paste them into a plain text file. Ninety percent of cleanup regrets come from skipping this one step.
Step 2: apply a default theme, then paste the cleaning template
First apply one of Blogger's own themes, such as Contempo, Soho or Notable, from the default themes list. This resets the structure to a known state before you strip it. Then open Theme, Edit HTML, click inside the code box, select everything with Ctrl and A, delete it, paste the cleaning template, and save. If you prefer, the equivalent route is Theme, menu, Restore, then upload the .xml file. Restoring from a file is slightly less error-prone because there is no chance of leaving a stray line behind.
Blogger may warn that some gadgets are not present in the new theme and ask whether to keep or delete them. Choose to keep them. That sounds backwards during a cleanup, but it is exactly right: keeping them means they stay visible in Layout, where you can inspect them deliberately. Deleting them at this prompt is a blind mass deletion with no record of what was thrown away.
Step 3: open your blog and read the console
Visit your blog's home page in a new tab. You will see a plain page: your header, the cleanup console, your posts in simple boxes, whatever gadgets still exist, and a footer. Read the panels from top to bottom. Click Copy report and paste it into your notes. This is your before picture, and comparing it to the after picture is the most satisfying part of the process.
Two refinements are worth doing here. Reload with ?m=1 appended to the URL to see what mobile visitors get, since some gadgets only load in one view. And visit one post page, because gadgets configured to show only on item pages will not appear on the homepage report.
Step 4: delete the flagged gadgets in Layout
Go to Layout. Work directly from the report: for every identifier the console listed as carrying code, empty, or duplicated, open it and read it before deleting. You are looking for three things: a snippet you want to keep, a script that explains a performance problem, and gadgets that are simply dead weight.
When a gadget holds something worth keeping, copy the content into your notes file, then delete the gadget anyway. Reinstating a snippet in your new theme takes seconds. Carrying an entire old gadget forward carries its baggage with it.
Step 5: verify with a second read
Reload your blog and read the console again. The target is straightforward. Residue trace reports zero, gadgets injecting code reports zero, duplicated types reports none, and the only remaining entries in the gadget inventory are the ones you consciously want. Copy the report again. Put the two reports side by side and you have documentation of exactly what you removed.
Step 6: close the settings loop
Open Settings and check the items the report cannot fix for you: custom robots.txt, custom robots header tags, custom redirects, the post feed footer and redirect, the Google Analytics field, and your ad settings. On a blog that has changed themes several times, at least one of these usually holds something nobody remembers adding.
Step 7: install the real theme
Now paste your new theme, or restore it from its .xml file. It lands on a blog where nothing competes with it. Add back the snippets from your notes file, configure the gadgets you actually want, and check your pages once more. The difference in how a premium theme behaves on a cleaned blog is not subtle, and it is the whole reason this workflow exists.
When to Use a Cleaning Template, and When Not To
| Situation | Verdict | Reason |
|---|---|---|
| About to install a new premium theme | Use it | The single highest-value moment. A clean base is what the theme was tested against. |
| Just removed a heavy multi-purpose theme | Use it | Those themes distribute code across many gadgets, most of which survive removal. |
| Blog became slow with no content change | Use it | The console will show you in seconds whether foreign scripts are the cause. |
| Layout breaks in ways the theme should not cause | Use it | Stripping to a bare skeleton separates theme bugs from residue bugs. |
| Inheriting, buying or auditing someone else's blog | Use it | It is the fastest honest inventory of what a blog is really running. |
| Preparing to migrate away from Blogger | Use it | Cleaning before export means importing content rather than importing mess. |
| Your current theme works perfectly | Skip it | There is nothing to gain. Do not reset a system that is behaving. |
| During a traffic spike or a live campaign | Wait | Your blog will look bare for the duration. Choose a quiet window. |
| Mid-review for an ad network | Wait | A reviewer landing on a bare blog is a bad first impression and can delay approval. |
| You want a permanent minimal theme | Do not | This file is a workshop tool, not a design. It has no SEO structure and no reader features. |
What the Cleaning Template Never Touches
People hesitate at the moment they are about to select everything and delete it. That hesitation is healthy, so here is the exact boundary.
| Safe, never affected | Changed by this process |
|---|---|
| Posts, drafts and scheduled posts | The active theme markup and styling |
| Pages, comments and images | Which gadgets are rendered, and which you choose to delete |
| Labels, permalinks and archives | Theme Designer variable values, which belong to the theme |
| Blog address and custom domain | Any snippet that existed only inside the old theme head |
| Followers, subscribers and email list | Gadget arrangement in Layout |
| Blogger settings and permissions | Nothing else |
| AdSense account and site association | |
| Search Console property, sitemap and feeds |
Your permalinks do not change, so your rankings do not evaporate. Your feeds keep working, because the template includes Blogger's standard head content, which is what emits the canonical link, the feed links and the character set. The only truly irreversible action in this whole workflow is you choosing to delete a gadget in Layout, which is why you read each one and copy out anything worth keeping first.
Residue, Core Web Vitals and SEO: What Actually Matters
It is tempting to promise that cleaning your template will lift your rankings. That is not how search works, and overselling it would be doing you a disservice. What residue affects is measurable and specific.
Render blocking and Largest Contentful Paint
Every stylesheet in the head blocks rendering until it arrives. A leftover theme CSS file on a third-party CDN adds a DNS lookup, a TLS handshake and a download before your text can paint. Two or three of those in sequence is how a blog with three hundred words of content ends up with a slow LCP. Google's guidance puts a good LCP at two and a half seconds or less, and removing dead stylesheets is one of the few optimizations that costs nothing and helps immediately.
Layout shift
Gadgets that inject content after load push your text around. That is Cumulative Layout Shift, where good means 0.1 or less. Orphan gadgets are unusually bad offenders because nobody has styled or reserved space for them in the current theme. They arrive late and unannounced.
Interaction latency
Duplicate libraries are the classic Blogger residue story: one copy of jQuery from the old theme's gadget, another from the new theme, both parsed and executed on every page view. Interaction to Next Paint, which replaced First Input Delay as a Core Web Vital in 2024, is sensitive to exactly this kind of wasted main-thread work. Good is 200 milliseconds or less.
Unused CSS and JS
Open Chrome DevTools, then the Coverage panel, and reload your blog. It shows the percentage of each file that is never used. On a blog carrying residue, it is common to see two or three files at over ninety percent unused. Those are pure transfer cost with zero benefit.
Crawling and indexing
Crawl budget is rarely the binding constraint on a normal blog, so do not expect miracles there. What does matter is correctness: a stale robots.txt rule that blocks a directory, a leftover noindex header tag on a page you want ranked, a redirect that sends a crawler somewhere unintended. Those are real ranking problems, they are invisible in the design, and the cleanup workflow points you straight at them.
What cleaning cannot do
It will not make thin content rank, will not replace internal linking, and will not compensate for a slow theme. If your new theme is heavy, a clean base makes it measurable rather than mysterious, but the weight is still the theme's. Treat the cleaning template as an instrument, not a remedy.
Measuring the Result Properly
A cleanup you did not measure is a cleanup you cannot defend. Take these five numbers before you start and again when you finish, all on the same page and preferably on the same connection.
| Metric | Where to read it | What improvement looks like |
|---|---|---|
| Requests and transfer size | DevTools, Network panel, with cache disabled | Fewer requests, fewer distinct domains, smaller transfer |
| Unused bytes | DevTools, Coverage panel | No file sitting at ninety percent unused |
| LCP, CLS, INP | PageSpeed Insights or a Lighthouse run | LCP under 2.5s, CLS at or under 0.1, INP at or under 200ms |
| DOM elements | The cleanup console, panel two | A bare page should sit in the hundreds, not the thousands |
| Third-party domains | The cleanup console, panel four | Zero residue entries, only the ads you deliberately keep |
One methodological note that saves arguments with yourself: field data in Search Console and the Core Web Vitals report updates over a rolling twenty-eight day window. Lab tools respond immediately, field data does not. If you clean today, judge the lab numbers today and the field numbers next month.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| Blogger refuses to save the template | Content pasted before or after the file, or a partial copy | Select all in the code box, delete, paste the file again from the first line to the last |
| Posts do not appear | The Blog gadget was deleted from the layout at some point | Restore the cleaning template from the .xml file, which re-declares the Blog gadget |
| Console does not show | JavaScript blocked by an extension | Test without an ad blocker, and make sure scripting is enabled for your blog |
| Gadgets keep coming back | You deleted them from the theme XML but not from Layout | Delete them in Layout, which is where gadget data actually lives |
| Residue reports zero but the blog is still slow | The weight is in your content: huge images, embeds, long feeds | Check image dimensions and the number of posts on the homepage |
| Layout editor looks scrambled | Browser cache holding the previous theme's editor CSS | Hard reload with Ctrl, Shift and R |
| Old theme cannot be uploaded again | It declares a widget type Blogger has retired | Remove those widget declarations from the old file before restoring it |
| Ads disappeared | The ad code lived in the theme head or in a deleted gadget | Re-add it from your notes file after installing the new theme |
| Search Console verification lost | Verification used a meta tag in the old theme head | Re-add the tag to the new theme, or switch to a verification method that is not theme dependent |
Advanced Uses Beyond a Theme Change
As a diagnostic instrument on a staging blog
Create a free blogspot blog, install the theme you are evaluating, then swap to the cleaning template and read the console. You learn what a theme really loads without touching your live site. Template developers can use the same trick as a pre-release audit.
Before handing over or selling a blog
A clean blog with a copied report attached is a professional handover. The buyer sees exactly what is installed, and you are not passing along three abandoned analytics scripts with somebody else's identifiers in them.
Before migrating to another platform
WordPress importers bring over post HTML as it is. Inline styles, old font tags and gadget leftovers in your content come along for the ride. Running the console first tells you how much content-level cleanup you are facing, which is far cheaper to fix before a migration than after.
As a periodic audit
Once a year, back up the current theme, install the cleaning template for ten minutes, read the report, and restore. You will be surprised how much accumulates in a year of small experiments with widgets and snippets.
How It Compares to the Alternatives
| Approach | Removes gadget residue | Shows you what is wrong | Risk |
|---|---|---|---|
| Paste the new theme over the old one | No | No | Low, but nothing is solved |
| Switch to a default Blogger theme | Partly, by hiding gadgets | No | Low, but residue stays stored |
| Classic blank cleaning template | Partly, if you find the gadgets | No | Low |
| Tooliqo Cleaning Template V2.0 | Yes, guided by the report | Yes, five diagnostic panels | Low, and fully reversible |
| Delete gadgets by hand and hope | Sometimes | No | Medium, easy to delete the wrong thing |
| Start a brand new blog | Yes | Not applicable | High, you lose your URLs and history |
Best Practice Checklist
- Back up the theme and export the content before you touch anything.
- Rescue verification tags, ad identifiers and custom snippets into a notes file first.
- Apply a default Blogger theme before pasting the cleaning template.
- Choose keep when Blogger offers to delete gadgets missing from the new theme.
- Read every flagged gadget before deleting it.
- Check the homepage, a post page, and the
?m=1mobile view, because gadgets can differ across them. - Copy the report before and after, and keep both.
- Close the loop in Settings: robots rules, redirects, feed footer, analytics.
- Install the real theme the same day. A cleaning template is not a place to live.
- Re-measure with the same tool on the same page, and judge field data a month later.
Frequently Asked Questions
Will I lose my posts, pages or comments?
No. The template contains no mechanism that could touch them. It is rendering markup, and your content is stored independently of any theme. The content backup in step zero is a precaution, not an expectation.
Will my URLs or rankings change?
Permalinks are a function of your posts and your settings, not your theme, so they do not change. Rankings follow content, links and page experience. What changes is that pages get lighter, which helps page experience signals rather than hurting them.
Do I have to use the Edit HTML box, or can I upload the file?
Either works. Uploading through Restore is safer because it replaces the theme atomically with no chance of a partial paste.
Blogger asks whether to keep or delete gadgets. Which is right?
Keep. That is what makes them visible in Layout so you can inspect them deliberately. Deleting at the prompt is a blind bulk action with no record.
How long should the cleaning template stay installed?
Long enough to finish the work. Twenty minutes on a simple blog, an hour or two on a blog with a decade of history. Do not leave it up for days. It has no SEO structure, no navigation and no reader features by design.
Does it affect AdSense?
Your account, your site association and your payments are unaffected. What can be affected is ad code that lived in the old theme or in a gadget you delete, which is why you copy those snippets out in step one. Do not run this during an ad network review.
Can I run it on a blog with a custom domain?
Yes. The domain is a setting, not part of the theme. The console recognizes your own domain and does not report assets from it as residue.
Why does the console say a gadget carries code when I never added a script?
Because a previous theme did. Multi-purpose Blogger themes routinely create HTML gadgets during installation to hold sliders, tickers and ad slots. Those gadgets belong to your blog, not to the theme, so they outlive it.
Can I use it as a permanent lightweight theme?
Please do not. It is deliberately incomplete: no structured data, no comment rendering, no sharing, no related posts, no meta description handling. As a workshop tool it is excellent, as a public theme it is a liability.
Does the console send my data anywhere?
No. It reads the document that is already in your browser and prints the result. There are no network calls, no storage, and no identifiers collected. The copy button writes to your own clipboard.
Will it fix a theme that was already broken?
It will tell you whether the break came from your blog or from the theme, which is usually the question you actually need answered. If a bare skeleton renders your posts correctly, the fault is not in your content.
What if I want to revert immediately?
Restore the backup you made in step zero. Your gadgets are still in Layout, your content is untouched, and you are back where you started within a minute.
Glossary
| Term | Meaning |
|---|---|
| Theme XML | The file that tells Blogger how to render your blog |
| Section | A container declared with <b:section> that can hold gadgets |
| Gadget or widget | A unit of content declared with <b:widget> and stored with its own identifier |
| Skin | The CSS block inside the theme, including Theme Designer variables |
| Orphan gadget | Stored gadget data that no active theme declares, invisible but not deleted |
| Residue | Any code, data or setting still attached to the blog that belongs to a theme you no longer use |
| Core Web Vitals | Google's page experience metrics: LCP, CLS and INP |
Conclusion
A Blogger blog is two things at once: the content you wrote and the accumulated decisions of every theme you have ever tried. The first is what you care about. The second is what quietly decides how fast your pages load, whether your new design behaves, and why some problems refuse to go away no matter how many templates you paste over them.
The Tooliqo Cleaning Template exists to separate those two layers for a few minutes so you can see clearly, delete deliberately, and start your next theme from an honest baseline. It removes the guesswork by naming what is there and hands you a report you can keep as a record of what your blog was actually running.
Install it, read the console, delete what does not belong, and then install the theme you actually wanted. A clean blog is not merely faster. It is predictable, and predictability is what makes everything else you build on top of it work.
Download: get Tooliqo Cleaning Template V2.0 as a ready-to-upload XML file from the download button below, and keep it in your toolkit. You will want it the next time a theme change is on the horizon.
