crochet-heart-granny
Free Crochet Pattern

Crochet Heart Granny Square Tote Bag

🧶 Worsted mercerized cotton, ~240 g⏱️ 8 to 12 hours across sessions🪝 4 mm hook📊 18 squares, joined and seamed📏 About 31 cm square
Your Starting Point

There is a particular kind of pride in carrying a bag that started as eighteen separate squares of yarn. Not a kit, not a printed pattern stamped onto fabric — eighteen small hearts you made one round at a time, joined into something sturdy enough to hold your actual life.

This tote is a granny square project wearing a disguise. Each heart granny square uses the increase-and-corner logic you already know if you have ever made a granny square, just wrapped around a heart motif instead of a plain center ring. Eighteen of them, joined edge to edge, folded once, and given two reinforced straps.

Nothing here is fast. Budget it like a real project — a square a sitting, a few evenings for assembly — and mercerized cotton so the finished bag holds its shape instead of stretching under your keys and a water bottle.

Section 1 · Start Here

What You Are Making

A crochet heart granny square tote bag is a structured tote built from eighteen heart-motif granny squares — nine seamed into a front panel, nine into a back panel — joined with a flat slip stitch seam and finished with two straps reinforced against stretching. Finished size is roughly 31 cm square, using worsted mercerized cotton on a 4 mm hook.

Anatomy of the heart granny square used in the crochet heart tote bag
Anatomy of the heart granny square: rounds 1 to 2 form the heart, rounds 3 to 5 square it off

The anatomy of this bag

  • 18 heart granny squares — each a heart worked in the round, then squared off with three border rounds
  • A 3×6 panel — all eighteen squares seamed flat before anything is folded
  • Outer-loop seaming — a slip stitch join that catches only the outer loop of each square, so the seam sits flat rather than ridged
  • Two reinforced straps — double crochet locked with a final row of tight slip stitches so they cannot stretch under weight
  • Flat, chained corners — a chain 1 at every turn keeps the bottom of the bag from puckering

Why mercerized cotton, specifically

Acrylic and wool both have memory and stretch built in — useful for a jumper, a problem for a bag that has to hold its shape while it hangs from your shoulder full of things. Mercerized cotton has almost none of that give, which is what lets eighteen squares of open, textured stitching add up to a bag rather than a sack. If you have made the heart trinket dish, this is the same heart-shaping logic scaled up and boxed off into a square.

Section 2 · Supplies

Materials You Need

Two colors, two hook sizes are not required — this pattern uses one hook throughout — but two colors of the same yarn base, so tension stays identical between the heart and the background.

ItemDetailsNotes
Heart yarnWorsted mercerized cotton, ~54 gAny strong contrast color against the background
Background yarnWorsted mercerized cotton, ~186 gMakes up most of every square plus both straps
Crochet hook4 mmOne hook for the whole project, squares and straps alike
Yarn needleBlunt tipFor weaving in a genuinely large number of ends
ScissorsSharp fabric scissorsClean cuts keep tails from fraying before weaving in
Optional liningFabric and sewing kitWorth adding if the bag will carry anything heavy daily

Swipe the table sideways to see every column.

Why mercerized, not just cotton: mercerization is a finishing process that tightens the fiber and gives it a slight sheen and less stretch than raw cotton. It costs a little more per skein and is worth every bit of it here — this is a structural project, not a drapey one.

You will weave in a lot of ends: two per square minimum, times eighteen squares, plus the straps. Weave each square’s ends in before you touch a seam. Trying to hide tails through four layers of finished bag is a genuinely bad afternoon.

Section 3 · Stitch Guide

Abbreviations You Will See

ShortMeansShortMeans
chchaintrtreble crochet
dcdouble crochethdchalf double crochet
scsingle crochetsl stslip stitch
st(s)stitch(es)MCmagic circle

Swipe the table sideways to see every column.

US terms throughout. A US double crochet is a UK treble; a US treble is a UK double treble. If your heart squares are coming out noticeably taller and looser than the photos, check which convention your eyes have defaulted to.

The one thing worth practicing first

Round 2 of the heart — the round that actually makes the heart shape — is the only genuinely unusual round in the whole pattern. It fans eight treble crochets into a single stitch on each side to form the top lobes, then pulls everything back to a point with a chain-1 gap at the bottom. Everything after that is ordinary granny-square logic. Make one heart center in scrap yarn before you commit to seventeen more.

Section 4 · The Heart Motif

Crocheting the Heart Granny Square (make 18)

