Short answer
These three overlays answer different questions. Clip trims an input layer to the shape of an overlay (mask) and keeps only the input's attributes — use it to cut data to a study boundary. Intersection returns the geometric overlap of two layers and keeps the attributes of both, splitting features along every shared boundary — use it when you need combined information ("which soil type falls in which parcel"). Difference removes the overlapping part and keeps the rest of the input — the inverse of Clip — used to erase exclusion zones. The frequent mistake is reaching for Clip when you actually need the attribute combination that only Intersection provides.
Clip: cookie-cutter, one set of attributes
QGIS Clip (native:clip, Vector > Geoprocessing Tools > Clip) cuts the input layer's geometries to the union of the overlay layer's polygons. The overlay is a stencil: its attributes are discarded. The output schema is identical to the input. If a soils layer is clipped by a catchment boundary, you get the soils inside the catchment with their original soil fields — but nothing about the catchment itself.
Clip is the fast, low-cost choice when you only want to limit extent: trim a national roads layer to one region, cut a DEM-derived contour set to a licence block, restrict a points layer to an AOI. Because it does not compute attribute combinations, it is cheaper than Intersection on large datasets.
Intersection: overlap plus combined attributes
QGIS Intersection (native:intersection) returns only the geometry common to both inputs and produces a layer carrying attributes from both layers. Every output feature is the piece where one input polygon overlaps one overlay polygon, and it is split at all those boundaries. The result is usually more features than either input.
This is the tool for analytical overlay: intersect geology with land parcels and each output polygon tells you both its rock unit and its parcel ID, so you can compute, say, the area of a given formation per landowner. After an intersection you typically recalculate $area because features have been subdivided. Field-name collisions between the two inputs get suffixed (e.g. name_2); rename them so the output stays readable.
Difference: erase the overlap
QGIS Difference (native:difference) keeps the part of the input that does not overlap the overlay layer, retaining only the input's attributes. It is Clip turned inside out. Use it to subtract: remove protected areas from a candidate-siting layer, cut lakes out of a land-cover polygon, or remove already-surveyed ground from a new survey extent. Order matters — A difference B is not B difference A.
A related tool, Symmetrical difference, keeps the parts of each layer that the other does not cover (everything except the overlap) and is occasionally useful for change detection between two versions of a polygon set.
A quick decision guide
- Want the input trimmed to a boundary, keeping only input fields → Clip.
- Want only the overlap, with attributes from both layers → Intersection.
- Want everything except the overlap, keeping input fields → Difference.
- Want everything from both, attributes merged where they overlap → Union (a fourth overlay, the geometric superset).
Worked example: geology by parcel within a study area
You have geology (polygons, field unit), parcels (polygons, field parcel_id), and aoi (one study-area polygon). Goal: area of each geological unit per parcel, restricted to the AOI.
- Confirm all three share one CRS — reproject to EPSG:2154 if not (
native:reprojectlayer). - Run Fix geometries (
native:fixgeometries) ongeologyandparcelsto remove self-intersections that would silently drop features. - Clip
geologybyaoi→geology_aoi(extent now limited, soil fields intact). - Intersection
geology_aoiwithparcels→geol_by_parcel, carryingunitandparcel_id. - Field calculator: create
area_m2 = $area(recalculate, since features were split). - Summarise: Processing > Statistics by categories, grouping by
unitandparcel_id, sum ofarea_m2.
Doing Clip first shrinks the data before the more expensive Intersection, which is the efficient order on large layers.
Common pitfalls and why they happen
- Empty output. Usually mismatched CRS (the layers do not occupy the same coordinate space, so nothing overlaps) or genuinely no overlap. Reproject to a common CRS and check extents in the canvas.
- Dropped or mangled features. Invalid geometries — ring self-intersections, duplicate vertices — make the overlay engine skip features. Run Fix geometries on both inputs first; GEOS overlay operations assume valid OGC geometry.
- Wrong attributes after the operation. Expecting overlay fields in a Clip output — Clip discards them by design; use Intersection.
- Wrong erase direction. Difference with inputs swapped erases the keeper. Remember: output = input − overlay.
- Sliver polygons. Tiny artefacts along edges where two near-coincident boundaries do not line up exactly. Filter by a small
$areathreshold or snap layers to a common boundary before overlay. - Multipart confusion downstream. Overlay can produce multipart features; Multipart to singleparts before per-feature area stats if you need one row per polygon.
QA and validation
After any overlay, sanity-check the feature count and total area. For Clip and Difference, the sum of the clipped area plus the differenced area should equal the original input area within rounding. For Intersection, no output polygon should fall outside either input — overlay the result on both sources and look for stray geometry. Inspect the attribute table for null fields and unexpected _2 suffixes, and zoom to the AOI edges where slivers and clipping errors concentrate rather than trusting the clean interior.
Bathyl perspective
Choosing the correct overlay is really choosing what question the output is meant to answer: extent (Clip), combined attributes (Intersection), or exclusion (Difference). We standardise inputs to one CRS, validate geometry before overlay, and recompute area afterwards so downstream area-based reporting is defensible rather than approximate.
Related reading
- QGIS Dissolve for Geological Units
- QGIS Buffer Analysis Without CRS Mistakes
- QGIS Topology Checks for Polygon Maps
- GIS and spatial analysis