A heavy SketchUp file is rarely heavy for the reason its owner assumes. The usual suspect — too much geometry — is on the list, but it is not at the top. In our experience across client apartment projects, the order of impact runs: embedded texture resolution first, duplicated materials second, unpurged components third, hidden geometry smuggled in by imports fourth, and excessive segment counts on arcs and circles fifth. That ranking is qualitative, drawn from practice; the benchmark at the end of this article exists to attach numbers to it.

The culprits, in order of impact

  1. Embedded texture resolution. SketchUp stores every texture inside the .skp. A 4096-pixel photograph applied to a cabinet handle weighs the same as a 4096-pixel photograph applied to a facade — the file does not care how small the face is.
  2. Duplicated materials. Every 3D Warehouse import can bring its own copies of materials you already have — Wood, Wood1, Wood copy — and each duplicate embeds its own copy of the texture. Ten duplicates means the same image stored ten times.
  3. Unpurged components. Every component you ever placed and deleted still lives in the file's component library, textures and all, until something removes the definition itself.
  4. Hidden geometry from imports. CAD files arrive with hatches and construction linework; Warehouse furniture arrives with fully modelled drawer runners, hinges and screw threads you will never see. Hidden is not gone — it is merely invisible weight.
  5. Segment counts on arcs. SketchUp's own circles default to 24 sides; meshes exported from subdivision modellers arrive far denser, and a Follow Me sweep along a dense path multiplies segments into real polygon counts.

The standard manual pass: Purge Unused

The built-in cleanup lives in Window → Model Info → Statistics → Purge Unused, which clears unused components, materials and styles in one click. The Components, Materials and Styles trays each also carry their own purge under the details arrow — and this is where order starts to matter.

Purge components before materials. A material applied only inside an unused component definition still counts as in use — the reference sits in the definition, not in your model — so purging materials first leaves those textures behind. Remove the definitions, and the materials they held hostage become purgeable on the second pass. The one-click Model Info button handles the ordering for you; the tray-by-tray route does not.

What Purge cannot see. Purge counts references, not sense. Five identical materials under five different names, each painted onto at least one face, are five materials in use. A 4096-pixel texture on a doorknob is a texture in use. Purge removes what nothing points at — it has no opinion about whether what remains is oversized, duplicated or absurd.

CleanUp³: free, good, and not quite enough

ThomThom's CleanUp³ is free, has held its reputation for over a decade, and comes from the same developer as the equally respected Solid Inspector². If you install one cleanup extension today, install that one. In a single configurable pass it goes meaningfully beyond what Purge can reach:

  • Merges materials with identical properties — the duplicate-texture problem Purge is blind to.
  • Erases stray and lonely edges left over from editing.
  • Merges coplanar faces, removing the invisible seams that imports scatter across flat surfaces.
  • Repairs split edges and can optionally delete hidden geometry.
  • Runs Purge Unused as part of the pass, in the correct order.

What it leaves untouched are the two heaviest items on the ranked list: it never resamples a texture, and it never resegments an arc. A model can emerge from CleanUp³ genuinely cleaner — fewer materials, fewer stray edges, tidier faces — while its file size barely moves, because the megabytes were in the pixels all along. This is not a criticism of the extension; downsampling textures is simply outside its brief. It is, however, the reason the manual pass survives.

The benchmark: methodology now, numbers next

We are measuring ten to twelve real 3D Warehouse models — furniture-heavy interiors and standalone furniture pieces, the natural habitat of an interior design studio — on one machine, one SketchUp version, one graphics driver. For each model we record three things: file size on disk, polygon count from Model Info's edge and face statistics, and frame rate during a fixed scripted orbit. We publish the methodology before the results so the results cannot be quietly shaped to fit it.

  1. Baseline — the model exactly as downloaded, measured before anything touches it.
  2. Purge only — Model Info → Purge Unused, nothing else. This isolates what the built-in tool is worth on its own.
  3. CleanUp³ defaults — a standard pass with the extension's default settings, applied on top of the purge.
  4. Texture cap — every embedded texture downsampled to a 1024-pixel maximum edge, using SketchUp's own free Material Resizer extension.

Each step is cumulative and each is measured separately, so the table attributes the saving to the step that earned it. Re-modelling dense arcs is excluded from the protocol: no tool automates it safely, and a benchmark should measure what a working designer would actually do on a deadline.

StepMedian file sizeMedian polygon countMedian orbit FPS
Baseline (as downloaded)— measurement pending— measurement pending— measurement pending
After Purge Unused— measurement pending— measurement pending— measurement pending
After CleanUp³ (defaults)— measurement pending— measurement pending— measurement pending
After 1024 px texture cap— measurement pending— measurement pending— measurement pending

File size per model at each cleanup step — ten to twelve 3D Warehouse models, one bar group per model, baseline through texture cap.

If the measurements contradict our ranking — if, say, purging alone outweighs the texture cap on typical Warehouse interiors — the ranking gets rewritten, not the data. That is the entire point of publishing the method first.

Where this is heading

The full pass — purge in the right order, merge duplicate materials, cap texture sizes, strip hidden import geometry — currently spans one built-in dialog, two free extensions (CleanUp³ and Material Resizer) and a stretch of manual work. Model Hygiene Pro is being built to run the whole sequence from a single panel; it is in development, not on sale, and the benchmark above is part of building it honestly. In the meantime the free Essentials Toolkit carries the everyday basics, and CleanUp³ remains the free tool we would recommend to anyone, including our own clients' other consultants.

Follow the Model Hygiene Pro build. Model Hygiene Pro will run this entire pass from one panel — it is in development, and the benchmark numbers below will land on its page as we measure them. Follow the build. Take a look →