Every square in this bag starts the same way: a small heart worked in the round, then squared off with three border rounds that fill the gaps around the curves.

  1. Round 1 (heart center): with heart color, make a magic ring. Ch 3 (counts as first dc), work 11 more dc into the ring — 12 dc total. Slip stitch to the top of the ch 3 and pull the tail to close the ring. [12]
  2. Round 2 (heart shape): do not chain. Skip the first 2 sts. In the 3rd st, work 8 tr, fanning them to the right as you go. Work 1 dc in each of the next 2 sts. In the next st work (1 dc, 1 tr). Chain 1 — this gap is the bottom point. Mirror the other side: (1 tr, 1 dc) in the next st, 1 dc in each of the next 2 sts, 8 tr in the next st. Skip the last 2 sts and slip stitch between the first and last stitch of round 1. Fasten off.
  3. Round 3 (squaring off): join background color to the 4th tr of round 2. Ch 3, dc in the same st. Work hdc, sc, hdc, dc, tr across the remaining side stitches to fill the curve. In the bottom-left corner work (2 tr, ch 2, 2 tr). Work dc, hdc, then 1 sc in the bottom chain-1 space, then mirror back out: hdc, dc. Bottom-right corner: (2 tr, ch 2, 2 tr). Continue tr, dc, hdc, sc, hdc up the second side. Top-right corner: (2 dc, ch 2, 2 dc). Across the top: hdc, dc2tog, 1 tr into the round-1 slip-stitch space, dc2tog, hdc. Top-left corner: 2 dc, ch 2, slip stitch to the top of the beginning ch 3.
  4. Round 4 (first increase): ch 3, dc in the ch-2 space below. Dc in each of the next 9 sts along the side. In each corner ch-2 space work (2 dc, ch 2, 2 dc). Repeat around all four sides. Slip stitch to close. [13 sts per side]
  5. Round 5 (second increase): ch 3, dc in the ch-2 space below. Dc in each of the next 13 sts along the side. In each corner ch-2 space work (2 dc, ch 2, 2 dc). Repeat around. Slip stitch to close. Fasten off. [17 sts per side]
Stitch counts per side across rounds 3 to 5 of the heart granny square
Stitch counts per side across rounds 3 to 5 of the heart granny square, each round adding 4 stitches per side
Keep round 3 symmetrical: the single treble at the top of the heart must land exactly in the slip-stitch space between the first and last stitch of round 1. Off by one stitch either way and the top of the heart puckers instead of forming two even lobes.
How every corner of the heart granny square is worked
Every corner of the heart granny square is worked as two stitches, chain 2, two stitches

Make eighteen of these. Weave in every tail before you move to assembly — flat squares are forgiving, a seamed bag is not.

Section 5 · Assembly

Seaming the Panels and Folding the Bag

Eighteen finished squares become one bag through a slip-stitch seam that catches only the outer loop of each square, so the join sits flat rather than ridged on the inside.

Arranging eighteen heart granny squares into a 3 by 6 grid and folding in half
Arranging eighteen heart granny squares into a 3 by 6 grid before folding in half
  1. Arrange the squares in a 3-wide by 6-tall grid, all hearts facing the same way, right side up.
  2. Join the first pair: place two squares back to back, right sides facing outward. Chain 1, insert your hook through the corner ch-2 spaces of both squares, and slip stitch them together.
  3. Seam the edge: continue slip stitching across, catching the front outer loop of the nearer square and the back outer loop of the farther square with each stitch.
  4. Bridge each gap: at the end of a square, slip stitch into both corner ch-2 spaces, chain 1, then move to the next pair and begin again in their corner spaces. That chain 1 is what stops the seam from bunching.
  5. Repeat until all eighteen squares form one 3×6 rectangular panel.
Outer loop slip stitch seaming technique for joining crochet squares
Outer loop slip stitch technique for seaming crochet squares together
  1. Fold the panel exactly in half horizontally — you now have a 3×3 front and a 3×3 back, hearts facing outward.
  2. Side seams: attach yarn at a top corner ch-2 space, chain 1, and slip stitch down through both layers using the outer-loop method. Fasten off at the bottom. Repeat on the other side.
  3. Bottom seam: attach yarn at a bottom corner and slip stitch across. At each bottom corner, slip stitch into the corner spaces, chain 1, then slip stitch into the adjacent side’s corner spaces for a smooth turn. Continue up the far side. Fasten off.
Weave in first, seam second. Every tail is far easier to hide on a single flat square than through the two or three layers you will be working through once squares are joined.
Section 6 · Straps

Reinforced Straps and Attachment

Plain double crochet stretches under load — hang a laptop off it for a few weeks and the strap grows a visible inch. A final row of tight slip stitches locks the top loops in place and stops that.

  1. Foundation: chain 100 (yields a strap roughly 50 to 60 cm long once seamed and in use — adjust for a shorter or longer strap).
  2. Row 1: dc in the 3rd chain from the hook and in each chain across. [98 dc]
  3. Row 2: ch 2, turn, dc in the first st and in each st across. [98 dc]
  4. Row 3 (reinforcement): ch 1, turn, work a tight slip stitch in each st across — tight enough that the row visibly locks, not just sits there. Fasten off.
  5. Second strap: repeat rows 1 to 3, but do not fasten off this time — you need the live yarn to attach it.
