I’ve been on the hunt for the perfect granny square bag pattern for ages. You know the one. Structured enough to actually use every day, pretty enough to get compliments, and classic enough to never go out of style.

Well, this is my favourite. This Classic Granny Square Tote Bag combines traditional crochet techniques with modern finishing touches like sleek leather straps and a sweet tassel charm. The result is a bag that looks like it came from a boutique but was made entirely by your own hands.
If you’ve ever wanted to try making a crocheted bag but felt intimidated by the construction, this is your pattern. The whole thing is built from simple granny squares joined together. Once you master that one square, you’ve basically mastered the entire project.
Why You’ll Love This Crochet Tote Bag Pattern
This isn’t just another granny square project that ends up in a drawer. This tote bag is genuinely useful. The structured rectangular shape holds its form beautifully, the flat base means it actually stands up on its own, and the dimensions are generous enough for books, lunch, or a small project bag.
The colour combination in this pattern is absolutely timeless. Black creates a striking backdrop while caramel, cream, and deep tan form those gorgeous concentric rings that make granny squares so satisfying to look at. But here’s the thing. You can easily swap these colours for anything in your stash. Jewel tones, pastels, or a full rainbow would all work beautifully.
What makes this pattern special:
Skill Level and Time Commitment
This pattern sits at an intermediate skill level. You should be comfortable working in the round, joining new colours, and assembling multiple pieces. If you’ve made a basic granny square blanket before, you already have most of the skills you need.
Expect to spend approximately 25 to 40 hours on this project from start to finish. That includes crocheting all 22 squares, joining them into panels, assembling the bag shape, working the top edging, and attaching the straps. Spread it out over a few weeks of evening crafting and you’ll have a beautiful handmade bag before you know it.
Finished Dimensions
The bag face features a 3-wide by 2-tall arrangement of granny squares. Each finished square measures approximately 4.5 inches / 11.5 cm per side after joining.
Materials You’ll Need for This Crochet Bag Pattern
Yarn
You’ll need worsted weight yarn (weight category 4) in four colours. I recommend 100 percent cotton or a cotton-acrylic blend for the best structure. Pure cotton gives the bag body and wears exceptionally well over time.
Colour A (Black): approximately 350 yards / 320 meters
Colour B (Caramel / warm brown): approximately 120 yards / 110 meters
Colour C (Cream / off-white): approximately 120 yards / 110 meters
Colour D (Deep tan / golden brown): approximately 60 yards / 55 meters
Yarn Suggestions
1. Lion Brand 24/7 Cotton in Black, Café Au Lait, Ecru, and Caramel. This 100 percent mercerized cotton holds its shape beautifully and produces a firm, structured fabric ideal for bags.
2. We Are Knitters The Petite Wool (cotton-wool blend). Slightly softer than pure cotton but adds excellent durability. Available in all the neutral tones you need.
3. Paintbox Yarns Simply DK used double-stranded to achieve worsted weight gauge. This gives exceptional stitch definition for the granny motif cluster stitches.
Substitution note: Any worsted weight yarn with low stretch will work. Avoid high-stretch acrylics as they will cause the bag to sag and lose its rectangular silhouette over time. Always test your gauge on a sample square before committing to the full project.
Hook
US size G-6 / 4.0 mm crochet hook
Additional Materials
Gauge
One completed granny square (4 rounds as written) = 4.5 inches / 11.5 cm measured flat after light blocking.
For reference: 10 single crochet (sc) x 12 rows = 4 inches / 10 cm in single crochet (used for top edging only).
Gauge matters for this project. If your square measures smaller than 4.5 inches, go up a hook size. If it measures larger, go down a hook size.
Abbreviations (US Terms)
Before we dive into the step-by-step instructions, let’s go over all the abbreviations you’ll encounter. I’ll define each one so you’re never left guessing.
Special Stitches and Techniques
Granny Cluster (3-dc group)
This is the core unit of every granny square round. You’ll work 3 double crochet stitches into the same chain space. Each group of 3 dc worked into one space counts as one cluster unit.
For corner clusters: Work 3 dc, ch 2, 3 dc all into the same corner chain-2 space.
Step by step for a 3-dc group:
1. Yarn over.
2. Insert hook into designated chain space.
3. Yarn over and pull up a loop (3 loops on hook).
4. Yarn over and pull through 2 loops (2 loops on hook).
5. Yarn over and pull through remaining 2 loops (first dc complete).
6. Repeat steps 1-5 two more times into the same space (3 dc total).
Standing Double Crochet
This technique lets you begin a new colour without a visible join. It’s optional but creates a cleaner look.
1. Make a slip knot with new colour on hook.
2. Yarn over once.
3. Insert hook into designated stitch or space.
4. Yarn over and pull up a loop (3 loops on hook).
5. Yarn over and pull through 2 loops (2 loops on hook).
6. Yarn over and pull through remaining 2 loops (dc complete).
Flat Join
This creates a visible decorative ridge when joining squares.
1. Hold two squares with wrong sides touching and right sides facing out.
2. Insert hook through the back loop only of both corresponding edge stitches simultaneously.
3. Draw up the joining yarn and slip stitch across the shared edge.
Pattern Notes
1. All rounds are worked on the RS. Do not turn between rounds.
2. Ch 3 counts as first dc throughout. When ch 3 is used as first dc, join to the top of ch 3 at the end of the round.
3. Leave approximately 6-inch / 15-cm yarn tails when fastening off for weaving in later.
4. Total squares needed: 22
5. Block each square individually before assembly for best results.
Granny Square Instructions
Make 22 squares total.
Colour Sequence Per Round
Round 1 (Colour B)
Make a magic ring (adjustable loop) with Colour B.
Ch 3 (counts as first dc), work 2 dc into magic ring, ch 2, (3 dc into ring, ch 2) 3 times, join to top of beg ch-3 with sl st. Pull magic ring closed. Fasten off Colour B.
(4 groups of 3-dc, 4 ch-2 corner spaces, 12 dc total)
Round 2 (Colour C)
Join Colour C with standing dc into any corner ch-2 space (or ch 3 to substitute for first dc).
(3 dc, ch 2, 3 dc) into same corner ch-2 space (first corner complete), ch 1, (3 dc, ch 2, 3 dc) into next corner ch-2 space, ch 1, rep from to 2 more times, join to top of beg ch-3. Fasten off Colour C.
(8 groups of 3-dc, 4 ch-2 corner spaces, 4 ch-1 side spaces, 24 dc total)
Round 3 (Colour D)
Join Colour D with standing dc into any corner ch-2 space.
(3 dc, ch 2, 3 dc) into same corner ch-2 space, ch 1, 3 dc into next ch-1 side space, ch 1, (3 dc, ch 2, 3 dc) into next corner ch-2 space, ch 1, 3 dc into next ch-1 side space, ch 1, rep from to 2 more times, join to top of beg ch-3. Fasten off Colour D.
(12 groups of 3-dc, 4 ch-2 corner spaces, 8 ch-1 spaces, 36 dc total)
Round 4 (Colour A)
Join Colour A with standing dc into any corner ch-2 space.
(3 dc, ch 2, 3 dc) into same corner ch-2 space, ch 1, (3 dc into next ch-1 space, ch 1) 2 times, (3 dc, ch 2, 3 dc) into next corner ch-2 space, ch 1, (3 dc into next ch-1 space, ch 1) 2 times, rep from to 2 more times, join to top of beg ch-3. Fasten off Colour A.
(16 groups of 3-dc, 4 ch-2 corner spaces, 12 ch-1 spaces, 48 dc total)
Completed square dimensions after blocking: 4.5 inches / 11.5 cm per side.
Panel Construction
Now you’ll join your squares into five separate panels before assembling the bag.
Panel Layout
Joining Squares (Flat Join Method)
Step 1: Lay squares in correct arrangement with RS facing up.
Step 2: Hold first two adjacent squares with WS together.
Step 3: Join Colour A with a slip knot to hook.
Step 4: Insert hook through back loop of corresponding edge stitches of both squares simultaneously.
Step 5: Draw up Colour A and sl st across the shared edge. Work through each corresponding dc and ch-1 space pairing. At shared ch-1 spaces between squares, insert hook into both corresponding ch-1 spaces and sl st.
Step 6: Fasten off and weave in end.
Step 7: Repeat for all horizontal joins first (joining squares in each row), then vertical joins (joining rows together).
Checkpoint
After completing all panels, lay the front panel flat. It should measure approximately 13.5 in / 34.5 cm wide and 9 in / 23 cm tall. If measurements differ significantly, recheck your square gauge before proceeding.
Bag Assembly
The assembly joins all five panels together using the flat join method with Colour A.
Assembly Sequence
Step 1: Join left side panel to left edge of front panel.
Step 2: Join right side panel to right edge of front panel.
Step 3: Join back panel to open edges of left and right side panels (completing the four walls).
Step 4: Join base panel to bottom edge of front panel, then to bottom edges of both side panels, then to bottom edge of back panel.
For each join, hold two panels WS together with edges aligned. Join Colour A and sl st evenly through both layers.
At corners where three panels meet: Work 2 sc through all available loops to secure the corner firmly. These points bear structural stress.
Checkpoint
After assembly, stand the bag upright on a flat surface. The four walls should stand without buckling and the base should lie flat. The opening should measure approximately 13.5 in / 34.5 cm wide by 4.5 in / 11.5 cm deep.
Top Edging
The top edging stabilizes the opening and provides a firm edge for strap attachment.
With Colour A, starting at any top corner, join with a sl st.
Round 1 (RS)
Ch 1, sc evenly around entire top opening edge. Work 1 sc into each dc, 1 sc into each ch-1 space, and 2 sc into each ch-2 corner space. At join seams between squares, work 1 sc through the seam. Join to first sc with sl st. (96 sc)
Round 2 (RS)
Ch 1, sc in each sc around. Join to first sc with sl st. (96 sc)
Round 3 (RS)
Ch 1, sc in each sc around. Join to first sc with sl st. Fasten off Colour A. (96 sc)
Weave in all ends.
Checkpoint
The top edging band should measure approximately 0.75 to 1 inch / 2 to 2.5 cm tall and should feel noticeably firmer than the square body.
Strap Attachment
This pattern uses pre-made faux-leather or genuine leather straps with D-ring hardware.
Strap Placement
On the front panel, count approximately 10 to 11 stitches in from the left seam for left strap position and 10 to 11 stitches in from the right seam for right strap position. Mark these positions with stitch markers. Repeat identical measurements on the back panel.
Attaching D-rings
Fold a small loop of Colour A yarn, approximately 1.5 inches / 4 cm long, through the D-ring and double it over. Using a yarn needle, sew this loop securely to the inside of the top edging at marked positions. Stitch through multiple layers of the edging rounds for strength.
Alternatively, use a leather punch and Chicago screws to rivet the strap hardware directly through the edging.
Clip strap ends through D-rings or thread strap tabs through and secure with rivets.
Tassel Charm
Attach optional tassel charm to one of the front D-rings before clipping the strap.
Finishing and Blocking
Individual square blocking: Wet each square thoroughly, squeeze out excess water without wringing, pin to a blocking mat at 4.5-inch / 11.5-cm dimensions, and allow to dry completely (minimum 8 hours).
Final blocking: After full assembly, lightly mist the finished bag with water and reshape by hand. Insert a folded towel or cardboard form to maintain the rectangular shape while drying.
Weave in all yarn ends securely, running ends through at least 2 inches / 5 cm of stitching in two directions.
Optional Lining
Cut fabric to match interior dimensions of bag (front/back rectangles, two side rectangles, one base rectangle, all with 0.5 inch / 1.25 cm seam allowance). Sew into a bag shape. Drop lining into bag with RS out, fold top edge over to the inside of the top edging, and hand stitch in place using matching thread and a whip stitch.
Size Customization Tips
To make the bag wider: Add one additional square per row to front, back, and base panels (4 squares per row instead of 3). This adds approximately 4.5 inches / 11.5 cm of width and requires 12 additional squares total.
To make the bag taller: Add one additional row of squares to front, back, and side panels (3 squares tall instead of 2). This adds approximately 4.5 inches / 11.5 cm of height.
To make the bag deeper: Add one additional square to each side panel (making side panels 2 squares wide instead of 1). This adds approximately 4.5 inches / 11.5 cm of depth and requires 4 additional squares.
To change motif scale: A DK weight yarn on a US E-4 / 3.5 mm hook produces squares of approximately 3.5 inches / 9 cm, creating a more compact bag from the same 22-square count.
Care Instructions
For 100 percent cotton: Machine wash on gentle cycle in cold water. Lay flat to dry. Do not tumble dry as this can distort the squares and degrade leather-look straps.
For cotton-acrylic blend: Hand wash in cool water with mild detergent. Gently press out excess water without wringing. Reshape and lay flat to dry.
Remove strap hardware before washing if possible. Do not iron directly over the granny square texture. If pressing is needed, use a damp cloth and cool iron on WS only.
Store the bag stuffed lightly with tissue paper to retain its rectangular shape.

Final Thoughts
This Classic Granny Square Tote Bag is one of those projects that feels like a gift to yourself. Every time you grab it heading out the door, you’ll remember the hours of peaceful crocheting that went into it. The combination of traditional granny squares with modern hardware creates something truly special.
Thank you so much for choosing this pattern. I hope you love making it as much as I loved designing it. If you give it a try, I’d absolutely love to see your finished bag! Tag me on Instagram or share a photo on Facebook. There’s nothing better than seeing these patterns come to life in your hands.
If this pattern caught your eye, save it to your Pinterest boards so you can find it when you’re ready to start. And please drop a comment below if you make one. I’d love to hear which colours you chose and how your bag turned out!