Flat slip stitch method for attaching straps to the crochet heart tote bag
Flat slip stitch method for attaching a strap to the top edge of the tote bag
  1. Position: both straps attach to the top edge of the middle square on the front and back panels, which spreads the weight evenly.
  2. Flat slip stitch join: with the live yarn on the second strap, chain 1. Insert your hook into the top-right corner ch-2 space of the middle square, then down through the right edge of the strap. Yarn over and pull through everything on the hook.
  3. Anchor the width: move to the next stitch on the bag, hook under the front loop, then down through the middle of the strap. Yarn over, pull through. Repeat across the strap’s width, anchoring it over four to five stitches of the bag’s top edge.
  4. Span the top: slip stitch across the remaining top edge to the opposite middle square and attach the second strap the same way, checking it is not twisted.
  5. Finish: slip stitch the rest of the way around the top edge, fasten off, and weave in the last end.
Do not skip row 3. It is the only thing standing between this bag and a strap that is six inches longer by autumn. Tight slip stitches, every stitch, no exceptions.
Section 7 · Finishing

Care, Troubleshooting and Quick Reference

Final checks before you call it done

  • Run a finger along every seam — missed stitches show up most at the bottom corners, where the bag takes the most strain
  • Count the stitches from each corner ch-2 space to the strap attachment point on both panels — they must match, or the bag hangs crooked
  • Steam block or damp-pin the whole bag to even out tension and flatten any curl at the square edges

Care

SituationWhat to do
Light everyday useSpot clean with a damp cloth and mild detergent
A full washMesh laundry bag, gentle cold cycle, lay flat to dry — never tumble dry, heat shrinks cotton and distorts the shape
Heavy daily carryingSew in a simple fabric lining for extra structure and a place for small pockets

Swipe the table sideways to see every column.

When something looks wrong

ProblemLikely causeFix
Heart looks lopsidedUneven tension or a miscount in round 2Recount the 8 tr on each side — they must match. Mark the center chain-1 space.
Squares are not quite squareCorners worked inconsistentlyAlways exactly (2 sts, ch 2, 2 sts) in every corner space — never more, never fewer
Seams look bulkyMissed the chain 1 between square joinsAlways chain 1 moving from one pair of corner spaces to the next
Straps stretch under loadSkipped the slip-stitch reinforcement rowUnpick to row 2 and add a proper tight row 3
Bag hangs crookedStraps attached to mismatched stitchesCount from the corner space to the attachment point on both panels
Corners look pointy, not roundedCorner turn pulled too tight while seamingChain 1 between the vertical and horizontal seams so the fabric can curve

Swipe the table sideways to see every column.

Want it smaller? Drop to a 2×2 grid per side (8 squares total), attach the straps to the top of the single top squares, and shorten the strap foundation chain to match. Same techniques throughout, about half the squares.

Crochet Heart Granny Square Tote Bag FAQ

Can I use acrylic yarn instead of cotton?
You can, but the bag will sag under real weight. Acrylic has memory and stretch that mercerized cotton doesn’t, and this is a structural project — the stiffness is doing real work, not just adding texture.

Do I have to make all 18 squares?
No. A smaller version works with a 2×2 grid per side (8 squares total). Attach the straps to the top of the single top squares and shorten the strap foundation chain to suit.

My heart granny square keeps curling. What’s wrong?
Almost always tension that’s too tight, or a missed corner increase. Recheck that every corner in rounds 3 through 5 gets the full (2 sts, ch 2, 2 sts) treatment, then block the square with steam to flatten it.

Can I sew the squares together instead of slip stitching?
Yes — mattress stitch or whip stitch with a yarn needle both work fine. The slip stitch method here is faster and produces a sturdier seam that matches the crochet fabric’s texture, which is why it’s the default.

How do I make the straps longer or shorter?
Add or remove chains from the foundation chain. Straps stretch slightly with use, so chain about 10% fewer stitches than your absolute maximum desired length.

Realistically, how long does this take?
Longer than a weekend project. Each heart square runs 20 to 30 minutes once you’re fluent in the pattern, so eighteen squares alone is 6 to 9 hours. Add the straps and assembly and budget 8 to 12 hours total, comfortably spread across several sessions.

Do the front and back panels need to match exactly?
The stitch counts do — every square needs the same 17-stitches-per-side finish, or the seaming won’t line up. The heart color can vary square to square if you want a scrappier look; the construction doesn’t care.

Is this a beginner pattern?
It assumes you’re comfortable with basic granny squares and can follow a written stitch pattern without a video. The heart shaping in round 2 is the only unusual part — practice one before starting all eighteen.

Eighteen Squares, One Bag

What started as a stack of separate heart motifs is now something you can sling over a shoulder and load with an actual afternoon’s worth of things. That is the real payoff of a granny-square project: nothing about the construction is fast, but nothing about it is hard either — just eighteen repeats of a shape you now know cold.

Finished crochet heart granny square tote bag with parts labelled
Finished crochet heart granny square tote bag with every part labelled

Before you call it finished

  • Every seam checked, especially the bottom corners
  • Both straps anchored to matching stitches on front and back
  • Bag steam-blocked so all eighteen squares lie flat
  • All tails buried, none left to work loose with wear

Like working in granny squares?

The same corner logic — minus the heart — builds a faster weekend bag.

Try the V-stitch mesh bag →

crochet heart granny square tote bagfree crochet bag patternheart granny square tutorialcotton crochet toteintermediate crochet projectcrochet bag assemblyreinforced crochet strapshandmade gift idea

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *