#so if this is actually wildly inaccurate feel free to let me know 3< /div>
Explore tagged Tumblr posts
Text
little comic for disability pride month! HoH rouge is a headcanon i've had for a while but I never do anything with it... tragic... well now I've changed that :)
#sth#sonic the hedgehog#rouge the bat#amy rose#fanart#comics#id in alt text#umm my only reference for daily living with hearing loss is my grandpa#i wasn't able to find the sort of testimonials I would've liked to see online..#so if this is actually wildly inaccurate feel free to let me know </3#my vision is her hearing loss comes from repeated exposure to gunfire without proper hearing protection#hazard of working with GUN while having bat hearing </3#anyway yay done! that was fast! with the magic of Copy/Pasting Panels ^_^#had to save this as 26 separate files... for layering reasons...
3K notes
·
View notes
Text
Angel Of My Dreams (Chapter 4) John Deacon x Reader Series
Series Summary: After reluctantly joining a band with your childhood best friends, you are thrust into oncoming stardom with no sea legs and an overwhelming sense of anxiety. But you just might find your way, thanks to some seasoned pros by your side. And the interest of one particular bassist.
This series is a work of fiction, and is loosely inspired by real people and events. Absolutely no offense is meant to actual Queen or their families.
PART 1 - PART 2 - PART 3
Pairing: John Deacon x Reader
Chapter Warnings: Strong language. Feelings of anxiety.
Chapter Notes: This one was a doozy! Don’t start your very first fic with only a vague idea of where it’s going, friends! Quick reminder that this is a slow ass burn. Gonna take us a bit to get there but want to point out there will be no infidelity. Also fun fact: my grandfather actually did work at Elaine’s and the Mick Jagger story is true.
Song/Title Inspiration: Angel - Fleetwood Mac
Songs Mentioned:
Hallelujah, I Love Her So - Ray Charles
Lullabye (Goodnight, My Angel) - Billy Joel - [I know it wasn’t released till the 90s but I couldn’t shake it]
Taglist: @yourlocalmusicalprostitute @brianmays-hair @deacyblues @squishy-geckboye @hae-bee @aprilaady
- - - - - - -
July 1982 - Freeport, Long Island
“I’ll be right back,” you sigh to no one in particular, pushing yourself off of the faded paisley couch in the basement of Steve’s parent’s house and making your way upstairs for a glass of water. The dull pounding in your head had only gotten worse from repeatedly staring at the green shag carpeting leftover from the prior decade. Navigating the layout of the familiar house with ease, you make your way to the kitchen.
“Oh, Bunny! Wonderful, I was just about to bring down some iced tea,” calls out Steve’s mother upon seeing you.
“Thanks, Mrs. Castellano. You didn’t have to do that.”
“Well, you know me. It was too quiet when you were all away.” The Limbs had recently gotten back from a small European tour--the album having spread beyond England; to Scotland, France, Germany, and Belgium. “I can’t help myself when I get all of you back under my roof. Speaking of… how’s it going down there?” she presses.
You keep your deadpan expression glued to your face as you lock eyes with the kind woman.
She grimaces, “I had a feeling. You better bring this back yourself then,” she hands you the pitcher.
“Will do. Thanks again, Mrs. C,” you tell her as you start to trudge your body back towards the basement. You let out a deep sigh before yanking the door open and descending into the pit of your own personal hell.
Lawrence’s voice booms from below, “I said simple! A simple four to the floor, and that’s it.”
The rest of The Limbs were right as you left them. Eddie and Rich lounge on the couch that is pushed up against the wood-paneled walls, their guitars strewn casually over their legs as they watch the ongoing argument. Lawrence paces around the room, his hands seemingly glued to his head as he pulls on his hair, and Steve sits behind his drum kit that’s tucked away in the corner. Padded blankets hang from the ceiling around him - a sorry excuse for soundproofing.
“Oh c’mon, I’m just adding some flavor to it! I’ll be as boring, sorry simple, as you want when we actually record it,” Steven replies, twirling a drumstick in his right hand.
Rich lets out a sigh as he clocks you making your way back. “Bun, any help here?”
You softly place the pitcher on a table off to the side before turning to the group, leaning back on your hands. “I just don’t get why we need to debut something new if it’s obviously not ready,” you say carefully.
“Of course you’d say that,” Lawrence grumbled, gesturing in your general direction. “Do you not want to sing it? Because you all told me you thought it was good!”
“It’s not that, and you know it, it’s just-”
“It just needs some work before Sunday, so let’s run the rhythm section again,” Eddie cuts in impatiently from his perch on the back of the couch. He untangles his spidery limbs and makes his way over to where you’re camped out.
“Okay, I’ll explain it again,” Lawrence huffs.
“We don’t need this stress two days before we play,” you tell Eddie softly.
“It’s a hometown show, Y/N,” he looks at you pointedly. “These folks helped get us to where we are. It’ll be nice to give them something new.”
The label had secured The Limbs a night at the Jones Beach Theater, the largest outdoor venue on the island. People from all over traveled to watch such acts as Jimmy Buffet, James Taylor, and Aerosmith, the height of entertainment for the suburban droves. And now they’ll be camping out for the first hometown Limbs show since they’d been signed. It was a huge deal, and you knew it, but you didn’t need something unfamiliar to throw off your already wavering shadow of a presence on stage.
Rich begins to pluck out the new bass line, carefully watching Lawrence’s reaction as he plays. On the pick-up, Steve again adds a light flourish as he joins in.
“Steve! For god’s sake! What did I just say?!”
“Live a little, will ya, Lawrence!” Steven shouts back.
The door to the basement wrenches open, and you all freeze. Mr. Castellano’s footsteps are heavy as he stomps down the stairs, somehow staring all of you down at once.
“Kids. If you’d be so kind as to keep it down a tad. I already have to watch the Yankees hand their asses over to the Blue Jays up there. I would at least like to hear it.”
“Sorry, Dad,” Steve mumbles.
“Thank you.” He starts to make his way back up the stairs but halts, turning to you once again. “Oh, also, someone from your label called before,” he adds on casually.
Steven jumps up from his stool, “What?! Dad!”
“What?! Steven!” he mimics. “I’m not your secretary.”
“Can you just tell us what they said?” Steve scoffs at his father.
“Something about being invited to a show at The Garden tonight. Some band. It’s… Dang it. I wrote it down somewhere,” he mutters, making his way back up the stairs.
“I wonder who it is,” Rich thinks aloud, glancing around to all of you.
Eddie notices as your body immediately stiffens beside him.
“Bun?” he asks slowly. “Do you know who’s playing Madison Square Garden tonight?”
Your eyes find the green carpet once again. Of course you knew who was playing tonight. Queen was beginning their two-night stay at the venue. Dawn wanted to get tickets, but you had argued that it was getting harder for you to go unrecognized in public. That, and the fact you had come to the realization you could only act like a complete fool around any of the band members. You weren’t keen on adding another entry to the list.
“It’s Queen!” Mr. Castellano calls from upstairs. “Starts at 8. You kids should get going if you’re gonna make it.”
“Queen’s playing?” Lawrence marvels. “How did we miss that?”
Rich rises, clapping a hand on his shoulder. “Oh, I don’t know. Maybe all the incessant practicing you’ve been holding us hostage for?”
“She knew,” Eddie smirks, pointing at you with his thumb. You stick your tongue out at him.
“Why didn’t you say anything? I’ve never gotten the chance to see them live before!” Steve questions, already rocking back on his heels with excitement. He had become quite the Queen fan since your run-in with Freddie after sticking to him like glue that entire night.
You shrug, trying to act nonchalant, “I thought we had more important things to focus on.”
“No, that’s not it,” Eddie deduces, narrowing his eyes at you. “You’re just embarrassed that you went all jellied around Mr. Mercury the last time.”
“You’re the one who had to go and tell him all about me fawning over them on MTV!”
“Ooor, maybe it’s because the entirety of the UK saw you making eyes at their bassist on that game show,” Lawrence elaborates.
“There were no eyes being made at anyone,” you grit out defensively, knowing full well that their words were ringing true.
“I, for one, am happy you have a crush, Bun. You know it’s been a while since…” Rich trails off, leaving out the name of a dreaded ex none of you speak of.
You push yourself off your perch on the table with a huff. “You know what? We’ll go. Let’s go. That way, I can disprove all your wildly inaccurate assumptions,” you retort, wanting to get the heat off you fast.
Steven chuckles, “Oh no, she’s broken out her dictionary, folks. Looks like we’ve hit a nerve.” He pokes your side playfully.
“Shut up, please,” you tell them, making your way over to the stairs. “We have a train to catch.”
- - - - - - -
You’re late.
The muffled bass from the arena hits your ears as the Limbs dash up the steps leading from Penn Station to MSG. You all but sprint to catch up with the boy’s long gaits as they approach the box office window.
“Hiya, there’s supposed to be some tickets at will-call for us from the band,” Eddie explains to a woman behind the glass as he tries to catch his breath.
“Name?”
“Uh… Lo & The Limbs?”
“Don’t have anything under that name. Could it be something else?”
“Can you try just The Limbs?” he guesses, turning back to the group with wide, panicked eyes.
“Nope, sorry,” she answers in a monotone.
“How about The Legs,” you offer up from your spot behind Rich’s tall figure. She just shakes her head.
“Well, fuck,” Lawrence sighs, slapping his palms against his legs, obviously ticked off from the 45-minute train ride you’d all barely caught because Steve had changed his shirt a minimum of three times before you could all head out.
“What about Bunny?” Steve asks with a giggle.
The woman raises her eyebrows before checking the list yet again.
“Ah, there you are. Bunny and friends,” she concludes with a sigh.
A chorus of chuckles erupts from the boys. You point your finger at Eddie.
“I’m coming for ya. Eds. You’re not gonna know where or when, but I’ll get you back for this one day,” you tell him playfully.
“Oh yeah, and when you kill me, you can be free to go off and start your solo group, Bunny and Friends.”
She hands you all large laminate passes and gestures for you to follow a security guard. They deposit you in one of the skyboxes on the 10th floor. The Limbs tentatively enter, glancing around at the mishmash of people gathered. Extra crew, friends of the band, some execs, you guess to yourself. The boys immediately descend on the small bar set up in the back of the room.
“Here, I assume you need one of these,” Lawrence shoves a beer in your shaking hands.
“You assume right, good sir.”
“How the hell did we lose Steve already?” Eddie gripes. Rich easily spots him over the tops of heads surrounding them, pointing to a tall figure pushing his way towards the front of the box that opens up into seating. You all follow, mummering polite excuse me’s and thank you’s as you try to keep up. You can hear Play The Game get louder as you approach the view.
Steve rushes to the first row of seats, leaning over the railing of the balcony. “God, will you look at all these people?” he marvels, watching as the dancing lights illuminate the mass below him.
But you’re not looking at the crowd. Your gaze immediately finds the stage, where Freddie is situated behind a piano off to the left. His voice booms as if he were standing right next to you, and you’re positive that even without a mic, it would be heard by all 20,000 individuals. His eyes are closed as he slams hard on the piano, seemingly in his own world, yet the entire crowd is wholly entranced.
Brian then casually lopes to center for his solo. He smiles out at the crowd as his fingers dance across the frets gracefully while Eddie screams in appreciation throughout. He then jogs back to his mic, nearly missing his cue for his backing vocals, but his fingers never rest. Roger’s gravely falsetto catches your ear, and you train your eyes on the multitasking drummer. Even up behind his kit, his presence takes center stage while he keeps perfect time. The group ends the song in perfect synchronicity as the lights cut to black.
The chords for Somebody To Love start with a few majestic trills from Freddie’s voice, but your attention is once again grabbed away. Towards the back of the stage, still cast in darkness, you see John. He quickly shrugs off a fitted leather jacket to reveal an even tighter full cerulean blue ensemble before a roadie slips the strap of his bass over his head. He strolls into the light just as Freddie finishes his improv, lightly bouncing on the balls of his feet as they begin the song.
While he keeps his gaze mostly pointed to the ground, his body already thrums with anticipation. As it really gets going, you watch as he comes to life. You can’t help but hang onto his every movement; the unintentional jerks of his head, the light two-step of his feet as he shuffles along to his bass line's groove. He seems entirely at the will of the song and loving every minute of it. A pang of jealousy hits your chest as you wonder if you’d ever feel that free on stage.
Not much conversation passes between you and the boys as you watch on, more than a bit awestruck. You’re not sure how many songs pass, but fresh beers repeatedly appear in your hands every so often. The lights are dizzyingly bright as your eyes skip around the stage, trying to absorb as much as you can. You find they consistently flick back to John, sucking in every minutia of his performance. Your chest tightens like it did the day of Pop Quiz. Every time he had caught your eye, you remember having to push down the inescapable thoughts you were having. You would tell yourself you don’t know what it is about him, but you’d be lying.
A voice jolts you out of your stupor. “You must be Fred’s young friends he met in New Haven.”
The group turns to find a small man situated in the row behind them wearing an impeccably tailored suit.
“Jim Beach, manager for the band,” he holds out a hand for each of you to shake. “Sorry for the last-minute invitation. Fred was simply beside himself when he remembered you’re all from New York. So glad you could make it.”
“This is incredible, thanks so much for having us,” Rich tells the man sincerely as his gaze keeps being drawn back to the stage.
“Glad you’re enjoying yourselves. We’ve always been big fans of playing here.”
“It’s quite the spectacle,” you muse. “I've never seen The Garden this decked out before. I mean, those lighting rigs alone must cost…” you trail off.
“Believe me, you don’t want to know,” Jim replies with a quirk of his lips. “If you’d all like to follow me downstairs, they’ll be finishing up soon, and I’m sure Fred would love to thank you for coming.”
Steve leaps from his plastic seat, “Yes, please!”
- - - - - - -
The green room is unlike any you’ve ever seen—rust-colored persian rugs litter the floor, the grey slate underneath barely peeking through. Tapestries and various paintings line the walls, somehow giving the usually sterile space a homey feel. Multiple buffet tables filled with every accoutrement imaginable are tucked away in a back corner.
The room is scarce of people for the most part. Crew members filter in and out, grabbing waters, some puffing on cigarettes as they wipe down their sweaty foreheads. A select few have migrated down from the skybox as well.
Lawrence plops down on one of the many leather couches, taking in the room. “So this is what it’s like when you make it?”
“Seems a little excessive even for a band of their stature,” murmurs Rich as if reading your mind.
The deafening roar of the crowd is heard from above, and Queen closes out their encore. The crew members who are now needed for the post set break-down hurry from the room as it gets quiet. You all sit there in near silence for a few moments until a light cheer erupts as Freddie, Brian, and Roger all enter the room, swaddled in thick robes and towels around their necks. They're breathing heavy, still radiating the energy from their set, knowing full well that it was a fantastic show.
“Thank you, darling,” Freddie says as someone hands him a bottle of cold water, glancing around at the people who are still giving the band a wide berth. He spots the group of you huddled out of the way. “Oh!” he exclaims with a clap of his hands, making his way over, “You made it!”
He kisses you all on the cheeks, leaving a ghost of sweat on your faces. “My gangly young saplings! It’s lovely to see you.” He locks eyes with you, a wicked grin on his face. “And you most of all, my little cottontail.”
“You were fantastic Freddie, thank you so much for thinking of us, really,” you tell him genuinely.
“And who have we got here?” a towering Brian May appears behind Freddie.
“Oh yes, may I present to you, Lo & The Limbs!” Freddie says, spreading his arms wide. So he does remember the name; you laugh to yourself.
Eddie pushes further into the group to immediately extend his hand. “You slayed tonight, man. I mean, really slayed.”
Brian returns the shake with a surprised laugh. “Why, thank you. I’ve heard your album, and I have to say, you all… slay as well.”
“Oy, you!” A disheveled looking Roger Taylor makes his way over to the group, people parting like the red sea before him. He marches straight up to you, his finger inches from your nose. “I lost quite a lot of quid, thanks to you.”
You shrink back a bit. “I’m sorry?”
“It would be like John to bring in a ringer at the last second. And after we’d already threw down our bets.” You glance at Freddie with a confused look still on your face.
“What a lovely way to welcome our new friends,” Brian throws an arm over Roger’s shoulder before turning to you. “We may have made a slight wager on John’s most recent Pop Quiz appearance.”
“Slight?” Freddie smirks. “My new Gucci loafers would disagree, darling.”
Roger lets out an incoherent grumble. “Well, he usually fucks it up, doesn’t he? That is until you snuck in there.”
“I’m… sorry?” you offer, failing to find a witty remark for the situation.
He heaves a dramatic sigh, “I guess you’ll just have to make it up to me. I’ve been looking for someone to help me bury the bodies, or do my taxes, or be on call if I perhaps fancied a shag in the middle of the night?” he raises his brows in an overtly teasing manner.
You let out a sharp snort. “Fancy a shag? God, that sounds so much better than “ya wanna go fuck?”
Roger chuckles heartily, “Alright, alright. It was touch and go there for a bit, but I’ve come ‘round. I like this one. She can stay.”
“Y’know, we made a bet of sorts as well,” Lawrence reveals with a mischievous grin. The men all look to him, intrigued. “How long Y/N could keep her cool around that bassist of yours. She failed miserably, and now we shall reap the benefits by teasing her mercilessly until the end of time.”
You swear your mouth couldn’t have dropped open faster. Really need to work on that poker face, you tell yourself.
“Someone was trying to be cool around Deacy? Are you sure you’ve met the man?” Brian laughs.
Staring blankly around, all you know is you need to get out of this situation fast. “I need to pee,” you announce loudly. Really, Y/N? “Excuse me.”
Quickly ducking out of the room before anyone can say anything, you lean your back up against the wall in the hallway as you collect your swimming thoughts. What was it about this band that made you get all dumbstruck? Truth be told, you weren’t usually a timid person. Sure, everyone had bouts of social anxiety now and again, but you navigated social interactions seamlessly for the most part. It had always been easy for you to make friends or crack a quick comeback at a joke. Teasing was a form of endearment where you came from. But ever since you’d entered this new world, it was as if you were a stranger in your body. Who happened to be almost mute apparently. You push yourself off the wall to find a bathroom, your mind still fully occupied by your inner ramblings.
“Points!” a roadie shouts at you, trying to get your attention as they push a cart of cumbersome looking sound equipment right into your path. Before you have time to react, two hands grip your waist and pull you back to your previous position against the wall.
Once again, you are face to face with a familiar chest. You watch as a light chuckle rumbles through it.
“I know it’s cheesy to say, but we have to stop meeting like this. Or do you make it a point to always bumble about in narrow hallways?” John pulls his hands back to his side as you meet his attractive colored eyes, amusement flickering in them.
“John. Hi,” is all you manage.
“Good to see you again, Y/N. Freddie mentioned you all might be stopping by. Glad you could make it.”
You try and will your new persona not to take hold, but all you can do is smile meekly at him. He regards you patiently, cocking his head to the side slightly.
“Did you enjoy the show?”
“Yes, very much,” you rush out quickly. “I’ve never seen anything quite like that before. The Garden’s not an easy place to play.”
“Thank you. You’re kind," he smiles bashfully. "The crowds in New York are some of my favorites. I wish we got the chance to spend more time here, but it seems we’re always passing through.”
“Am I interrupting?” Freddie asks with raised eyebrows from the doorway, a grin on his face.
John makes his way over to him. “Not at all. Just heroically saving Y/N from a near-death run-in with Ratty.”
“Sounds about right,” Freddie muses. “Now, if we’re all safe and sound, I’d like to get out of here. I’m positively starving.”
“Where to?” John asks.
“I want to go someplace real New Yorkers go,” he looks to you expectantly.
“Bun-bun?” you hear from inside before Steve pokes his head around Fred.
“Is your grandpa working tonight?”
- - - - - - -
Even John knew of��Elaine’s. He’d hadn’t heard about it because the notable food, but rather the wide variety of clientele it boasted. Writers, directors, actors, and musicians alike frequently filled the establishment for the ambiance and lively conversation. Freddie would love it.
The large group enters through the wood door under a large awning, immediately hit by a wall of sound. The small place is packed to the brim. Raucous laughter can be heard from most tables as the patrons sardine together, shouting over one another. It had a certain charm, he guessed, taking in the decor of signed book covers and hand-painted murals.
“Bambina!” A small italian-looking maitre d' steps from behind the counter and spreads his arms wide as he engulfs Y/N into a hug. “You didn’t tell me you were stopping by tonight.”
“Sorry, Papa. It was last minute. Just in time for the 10:30 rush by the looks of it.”
An infectiously warm smile spreads across his face. “Do you see me complaining? You hardly visit anymore now that you’re running around the world with that guitar. I’m so proud of you,” he adds softly, kissing her forehead. “Look at these boys!” he greets the rest of The Limbs like family, clapping each man on the back with love. “Am I shrinking already, or are all you still growing?”
“Probably a little of both, Dom,” Eddie laughs with the old man.
“And there’s even more, I see,” he inquires, finally noticing Queen.
It was unusual for them not to be the center of attention in any given situation, all of them hanging back except for Freddie, who marches right up to the man and places a kiss on his cheek.
“Freddie Mercury, a dear friend of your Y/N. It’s a pleasure.”
He looks to Y/N suspiciously. “Are they musicians? You know what happened that one time. I had to pry Elaine off of beating that tiny Mickey guy. I’m telling ya, it was ugly.”
“Not Mickey- Mick, Papa. How many times do I have to tell you?” Y/N shushes him, looking a bit embarrassed.
Dom waves his hand at her, “Whoever he is, that kid owes me his life. I expect these ones to behave.”
Roger snorts from the back, “Not very likely.”
“We promise,” Freddie swears. “And might I say, I love the suit. Very dashing,” he adds on for good measure.
“Well, how else do you think I got this job?” Dom smiles at him with a wink. “C’mon,” he gestures for all to follow as he leads them through the narrow restaurant, to a long table in the back. “Enjoy, boys,” he tells them as he heads back to his post up front, kissing Y/N on the cheek before leaving.
“Come sit next to me, my love,” Freddie calls to Y/N, patting the seat beside him. “If any of your other family members are as outrageous as that man, I want to hear all about them.”
The group moves to squish in around the table. Roger silently catches John’s eye and motions to the seat next to Y/N. He quirks his brows at him, confused, but makes his way to sit between them.
Eddie has taken his rightful place next to Brian with Rich in tow, the three already in deep conversation about the current music scene. Lawrence and Roger sit opposite each other, tearing into the bread basket and chatting about the show. Next to Freddie, Steve is eagerly hanging onto every word he says as he chats to Y/N about her upbringing.
“I’m just hoping one day we get to do something like that, man. Our show on Sunday should be a pretty big deal, though,” Lawrence tells Roger.
“Where are you playing? CBGB? The Palladium?”
“Nah, we’re playing out on the island. Jones Beach.”
“Huh, Long Island. We’ve never been to Long Island before,” Roger ponders, intrigued. “What’s there to do on Long Island?”
“Well, do you like bowling? Strip malls?” Lawrence pauses for effect. “Bowling at strip malls?”
John lightly chuckles. An arm brushes his shoulder, and he moves back slightly as a large woman weaves her hands around Y/N’s shoulders.
“My little Y/N has come back to us! And surrounded by even more devilishly handsome men than usual.”
Y/N turns around in her seat to give the woman a proper hug. “Elaine! It’s been too long.”
“Let me get a good look at you,” she gestures for Y/N to spin as she regards her. “If you need help beating em’ off of ya, I have my bat behind the counter.”
Y/N rolls her eyes, teasingly, “Don’t I know it. I have a vivid childhood memory of you chasing Ron Galella around the dining room with that thing.”
She lets out a larger than life laugh at the memory, patting the young girl on the back. “Oh, those were the good years. So, aren’t you going to introduce me to your new friends?”
“Elaine! I’m hurt you don’t remember our beautiful time together,” Eddie teases her from the table's end.
“Shut it, Eddie,” she reprimands him with a point of her stubby finger.
Y/N turns to the group, spreading her arms wide. “Guys, this is Elaine Kaufman, of Eliane’s, obviously. Elaine, this is Queen.”
She attempts a half-hearted curtsey. “Your majesties. Welcome.”
Before long, Elaine has pulled up a chair as she cracks dirty jokes back and forth with Freddie, which has the rest of the group (and some nearby diners) howling in laughter. Y/N’s now-familiar cackle sends tingles through John’s body once again. She’s more relaxed than he’s previously seen her be. Her hair is tied back in a ponytail, showcasing her broad smile as she looks on fondly, hands waving about whenever she joins in the conversation. Her face is mostly free of makeup and he catches the hint of a dimple on one of her cheeks as she glances over at him to share in a joke.
Freddie gasps as he catches someone entering the front door. “Is that Shirley MacLaine? Slap my ass and call me Sally, that woman does not age.”
“Come with me,” Elaine says, rising from her chair. “I think she’ll like you.”
Food appears without any of them having to order, along with bottles of wine Elaine insisted they’d love. John tentatively takes a bite of one of the dishes set before him.
“Oh god,” he blurts out upon tasting.
Y/N snickers beside him. “Bad, right? I recommend the tortellini if you want something remotely edible.” She pushes a plate towards him, snagging some for herself.
He gulps down water, trying to rid himself of the bland taste. “I would ask why this place is packed, but it seems I’ve already met her.”
“And you would be right. She’s a riot, but I fully blame her for my vulgar vocabulary,” she reveals, taking a giant bite of pasta.
“You and Freddie seem to have that in common.”
Y/N chews slowly as she muses over that sentiment. “That seems to be the only thing we have in common,” she says softly. He cocks his head at her in question.
“It’s just,” she starts, a somber look replacing her previously buoyant one. “Watching him on stage tonight. All of you actually. You seem so free, so comfortable up there. And Freddie is just magnetic, you know that. It’s as if he makes the crowd fall in love with him again and again with every song. I could never do that…”
“I find that quite hard to believe,” he mumbles, continuing on quickly. “Freddie’s a performer. Everything he does up there is for that crowd. Whereas I’m just a musician, I think. It probably helps that I don’t sing. It'll just take some time to find your footing. You don’t have to be both. You don't have to be either for that matter.”
She scoffs lightly, pushing the food around on her plate. “Don’t I? Ever since this all began, I feel like I’m some paper doll or something. People just dress me up and mold me into what they want. And I go right along with it because I don’t even recognize this version of myself if I’m being honest. So I just keep that mask on until I get back home and I can finally breathe. Because then, at least I don’t have to stare at a stranger in the mirror anymore.”
She breaks out of the daze she fell into while rambling. “I’m sorry, I shouldn’t unload on you like this,” she catches herself. “I guess I just had a very different assumption of what my life would look like... I think I'm afraid of losing who I am in all this."
John takes her in, catching glimpses of his former self in her cracks. He itches to soothe her distress. “I can understand,” he tells her sympathetically. “Hell, I thought I was joining a band to play with on the side at uni and look at us now. Sometimes I still feel like I’m leading a double life. I tried to convince myself all this was just a job at first, but I’m sure you’re finding out quickly that’s not always true.”
Y/N looks at him intently, and it’s the first time he truly sees the depth of her eyes. He clears his throat before continuing.
“I've come to learn that the concept of home is a funny thing. For a long time, I held onto the idea of it that I always had for myself, but it’s harder than it looks with what we do,” he sighs, running a hand through his short curls, not wanting to dwell too long on his unpleasent situation back in England.
“But home can be anything really. It can be people,” he says, glancing at his bandmates. “Or even the stage, which sometimes I think is Freddie’s. Or you can be Roger, and make yourself at home wherever you go.”
They glance over at Rog, who is in the middle of an animated story, waving his glass of wine around as it drips on the tablecloth.
“So all you can do is find whatever that home is and hold onto it the best you can. And it might change, but that doesn't mean you have to," he nudges her shoulder with his.
Y/N smiles down at her lap. “Thank you,” she tells him quietly, still swimming in her own thoughts.
“Of course,” he assures, pausing to breathe- not used to giving long-winded explanations. Nervous that he’s pushed too far, he glances over, catching as her shoulders relax.
The restaurant was mostly cleared out by now, save for a few regulars sitting at the tall wood bar. The staff chats casually amongst themselves as they clean off empty tables for the night. Steve is giving Freddie details of the New York club scene, probably hoping to earn himself an invitation one day. Elaine’s regaling Brian, Eddie, and Rich with a story about two writers and a feud of accused plagiarism. Lawrence and Roger were currently attempting to turn their napkins into amusing hats for each other. John finds himself enjoying the young band's presence, their chaotic energy seeming to match Queen’s dynamic quite well.
The group collectively jumps as the music drastically raises in volume, the intro of Ray Charles’ ‘Hallelujah, I Love Her So’ pouring out.
“Oh god, no,” Y/N groans next to him as the waiters all turn their attention to her. Dom appears beside her with an outstretched hand. “Papa, not now, please.”
“Indulge your grandfather, Y/N,” he winks at her as she reluctantly takes his hand, pulling her to the middle of the room. John’s eyebrows shoot up in surprise as the old man springs to life, twirling his granddaughter around the room with ease. The pure spryness of someone that age was genuinely shocking.
“Oh, this is fabulous!” Freddie laughs as he leans his chin forward on his hands.
And it was. The staff cheers, hinting that this was a familiar routine for them. The rest of The Limbs sing along with the track, watching the two affectionately like old family.
Y/N’s apprehensive look fades away as she gives in to the fun, pure joy flashing across her features as she glides along, following her grandfather in the swing dance rather gracefully. She looks free, John thinks to himself, drinking in the true version of the young woman. She was dazzling as her hair fell messily from her ponytail and her laugh was louder than ever as Dom dips her low to the floor, her body bending with him. If this was home, he could see why she was reluctant to leave it behind.
He’s mesmerized by her every movement. She was still an enigma to him, each detail he pulled from her, just making him hungry for more.
You shouldn’t. You’re still married. Well, technically. Papers aren’t signed yet.
“Alright, I’m convinced,” Roger shouts at Lawrence. “Looks like we'll have to stop in Long Island.”
- - - - - - -
“Fuck, it’s cold,” Brian announces, burrowing further into his white windbreaker.
The Jones Beach Theater was tucked right up to the shoreline, causing the spray of the Atlantic to chill the air despite the summer heat. John had never seen a venue like it. It’s as if the vast sea acted as an extended backdrop to the stage, reflecting the stars and inky drape of the night.
The crowd didn’t seem to mind at all. They had been brilliant the entire night, singing along to every one of the songs and dancing in full force. It was perfectly clear how proud they were of their hometown heroes.
The Limbs themselves were a sight to behold from the wings of the stage. The energy from the packed seats had bled over, and all 5 members were indeed feeling it. They had been in perfect sync with each other the entire show, and John was certainly amused by their own way of interacting with their audience. It mostly consisted of them hurling humorous insults back and forth to each other in between songs.
Even Y/N seemed to be enjoying herself, despite her confession the other night. She had taken Freddie’s note that he’d given after seeing her dance and was now stepping out from behind the mic stand for her songs. She slinked around the stage effortlessly, interacting with the other members and the crowd, much to their glee.
“Before we say goodnight to you all, we’d like to leave you with a little something,” Rich calls out over the deafening cheers. “A lullaby of sorts from one of our favorites.”
Y/N drags a stool out to the center of the stage as Lawrence begins a somber melody on the keyboard. The audiences erupts in cheers and John recognizes it as a Billy Joel song.
She takes a seat behind the mic as she gazes out over the crowd. The exhilarated face she had been sporting all night was gone, a shade of melancholy in its place now.
Goodnight, my angel, time to close your eyes
And save these questions for another day
I think I know what you’ve been asking me
I think you know what I’ve been trying to say
Her hypnotic voice pierces through the now-silent crowd. The type of voice you immediately feel in your chest, as if it’s personally strumming your heartstrings. No one dares to sing along, afraid they'll miss a moment of her inflection.
I promised I would never leave you
Then you should always know
Wherever you may go, no matter where you are
I never will be far away
The familiar sight of lighters being illuminated flickers through the sea of people before them, casting a hazy glow on the previously faceless patrons. Their peaceful stares fixed on Y/N, entranced as if she was siren of sorts.
Goodnight my angel, now it’s time to dream
And dream how wonderful your life will be
Someday your child may cry, and if you sing this lullaby
Then in your heart, there will always be a part of me
Her voice breaks a bit, giving away the glassiness of her eyes. They’re not fixed on the crowd, but instead on the sky beyond them. John watches the panes of her face intently. She wasn’t singing to them, he realizes. This was to herself. Possibly to that image in her mind, she had confided in him, the one she was struggling to leave behind—her piece of home.
Someday we’ll all be gone
But lullabies go on and on
“She’s going to be something else, isn’t she?” Freddie asks, mostly to himself.
They never die
That’s how you and I will be
John watches as a single tear slips off the slope of her nose as she finishes, bowing her head.
“Yeah, I think she is.”
#john deacon#john deacon fic#john deacon imagine#john deacon x reader#john deacon series#angelofmydreams
61 notes
·
View notes
Text
Birds Still Sing When They Fall From The Sky
part 1 part 2 part 3 part 4 part 5 part 6 part 7 part 8 part 9 part 10 belongs to this
“You never really thought about it, did you?”
Geralt lifted his head from the notebook he’d been reading; a wildly inaccurate but highly dramatic retelling of one of the time Geralt had been swallowed by a selkimore.
“Of course I thought about it.” He grumbled. “You don’t just jump into a monster’s mouth unprepared.”
Jaskier chuckled and set his quill aside, all the while hiding whatever he had written from Geralt’s searching eyes. He did that more and more often, lately.
“Unsheathing your sword and saying ‘Fuck it’ doesn’t count as preparation, love. But that’s not what I meant.” He hesitated. “I meant retirement. You really never thought about what it would mean for you, did you?”
Geralt grunted. “What does it mean to me then?”
Jaskier took off his glasses to rub his eyes, exhausted from staring at the tiny letters for so long. “Boredom. Obviously.”
“That’s not true. I have you.” Geralt lifted the book. “And I have your stories.”
Jaskier snorted, his lips twitching as though he were to comment on the fact that Geralt now sought out his stories, as he so often did.
“Good to know,” he said instead, putting his glasses back on. “Cause let me tell you, I’m bored out of my mind.” He took the book out of Geralt’s hands and thumbed through it, before snapping it shut. Jaskier frowned and put his glasses back on. “Reading or writing just stories isn’t like the real thing. I miss doing things. At least while Sera was still here, I could feel like I wasn’t utterly useless.”
“You’re not.” At Jaskier’s doubtful look Geralt repeated it more firmly. “You are not. Without you I’d still be out there witchering every day, not knowing when the next time I get to sleep in an actual bed would be.”
“It’s sweet of you to say that.” Jaskier’s eyes softened, but he pressed his lips together before sighing in defeat. “That doesn’t change the fact that now you’re cooped up in here with nothing to do. You can only go on so many walks and listen to the ever same stories so many times. You never made plans for what you would do if you weren’t a witcher anymore.”
Geralt couldn’t supress the scoff. Of course he hadn’t made plans. It doesn’t do well for a witcher to plan for a future he could never have; not if it wasn’t a certainty he would even live to see the next day. That hadn’t kept him from silently wishing.
“You did, though, didn’t you? Make plans?”
Jaskier chuckled and waved his hand dismissively though the air. “Not really. I thought – that is to say, I had this silly little fantasy of becoming a gardener. But I didn’t really think there would ever come a time when I wouldn’t perform anymore.” He wiggled his fingers in front of Geralt’s face. “Look at them! I wouldn’t be able to tend to a garden with fingers like these anyway. Not that I ever would have fancied digging around in the dirt to begin with.”
“I could do it.” Geralt swallowed. “I’ve been covered in worse than just dirt. I might know much about plants apart from which ones I needed for my potions, but you know about flowers, don’t you? You have an eye for pretty things like that.”
Jaskier tensed, his hands sank slowly back into his lap and he stared at Geralt intently, almost hopefully. “What are you saying?”
“That it doesn’t have to be a silly fantasy. We could do it. Together.” Geralt shrugged, hoping it would hide the inexplicable nervousness that had settled in his bones. “Like you said, I don’t have much else to do anyway.”
--
Planting a garden from scratch was harder than Geralt had thought. He spent his days sweating, digging over the earth behind their cottage while Jaskier watched with a grin and an “Inspiration might strike me again, if I get to watch you like this more often from now on” on his lips.
The first patch of flowers they planted never got to bloom. Neither did the second or the third. Too little water. Too much water. The salty air was bad for those types of flowers. There was so much to learn, but Geralt felt himself grow less restless with this new task.
When their fourth seed finally grew into colourful blossoms, Jaskier beamed at him like he had gifted him the moon. Jaskier plucked the first flower, a delicate white thing, and held it up for Geralt, before kissing him softly.
“Thank you, dearest.”
Geralt smiled into the next kiss, drawing back just enough to be able to say “This flower is just as much yours as it is mine.”
More often than not, he found Jaskier hunched over a book about flowers. Whenever he looked up he would tell Geralt with shining eyes about some new flower fact he had learned. It didn’t matter that he might forget all about it in the morning. Jaskier didn’t need to remember every little thing in order to tell Geralt what flowers would go well together. It didn’t matter that his hands were shaky or that his eyes were bad. Making things beautiful was something so inherently Jaskier, that he didn’t need any of the other things.
On the mornings of each market day, Jaskier spent hours arranging bouquets, caressing the petals like a lover. There was a skip in his step, though Geralt had to steady him, on their way into town and once they had set up their stall, Geralt got to watch Jaskier spread his arms and praise their flowers with the same enthusiasm with which he used to announce his newest ballads. His words drew people near, looking at their flowers with real interest.
Warmth blossomed in Geralt’s chest. He could see it in those people’s eyes: they didn’t just stop and stare out of pity for an old man and a retired witcher littered with scars. They were genuinely drawn in by what Jaskier was saying. He had found his voice again.
When they sold their first bouquet, Geralt felt the same rush of excitement that he could feel emanating from Jaskier. That day they didn’t make it back home, before they fell into each other’s arms laughing and with racing heart. Kissing and whispering sweet nothing into each other’s ears.
Geralt hadn’t exactly made a fortune with his occasional hunts, but it had been enough that they wouldn’t have to worry about coin for a while. It was a different kind of relief Geralt felt, knowing that Jaskier didn’t think himself useless anymore, now that he was able to contribute to their income.
That is, when he wasn’t giving roses away for free. It was hard to tell whether Jaskier just plainly forgot that they were supposed to get coin for their flowers, or if it was just in his nature to hand them out. It didn’t matter either way. They could afford to give away some flowers. Especially if the payment for it was Jaskier’s happiness.
Geralt pretended not to notice, averting his face and needlessly rearranging their flowers, whenever Jaskier spotted someone who he thought looked like they could use a flower to brighten their day. He was always right, of course. His flowers, gifted with the words “A pretty rose for an even prettier person” never failed to earn him a beaming smile. However big the other person’s smiles were, they were nothing compared to Jaskier’s soft ones when he saw how happy he was still able to make people.
Nothing could beat Jaskier’s expression when he saw a nervous young man propose to his love with one of the bouquets Jaskier had poured so much love into. Nothing, except, when a year later, the young couple came by their stall again, this time carrying a baby girl in their arms.
“Piwonia,“ the husband said softly, while his partner cooed at their daughter. “After the flowers I used to propose.”
Jaskier’s eyes filled with proud tears, when to Geralt’s surprise, he was offered to hold the baby. Jaskier nudged him in the ribs, shaking him out of his stupor.
“Hello Piwonia,” Geralt said softly, if a bit awkwardly, while the girl reached out to play with his hair. “You’re going to be wonderful. All the people who are named after flowers are.”
Saying the words to a stranger’s baby felt uncomfortable, but it was worth it for the look on Jaskier’s face.
“You are wonderful too, you know,” Jaskier said when they closed up their stall for the day and Jaskier put one of the leftover flowers behind Geralt’s hair. “I love you. Please never forget.”
Geralt swallowed thickly, leaning into Jaskier’s hand as it caressed his cheek. “I won’t forget. If … I will remember for the both of us.”
#i swear i wanted this whole fic to be super angsty#what is happening#whenever i want to write fluff or comfort it turns angsty and now this???#is this..what even is this?#geraskier#geralt/jaskier#the coast#jaskier#geralt#witcher fanfiction#fic#my writing#Birds still sing when they fall from the sky#old!jaskier#old jaskier#mentions of memory loss#memory loss#continuity? i think not#i know nothing of plants#no idea if its possible to plant flowers at the cost#listen I'm proud of myself if my cactus doesn't die on me#i once watered a fake plant for half a year#geralt retires
16 notes
·
View notes
Note
Hey,I am big fan of your work like I love fluffy ziam more than anything and you mostly write that so I have read your drabbles again and again so thanks for that,I don't know if you will be online but if you can ,can you please write a fluff for Liam's birthday it's okay if you can't I will definitely understand....
Who me? Ignoring a BUNCH of other prompts in my inbox to write birthday fluff.....😅 Anyway you’re so so sweet, thank you so much for this. I’m,,,,,,,soft over it. Anyway!! Happy birthday, Liam 🤪🎉
Zayn was standing at the stove when Liam finally managed to pull himself away from his sisters at half past 3 in the afternoon. He had his back to Liam as Liam wandered into the room, hips saying to the music softly pouring from their sound system. It was an old song, one Liam couldn’t quite place, but it was obviously one Zayn knew well as he hummed along to the beat.
Liam leaned against the door jam, taking in the scene in front of him with a small, fond smile on his face. He wasn’t sure how Zayn hadn’t heard him come in—the dogs weren’t exactly quiet—but he was thankful. Thankful to be able to stand there and just soak in Zayn’s presence, enjoy the carefree sway of his body and the utterly relaxed set of his shoulder. This version of Zayn—content, confident, happy—was Liam’s favorite. Their lives were always so hectic; they hardly ever got a chance to breathe, so being able to see Zayn so comfortable and loose warmed Liam from the toes up.
A few moments later, though, Zayn did a graceless spin as the music crescendoed, stopping with a startled jump as he finally noticed Liam in the doorway.
“Liam!” Zayn exclaimed, dropping the mixing spoon in his hand to the counter before crossing the space between them. “I missed you,” he muttered against Liam’s lips, his arms wrapped around Liam’s neck as he went on his toes to press a feather-light kiss against Liam’s mouth.
Liam hummed in response, dipping his head to deepen the kiss; his own hands came up to wrap around Zayn’s hips as he pried Zayn’s lips apart, seeking out the familiar taste of want on Zayn’s lips—always so willing to surrender it to Liam. After a few moments, Liam pulled back, resting his forehead against Zayn’s with his eyes still closed.
For a moment, both men just stood there, soaking in each other’s warmth and proximity. It was weirdly soothing, Liam had to admit, just knowing Zayn was there. Knowing Zayn would always be there.
Finally, Zayn broke the silence with a quiet, “How was your birthday lunch with your sisters?”
Liam groaned, dropping his head to Zayn’s shoulder as he felt his ears heat up. “Awful. Absolutely awful. They live to embarrass me. And they wouldn’t know how not to pry if their lives depended on it.”
Zayn let out a loud laugh, one of his palms moving to run calming circles into Liam’s back.
It brought a big, sappy grin to Liam’s face.
“I’m sure you’re being dramatic,” Zayn said. Liam opened his mouth to protest, but Zayn continued with, “I think it’s just your life they want to pry in. I’m sure they don’t have the same issue with loads of other people.”
Liam let out a short, loud laugh, pinching the skin under his hands and making Zayn jump as he brought his head up to meet Zayn’s eyes.
“You’re the worst,” Liam said, but there was no heat in it, just a lingering fondness that he was hopeless to erase from his tone. What could he say? He was fond. Absolutely, completely and totally smitten.
“Yeah,” Zayn agreed, “but you still love me.”
“I really, really do,” Liam said, ducking forward to steal another kiss from Zayn’s lips before straightening up again. “What are you making?” Liam nodded towards the stove and counter next to it, where there were several bowls filled with some kind of batter, various mixing tools, and a fine powder—Liam assumes flour, maybe even sugar—littering the surface of both the stove and the counter.
“Well,” Zayn started, biting his lips and wincing a little when he took in the disaster behind him. “It’s supposed to be a birthday cake. Eventually. I, uh, make no promises on whether it actually turns into a proper one or not.”
Liam laughed again, that familiar love and fondness swelling in his chest and spreading until he was warm all over and about to burst with it.
God, but did he love this boy so much.
“I’m sure it’s going to turn out amazing, Zed. I can’t wait to eat it.”
Zayn rolled his eyes, turning so that Liam couldn’t see the pleased smile or the red tint his ears took, but it was too late. Liam had already seen both, and it made his own smile soften.
He was so incredibly in love with Zayn, and it was because of all the small things—like this—that he did. Understanding Liam’s need to just stay in for his birthday—no big party, no crowded club, no faking it for the cameras. Insisting on Liam keeping up his birthday tradition of lunch with his sisters—something that had taken a back seat since the band got really famous, something he’d been itching to pick up again—just knowing it was something Liam missed so much, even though he’d never actually voiced that fact. Making him a homemade cake because he knew Liam appreciated subtle gestures.
Sometimes Liam was overwhelmed by the sheer amount of affection he felt for Zayn, surprised by the amount of love he was capable of feeling for one person.
He walked up to the counter, examining the bowls with a purposefully innocent face. “It looks like you’ve got a good start with all the batter. How long have you been at it?”
Zayn followed him, walking up behind him and tucking his chin over Liam’s shoulder.
“Dunno,” Zayn murmured. “Like, a little under an hour, maybe?”
Liam hummed, bringing a hand up to pull one of the bowls closer to himself. He shot a quick glance Zayn’s way, but Zayn wasn’t paying him any attention. He was focused on the various batters littering the counter, his brow furrowed in concentration.
Recognizing his opportunity to strike, Liam dipped his middle and pointer finger in the batter, scooping some up to quickly wipe it down Zayn’s nose, the batter running sluggishly to the tip.
Zayn let out a startled noise, jerking back from Liam and fat drops of it dripped off his nose and onto his lips, down his chin. He lifted wide, shocked eyes up to Liam
“Oops,” Liam said, a faux innocent look painted on his features that was fooling neither of them.
“Oho ho,” Zayn muttered, taking a step back into Liam’s space. “It is on.” And with that he was reaching his own hand forward, scooping a handful of batter before smearing it down Liam’s face before Liam could make a run for it.
Liam laughed as the batter trickled down his face, the thick rivulets tickling and sticking uncomfortablely to his eyelashes. He brought a hand up to wipe his eyes—see also: uselessly smear batter everywhere—before a wicked grin lit up his face. “Oh it absolutely is on.”
And then him and Zayn were off, both trapping the nearest bowl of batter and running around the kitchen, flinging it at each other while ducking behind various furniture, throwing empty insults and wildly inaccurate trash talk at each other all while laughing.
“Okay!” Zayn finally shouted, hiding behind tall-backed chair, his head peeking out over the top just enough that he could see Liam. “I’m all out of batter, I yield.”
“Promise?” Liam asked. “Because if I come out from here and you throw more batter at me, I will crush you, Malik.”
Zayn laughed, fully rising from his hiding spot so he could show Liam his empty bowl and raised hands. “I promise,” he said. “I don’t even have any batter to trick you with.”
Liam grinned, letting out a crow of victory as he stood up from his own crouch. He swiftly closed the space between him and Zayn, taking both of their bowls and setting them on the counter.
“I win.” Liam grinned at Zayn, who rolled his eyes in response.
“You did,” Zayn agreed. “All hail the birthday king.”
Liam laughed, sending a wink Zayn’s way. Zayn just grinned back up at him, his smile fond and disgustingly in love. It made Liam’s heart beat out a stattico rhythm against his rib cage. That smile was addicting. It was what their friends had dubbed his Liam smile, and it never failed to make Liam’s knees go a little weak.
“I love you,” Liam murmured, reaching forward to cup Zayn’s sticky, batter covered cheek. “So fucking much.”
Zayn’s grin softened, his eyes falling shut as he leaned into Liam’s hand. “You, too, Li. I love you so much, too.”
Liam sighed, contentment coursing through him as he leaned forward to place a sweet, thorough kiss to Zayn’s lips. It tasted like too sweet batter, but it was perfect. Zayn was perfect.
“Good,” Liam whispered when he finally pulled away. “Because it’s my birthday, and that means I get a free pass on cleaning up the mess we’ve made in the kitchen.”
Zayn’s indignant squawk almost couldn’t be heard over Liam’s loud laughter. Almost.
#I’m proud to announce i am back on my bullshit#and by back on my bullshit i mean i logged onto tumblr for the first time on like two months#saw this ask#and immediately went ‘fuck yeah’#and now i will probably fuck off for another two months#ajskdhsm SORRY#but to make up#for it pls enjoy this hot garbage :)#we love domestic loved up ziam#happy birthday liam!!!!!#my writing#ziam drabble#ziam fic#fics#ziam#ask prompt#???? technically it is so#also I’m on mobile so i cant add a read more bc tumblr sucks!#so:#long post#in case yall want to/already have it blacklisted
35 notes
·
View notes
Note
do you ever get this nauseous feeling of dread in the pit of your stomach thinking about the future and how alone you are and probably always will be? it’s so bad lately and i can’t make the feeling go away. i tried tinder lol but even there all the conversations feel so empty. i just can’t connect with anyone. i don’t know how other people seem to make friends and lovers so easily. it never happens for me. life could be beautiful if only i had someone to be myself with. it hurts so bad
yes, always, all the time.....i haven't really found a solution unfortunately. 😔 though it is my understanding that our perception of the future is often wildly inaccurate, as it is rooted in what we fear (i.e constant loneliness). since we're afraid of it we're more inclined to believe that it's waiting for us. especially if its been prominent in our lives so far.....really we have no way of knowing. maybe the self hating part of you will insist that you understand what's coming, that not finding connection is likely or even inevitable. but you're biased against yourself so it's not a trustworthy judgement. you know? ive also noticed that my solid sense of self has really disappeared since ive been alone, and so all issues pertaining to me and who i am, kind of slip away.... it's hard when you don't have anyone to remind you you're real. it jolts violently between painful and numbing. it's ok to be sad about it, to cry when you need to, to let it be what it is. you don't have to make the feeling go away, you just have to try not to hold onto it. try not to let it dictate your actions and what you bring into actual reality. you're more than this moment and your current self perception. isolation really does a number on the mind and the emotional landscape, so cut yourself some slack in that regard. honestly...... i think periods of solitude are way more common than people want to admit. i know it seems like everyone's got their group and that you're some sort of outlier, but circumstance dictates so much. we lose touch with others, or we grow beyond the relationship, or we just never get the chance to meet the right people at the right time....it's not a personal failing on your part. it's not because you're undeserving of love and friendship. you have to remember that part and live like you believe it. it's just that substantial bonds are difficult to find as an adult or as you're growing up. your brain will always try to twist this and bully you with it like a petulant child, like a 'haha loser' sort of thing (at least mine does) but that's a very narrow understanding of a much broader issue. i guess it's true that not everyone you meet is supposed to be a life changing figure in your existence as a human. i guess it's true that shallow relationships are unavoidable. but you're allowed to be frustrated and you're allowed to want more for yourself, especially if that eventually spurs you into actively seeking what you crave.....even just keeping the channel open and working on your own self confidence enables you to connect with others in an easier way. anyway here are some small coping mechanisms that have somewhat helped me even if they feel dumb:
1. trying to treating myself like a friend and prioritizing self care. it's too exhausting if you don't.
2. being around animals.
3. writing about how you're feeling, making it tangible. and reading. people in the past felt like this, too.
4. time spent alone is still time spent with the world, you still belong.
5. taking the time to see your situation from multiple points of view.
6. talking to a professional or a family member. even if you don't necessarily want to. maybe they won't get it fully, but just saying it out loud is something.
it's a good sign that you want to put yourself out there to any extent and you should try to keep at it. getting discouraged is natural but it doesn't last. ideas like volunteering, looking into support groups in your area, joining internet communities, even just getting to a public place like a library and being amongst the crowd.....it all adds up and keeps you in the present. finding people w common ground like a hobby is important, too. maybe it seems like a stupid or vague idea but there's always communal activities or events to check out. nerves are just a part of it. seriously, where you're at right now is definitely just a stepping stone in your life, nowhere near the final picture. as you get a job and expand your horizons/find your niche, you're going to engage with loads of experiences n people you can't even conceive of rn. and i totally get why you find it hard to believe. but it's not impossible to think that change is in store at some point, especially when you consider how much it's already occurred in your lifetime, right? i believe in you and im rooting for you to find a sustainable support network, even if it's a process or it takes time. you're not as alone in this as it seems. and it's not your fault no matter what narrative your sadness is telling you. take it one day at a time. and try to focus on what you can actually tend to in this moment. that's what ive been doing. anyway im sending a lot of love to you and please feel free to hmu if you need someone 💌
12 notes
·
View notes
Text
Happy Halloween, Mr. Wonka!
(A/N: Hello, and Happy Halloween!! Now, Halloween is my favorite holiday, so y’all know I had to whip up a little something for my favorite muse who definitely hates this day with a passion! Full disclosure, this was drafted, written, and edited all in the span of about two hours, so I’m a tad self-conscious… But hey, I was on time! I wanted to give y’all something festive, even if it’s my saddest Wonka piece so far.
Thank you so much for reading, and have an amazing (and safe) Halloween!
-Katherine <3)
_________________
Heavy machinery whirs quietly all around. Some gadgets emit soft clouds of vapor, which float listlessly toward the high ceilings of the Inventing Room like restless spirits. Phosphorescent light filters through the haze, making long shadows dance in the corners of the room. Since the sun has already gone down and factory operation hours are over, the Oompa-Loompas are absent, meaning that there is no music, no dancing—only the droning hum of technology.
An eerie combination, indeed, thinks Wonka sourly. Such a nuisance.
Charlie is preparing to leave for his annual trick-or-treating expedition, and when he asked earlier if Wonka would join him, Wonka had excused himself. I just need to tie up a few loose ends in the Inventing Room, he had claimed, pointedly ignoring his teenage ward’s crestfallen expression. You go and enjoy yourself, Charlie. A boy your age shouldn’t be stuck working on Halloween, of all nights!
The Halloween season is always a busy one for the factory. That much should be obvious, given the long-standing tradition of trick-or-treating. A tradition which allows even kids who normally have nothing to indulge in an overabundance of candy for one glorious night. A tradition which Wonka himself took part in as a child, in his family’s own unique way…
His gloved hands twitch, and he remembers what he is supposed to be doing. Well, pretending to be doing, really. He reaches for the spoon to his right, and stirs the mixture before him with more force than necessary.
The tradition of trick-or-treating expressly demands candy production be at an all-time high for the year. He has already met his surplus production goal, and the sales numbers reflect that this is a wise investment. Things are truly going swimmingly. All things considered, he thinks he should be in a great mood. He should be kicking back and relaxing, instead of throwing together this…whatever this is, just so that he has something to keep his hands and mind occupied with anything but Halloween.
“Milk powder…where is the milk powder?” he mutters to himself as he scans his table of various ingredients.
“Here it is, Mr. Wonka.”
Not expecting any sort of response, Wonka lets out an embarrassingly shrill scream. Brandishing his cane and spinning on his heel toward the source of the voice, he comes face to face with…Eliza Weber, his assistant.
Free hand clutching at his heart, which is now racing faster than a hummingbird’s, Wonka desperately attempts to get his breathing under control. He lowers the cane warily, leveling the young woman and the container of milk powder she offers him with a scowl. Finally, he stretches out his arm and snatches it from her.
The whole time, she has the audacity, the absolute gall, to look completely unaffected by his outburst. “I apologize if I startled you. I did knock.”
Eliza is not only Wonka’s assistant, but she is also Charlie’s teacher. She has only been a part of factory life for a few months, but has already proven herself to be his finest employee. Some of it can be attributed to her height advantage over the Oompa-Loompas, although she is exceedingly petite herself. She is wildly intelligent, adept in mechanical design, and regimented as all get out. In addition, her loyalty and perseverance are unmatched, to the point where it’s a bit unsettling.
“Were you planning to use your cane as a weapon just then?”
Her ability to get on his nerves at times is also unmatched.
He takes in her costume, consisting of a hooped skirt with an apron, tightly-buttoned corset, and short lace gloves. Her hair is pinned into a neat bun at the nape of her neck. “And what are you supposed to be, Nanny McPhee?” he retorts.
“Mary Poppins,” she corrects him, the insult either sailing right over her head or not bothering her in the slightest. “Charlie invited me to go trick-or-treating with him. I’ve never been, so I agreed.”
Wonka sets the powdered milk down hard enough that some of it puffs up and over the sides of the bowl, coating his gloves in the white substance. “Well, isn’t that just peachy!” The smile that accompanies his statement is too pinched, even by his standards.
“Incidentally, that’s why I’m here,” she continues. “He requested I tell you that we’re leaving shortly, and it’s your last chance to join us.”
He lets out a long sigh, summoning up all the patience he can. “Goodness, I certainly would love to, I’m just so gosh darn busy!” He gestures to the mess on the table behind him. “You know how it is this time of year. You two go on without me, have fun!”
Eliza scrutinizes him. “You seem tense. Do you not want to go because you don’t have a costume?”
Wonka simply squints at her, confused.
“I have a contingency plan, meaning I can throw something together for you in a matter of minutes. Your facial structure bears a striking resemblance to Johnny Depp’s Edward Scissorhands.”
“It does not!” He pouts, not appreciating her sneaking up on him and making wildly inaccurate comments about his facial structure. If he bears a resemblance to any Johnny Depp character, it’s Sweeney Todd, for goodness sake!
She looks at him like he’s taken the wind out of her sails, a small victory. “Very well. I will let Charlie know that you’re busy.”
She starts to leave, and Wonka visibly relaxes, turning away. Except she lingers at the door, and he can feel those eyes on him. Those big, glassy eyes that seem to pierce through him, all-knowing, like a particularly astute goldfish.
“Permission to speak freely?” she asks suddenly.
“Denied!” he responds right on the heels of her question. He is treated to a few moments of feeling the irritation radiate off of her before curiosity gets the better of him. “…What is it?” he asks weakly.
“According to my data,” she explains, “sales are much higher than normal, but it’s nothing to warrant the rate at which you’ve been working the last few days.”
Of course, the woman who handles his accounting would call him out on his lie.
“Therefore, I can only assume this has to do with some sort of personal aversion.”
Wonka feels his skin prickle. Facing her once more, he asks, “What is your point?” The question comes out even colder than he meant it to.
Eliza at least has the decency to shuffle nervously, breaking eye contact in favor of watching the vapor circling up toward the ceiling. “My point is…at the risk of breaching the parameters of my job description…I am a very good listener as well.”
Leave it to Eliza to choose the worst possible time to display some emotional intelligence for a change. The chocolatier stares at her long and hard, choosing his words carefully. “Eliza…why have you never been trick-or-treating before?”
She looks justifiably taken aback. Tilting her head, she says, “My foster parents never allowed it. They believed Halloween was…Satanic.” Wonka nearly blinks and misses the subtle roll of her eyes at the notion.
Wonka thinks that there’s something to be said for her never knowing what she’s missing out on as a kid. Never having that false hope that this year, things will be different. Still, he latches on to his opportunity.
“Well, they’re not here to stop you now, are they?” He grins at her in a way that he hopes is reassuring and not as melancholic as it feels, even though his face is starting to hurt from smiling so much. “Yet, here you are, worrying about me instead, silly! You just take Charlie and get out there, okay?”
Looking anything but convinced, Eliza blinks slowly. “…Okay. I’ll see you tomorrow, Mr. Wonka.”
Satisfied that she will actually leave this time, he turns his back to her again. He does not answer her, nor does he let his expression drop until he finally hears the sound of heels clicking farther and farther down the hall.
Wonka has had his day in the sun. Or, would it be his night in the moon? At any rate, he no longer has need to go trick-or-treating. No need to celebrate the ridiculous holiday at all, for that matter.
He’s all right with that. Sincerely, he is.
Now, to get rid of that mixture he had been working on. He won’t bother tasting it—he can already smell how it is disgustingly, revoltingly, irreparably bitter.
0 notes
Text
Knocked Out (12/12)
My pals. My friends.
We’ve made it to the end.
And I’m still honestly shocked that this fic that I started just to get out of a rut was read and enjoyed by so many of you.
Thank you all so so so much and I hope you enjoy this final installment.
There’s some worldbuilding stuff that I never got around to fully addressing in the fic, so feel free to hit me up with any questions you may have. I’ll be tagging anything I may get as knockedout.
Thanks again, and please enjoy!
Title: Knocked Out
Series: Transformers: Prime with the constructicons shoved right in there, and just a sprinkle of ideas pulled from tfidw
Pairing/Characters: Breakdown/Knockout, joined by Bulkhead and the Constructicons
Warnings: Robot injuries (nothing super gory), sexual jokes, language barriers, and fluff. Oh the fluff. Also slow burn.
Fic Summary:
And so there Breakdown found himself, with an injured barbarian in his arms who turned those dazzling crimson optics towards him, and for a split second Breakdown felt as if it was his knees that were injured because boy did they feel weak.
Barbarian AU where the citymech unwittingly does the kidnapping.
Chapter Summary:
“I wanted to ask you to stay here. With me.”
|Chapter 1|Chapter 2|Chapter 3|Chapter 4|Chapter 5|Chapter 6|Chapter 7|Chapter 8|Chapter 9|Chapter 10|Chapter 11|Chapter 12 (Complete)|
Breakdown kept getting turned around, walking on autopilot until his GPS finally shrieked at him, dragging him from his roiling processor long enough to get back on the right path. It was only a matter of moments before he was lost again, in thoughts and busy streets.
A suitor.
All this time Breakdown had been worried about if Knockout might want to consider dating him. Yet now Breakdown had to face to possibility that Knockout had thought the last five days had been a courtship, and that Breakdown was a suitor!
Worst still was the fact that for all that his processor whirled wildly, Breakdown’s spark seemed unbothered, still as contented as it had been since that moment that Knockout had murmured “I want you” against his lips.
Oh, sure, it raced. But it didn’t twist with anxiety or panic. At best, Breakdown could call it excited.
And, well, maybe it was right to be. After all, Breakdown thought to himself, suitor wasn’t a completely inaccurate term. He did like Knockout a lot – in his more honest moments he could admit that he was falling, had even said the word “love” in that moment of passion at the stream. And Breakdown knew he hated letting go of mecha he cared about, would want this to ideally lead to something permanent. The idea of someday bonding with Knockout was a very pleasant one.
But the keyword was someday.
They had only known each other for five days!
Breakdown should have stayed at that clothing shop. He had made a speedy escape the second that Soundwave translated for him, his face burning hot to the touch in his fluster, but now Breakdown had only his own thoughts. Soundwave would have known more about what Knockout might be thinking, would be able to give Breakdown advice as another citymecha who knew more about barbarians than Breakdown did.
Instead, Breakdown was finally standing outside the clinic and his servos fisted nervously at his sides.
Most embarrassingly of all, Breakdown had already started to miss Knockout. It had only been hours, but that was hours more than they had been apart since meeting.
He was so fragged.
With a deep in-vent, Breakdown gathered up his courage and went through the door. No point in thinking on it forever. He wasn’t a smart mech, wasn’t meant to just think himself into circles – he was a mech of action and he would face whatever the truth ended up being.
As expected, the waiting room was empty, so Breakdown kept on walking down the hall. As he did, he heard voices. The first was Ratchet’s, but the second—
“—So the crystalline structures focus all that light into a singular focused – what did you call it? A laser, right, of course. I absolutely need to try my servos at using one of these--”
Breakdown knew that deep melodic voice and felt a shock race across his circuits, his pedes picking up their pace.
And there was Knockout. His expression was easy and his leg was no longer braced, and he appeared to be talking at Ratchet while the doctor tried to put all his tools away. And he was talking common with an ease that Breakdown had never heard.
And then Knockout finally caught him out of the corner of his optic, and the barbarian’s face lit up as he spun on his aft to face Breakdown.
“There you are, Breakdown! You were starting to make me worry you had gotten lost out there, and Bonecrusher would never forgive me if I lost you.”
Every concern and doubt was overwhelmed by the wonderful aching of Breakdown’s spark as he felt his face nearly split in half from his own grin. He was across the room in seconds and Knockout’s servos were in his before Breakdown could even question who had reached out first—
“Don’t you dare,” Ratchet warned and Breakdown couldn’t help choking as Knockout rolled his optics to the ceiling, their mouths halfway towards meeting for a kiss.
“Do you have a single romantic strut in your frame?” Knockout drawled in complaint, even as his lips curled at the corners for Breakdown.
“Not a one.”
Knockout’s laugh was gorgeous.
The swelling of Breakdown’s spark nearly choked him with glee as he murmured, “Wow. I just—I can’t believe we’re actually talking now.”
“You’re telling me. If I had known it was going to be this easy to become fluent, I might not have tried so hard this whole time,” Knockout replied before shrugging. “But, then again, it was so cute to watch you try to explain things to me. I don’t know that I would have traded that for anything.” And then Knockout’s grin was turning sly as he no doubt noticed the way Breakdown squirmed, optics darting away before returning. “Mmm, but then again, it’ll be even easier to fluster you now.”
“Menace,” Breakdown grumbled to Knockout’s delight.
“Come now. Surely you can do better than that now that I can understand.”
“I think I can come up with a few things.”
“You don’t say--”
“I will physically separate the two of you if it becomes necessary,” Ratchet snapped when the two of them had shifted closer again. Knockout pouted but Breakdown was embarrassed enough that he straightened up completely, hoping that distance between them would help stave off temptation.
“Oh, uh, I got you something,” Breakdown said, taking the chance to let go of Knockout’s servos and reach into his subspace. “It’s the only color they had, but the guy said it should be the kind you like.”
Knockout’s optics lit up the moment he saw the fabric, snatching it out of Breakdown’s grasp in the blink of an optic, stretching it out between his servos as he inspected it.
“Where did you find this?” Knockout asked, almost sounding awed as the fabric stretched when he tugged it. “It’s been centuries since I last saw this type of fabric available for trade, and so finely made too. Hold on, help me down so I can put it on--”
“Stay on the berth!” Ratchet snapped, though Knockout didn’t even blink as he took Breakdown’s servo and slipped down onto his pedes.
“Oh hush! The welds have solidified enough to handle standing.”
Ratchet harrumphed, muttering about terrible patients, but he finished packing up his supplies and was pushing the cart back where it came from.
“Are you sure you’re ok?”
“I’m just fine,” Knockout insisted as he shifted from one pede to the other and grinned. “Don’t tell Ratchet, but he’s a miracle worker. A couple more hours and I’ll be good as new and better.” Breakdown ex-vented with relief, glad to see the barbarian standing on both legs, moving them easily as he started to wrap the cloth around his hips. “And it’s all thanks to you.”
A rush of flattered heat filled Breakdown as he stammered, “I dunno about that.”
“Don’t give me that humble act,” Knockout teased, glancing down to pull out his emblem and pin the new wrap into place. “If it hadn’t been for you, I’d still be chained up and walking towards a living nightmare.” The clothing held, and after a quick sweep of his servos down it to appreciate how it fell on his frame, Knockout was looking up again, optics bright and smile soft. “Needless to say I much prefer being here with you.”
Breakdown’s spark ached pleasantly, but his processor raced with the sudden reminder that now they could talk, now he could have his questions answered, including the new ones that seemed surreal to believe.
His servos reached out to grasp Knockout’s, and it still excited Breakdown to see how easily the barbarian accepted it, slipping digits between his.
“Do you – do you want to stay here?” Breakdown asked, not meaning for his voice to be so quiet and hesitant. It felt like a confession, as if his every thought and wish over the last few days had finally escaped his spark for Knockout’s judgement.
Knockout smirked up at him.
“Being able to bend my knee against hasn’t magically changed my mind, no,” he said, tone mocking but not unkind as his servos squeezed. When Breakdown just looked down at him, ridges furrowing in confusion, the smirk slipped as Knockout continued, “Don’t look at me like that. I already told you before the surgery.”
“Uh, you mean about wanting me?”
“Clearly. What part of ‘I want you’ wasn’t--” Knockout stopped, helm tilting, optics dimming. “Oh. That is a pretty ambiguous thing to say in your language, isn’t it?”
“Kinda, yeah,” Breakdown admitted as anticipation began to itch under his plating. It only grew when Knockout let go of his servos to reach up and cup his helm, pulling him close.
“Well, that’s annoying, but easily solved since I can now make myself perfectly clear.” Knockout shifted up onto the tips of his pedes so that their lips were close. “Yes, Breakdown, now that the courtship period is over, I can tell you that you’ve won me over.” Digits gently trailed across the angles of Breakdown’s cheeks and Knockout smiled wide as he shifted closer yet. “I want to stay here with you and become your mate.”
Breakdown’s spark felt as if it was going to break out of his chest.
“Really? Like, now?” Breakdown stammered.
“I assumed we could find somewhere more private first,” Knockout teased as he nuzzled Breakdown’s cheek, his engine lightly purring. “I don’t think Ratchet will appreciate walking in on that.”
Breakdown awkwardly let his servos rest on Knockout’s waist and rebooted his vocalizer twice before managing, “So, just to make sure, what does becoming mates mean to you?”
“The same thing it means in your language, if this translation program is any good. Surely I don’t have to explain spark merging to you.” Knockout’s petting and snickering and just being so close and practically wrapped around Breakdown as best he could had Breakdown’s frame heating up. Worst still was his spark with hammered against its casing, trying to escape, to follow through with this insane idea.
It was only Breakdown’s processor that was shrieking protests.
“Are—are you sure?”
With an irritated ex-vent, Knockout unfurled enough to be face-to-face with Breakdown again, frowning at him.
“Breakdown, could you at least try to be more excited about this? You successfully courted me, so act like it,” Knockout scolded.
“Well, see, that’s the thing,” Breakdown started, his servos flexing on Knockout’s waist. “I didn’t actually know that I was courting you.”
Knockout stared at him blankly.
“What?”
Breakdown grimaced, glancing away as he said, “I honestly was just bringing you here to get your leg fixed. I mean, you saved my spark during that fight, and because of that you were in danger, so I couldn’t just leave you, you know? And then it turned out we got along way better than I could have ever expected, and--”
“Is this a joke?” Knockout asked, his expression twisting with horror.
“No? I mean, I don’t—that’s not really how we do it in the cities, so I never thought--”
Knockout put a digit to Breakdown’s lips, and when Breakdown didn’t stop, “—I didn’t know--” the barbarian’s whole servo covered his mouth.
“Shut up,” Knockout snapped as, other than the one servo muffling Breakdown, he stepped back, helm bent so Breakdown couldn’t make out his expression.
“Knockout--”
“I said shut up!”
The barbarian’s plating clamped down tight, nearly managing to hide how it shuddered. However, nothing could hide the slight hitching of Knockout’s ventilation or clattering of armor.
Then, with one last ex-vent, Knockout’s frame stilled. He removed his servo and looked up, his expression composed and confident and casual, and it hurt Breakdown to see that fakeness aimed at him. “That’s unfortunate, but language and cultural barriers are what they are, I suppose,” Knockout said with a forced shrug as he moved to slip around Breakdown. “Well then, if we’re done here, I’ll just say my thanks and be on my way then.”
“W-wait--!”
“I’m sure I can find my way just fine so you don’t have to escort me,” Knockout continued, optics looking anywhere but Breakdown’s face as he was stepped towards the hall leading back to the front of the clinic.
Breakdown spun and followed, insisting, “That’s not the problem! Just let me explain--”
“You made yourself quite clear.” Knockout’s steps quickened and for a moment Breakdown panicked. If the barbarian had anything close to the speed of his tribemates now that he was healed, there was no way that Breakdown would be able to catch up to him once he was out that door.
Breakdown’s spark surged and without a second thought, Breakdown sprinted past Knockout, his pedes sliding along the smooth clinic floor until his back hit the front door and his arms were outstretched, barricading the exit. The barbarian’s optics flared as he stopped, trapped between wanting to escape and keeping his distance from Breakdown.
“Move.”
“No,” Breakdown said with a shake of his helm. “I’m not done yet.”
“Oh, I think you’re quite done!” Knockout sneered, his servos fisted at his sides and trembling. “I’m utterly humiliated, so I would rather we skip the part where you feel bad and try to feel better by pitying me, alright? You’re so sorry, you didn’t know, you only wanted to frag the pretty Velocitron and didn’t mean to hurt its feelings, blah blah blah, move.”
Breakdown tanks twisted as he shook his helm. “I didn’t – you shouldn’t feel that way, you couldn’t have known--”
“Do you have any idea how many mecha have courted me?” Knockout interrupted, armor flared out aggressively. “How many mecha have tried and failed to impress me? And then some citymech comes swinging into my life, sweet and smiling and giving me everything I could ask for, and in just five days convinces me that yes, you’re the one I’ll give my spark, and you don’t even want it!” Knockout’s voice was becoming shrill with emotion as he finally stalked towards Breakdown, servos slashing the air between them as his optics flickered. “So yes, Breakdown, I am humiliated, and--”
There wasn’t a thought that passed Breakdown’s processor before his spark willed him into action, stepping forward and pulling Knockout against him, hugging him close—
“I do want you--”
“—But not as your mate, you made that clear--!”
“—No, I didn’t know I was courting you, but listen--”
“—Just let me leave--!”
“Stay here!” Breakdown asked, begged really, feeling choked by his spark. That finally had Knockout stilling again, quiet, and Breakdown took what might be his last chance. “I was going to ask you that before finding out about, well, all of this, you know? When I thought this was just a thing, a really good thing, but just something that happened and that you might just be having fun before going back to your tribe, and I—I wanted to ask you to stay here. With me.”
Knockout’s servos were warm against Breakdown’s chest and his ex-vents haggard.
“What does that even mean?” Knockout’s voice was disbelieving but oddly small, especially considering the volumes their argument had reached, and his face was hidden against Breakdown’s chest. But he didn’t try to pull away.
“I don’t know exactly. Figured we’d deal with the details if you actually agreed to stay.” A hollow chuckle forced its way out as Breakdown admitted, “This is a pretty terrible time for you to find this out, but I’m not a great planner. Just kinda follow my crew and my spark and hope for the best. But I promise I’ll make it work if you stay.”
Then, miraculously, Knockout snickered. It was weak and a hint of static clung to it, but it was a chuckle.
“You really are an idiot,” Knockout murmured as he leaned against Breakdown. “Makes two of us, I suppose.”
“I dunno about that. You’re pretty smart.”
“And yet here I am, in love with a citymech who wasn’t even trying to court me,” Knockout said with bitter self-deprecation as he finally lifted his helm. His optics flickered as they cycled, and there were the rest of the emotions that had been hidden under fake confidence and too real anger – hurt and embarrassment and that fear that Breakdown remembered seeing that night Knockout asked to kiss him.
A fear of losing something, or someone.
Breakdown’s servos moved up Knockout’s back to cradle his helm.
“Maybe I don’t want to bond with you yet, but it’s only been five days,” Breakdown said, forcing a small smile onto his face as his forehelm touched Knockout’s. “I mean, I don’t know how it works for you guys, but for citymecha that’s an insanely short amount of time.”
“It is shorter than the usual,” Knockout admitted. “Typically a courtship lasts at least twice that – what? What’s that look for?”
Breakdown rebooted his vocalizer before saying, “We usually date for at least a couple years before discussing spark merging.”
That had Knockout’s optics blowing out wide, shock momentarily drowning out the other emotions on his face as he stepped back.
“Years?” he hissed. “How the blazes could it take years?”
“Well, it takes a while to really get to know everything about another mech, so it takes at least that long to figure out if you could live with each other for the rest of your lives,” Breakdown explained with a shrug. “Can you honestly say you would know for sure that you wanted to bond with someone after just a couple weeks?”
“I was quite sure about you, wasn’t I?” Knockout said, simply and confidently.
Breakdown felt his face flush as he continued to push, “But you just met me five days ago. You barely know me!”
“I know the important things,” Knockout insisted, gesturing at Breakdown with his servo. “I know that you’re good in a fight and that you’re capable and willing to use the strength to literally carry me for days if necessary. I know that you’re also incredibly empathetic and compassionate, constantly striving to do everything you can for me, even when it meant making those ridiculous gestures to guess what I wanted.” Knockout stepped back in, his servos gentle against Breakdown’s chest. “I know you care about your tribe and in turn they care about you, and it would be an honor to be a part of that.”
There was no way that Knockout wouldn’t be able to feel the fierce pulsing of Breakdown’s spark as Breakdown reached down, putting his own servos over the barbarian’s. “Knockout--”
“Ah ah! I’m not finished,” Knockout scolded, and finally, his lips were curling into a smirk, determination glittering in his optics. “I’ve spent as long as months travelling with some suitors, and they never managed to come close to what you’ve proven in five days. I know that I’m safe with you,” – Knockout leaned in closer until they were chest to chest – “and that not only will you take care of me, but that you want to.” Knockout’s servos slid over the angle of Breakdown’s chest, slowly finding their way up to his shoulders. “You’re wickedly handsome and love it when I tease you.” Breakdown let himself be pulled down, helpless to Knockout’s charm as the barbarian’s servos wrapped around the back of his neck. “And given the way you kiss, I don’t think I’ll ever have to worry about being satisfied.”
“Knockout,” Breakdown ex-vented, flustered, and Knockout smiled, placing a digit against Breakdown’s lips.
“And the more I think about it, the more the fact that you were that impressive without even trying to prove yourself only makes me want you that much more.” Knockout shifted up to the fronts of his pedes, and Breakdown could feel his ex-vents against his face. “I may not know everything about you right now, Breakdown, but I will, and I’ll like what I find. You’re everything I’ve looked for in a mate, and I want you, so why wouldn’t I make you mine as soon as I can?”
“I--” Breakdown hesitated, caught between the way his spark sang its agreement and longing and the way his processor raced because that wasn’t right, Knockout didn’t know him, wouldn’t like what he found. “I’m just a construction bot. I get by, but I don’t think I could support us both and take care of you like you deserve.”
“Because of shanix?” Knockout asked, shrugging it off. “It’s a savage economic system, but it’s the one your cities use, so I’ll help, of course.”
Breakdown blinked. “But you just said you like that I take care of you.”
“Of course I do, but courtship only goes one way by virtue of being a courtship. But now we’re discussing a partnership,” Knockout explained as he gently poked a digit against Breakdown’s chest. “I already told Ratchet I was staying and he offered to have me work here as his assistant, and I’ll make sure he, ah—pays me? That’s how it works, right?” When Breakdown just nodded dumbly, Knockout grinned and continued, “So there, problem solved.”
“But I don’t really have a home or a tribe. The crew is all I have, and I’m constantly moving for work. It’s honestly a miracle I get to actually stay here for two years.”
“Breakdown,” Knockout said, almost patronizingly, “Velocitrons are nomadic. The closest thing we had to a home was destroyed years ago. So, truthfully, two years already sounds like a terribly long time to spend in one place.”
“Ok, but then, your tribe--”
“—Has been splintering and dissolving since Navitas fell, so it was a matter of time before I had to pick another tribe to join anyway. And I happen to think that your ‘crew’ is the best I’ve come across yet.”
“But--”
The digit was back against his lips as Knockout rolled his optics.
“You promised we’d figure it out, didn’t you?” When Breakdown slowly nodded, Knockout grinned and said, “Then relax. Any bumps we come across we’ll get over together. That’s the point of being mates after all, isn’t it?”
Breakdown knew he was slack-jawed, staring down at Knockout, but he couldn’t help it.
This could work.
They could work.
“So?”
Knockout was looking up at him expectantly, optic ridges lifted as he removed his digit.
And, finally, Breakdown’s processor relinquished to his spark.
“I still don’t think I can spark merge so soon,” Breakdown admitted as his servos move to grasp Knockout with practiced ease and lift him up into his arms. Knockout yelped, digits digging into Breakdown’s shoulders, and Breakdown took the opportunity to nuzzle into the barbarian’s neck, grinning. “But if I could fall in love with you in five days, I don’t think it will take me very long to catch up if you’re willing to wait.”
Knockout hummed, exaggerated and overly dramatic as his digits drummed against Breakdown’s back plates. “I suppose waiting a year wouldn’t be complete torture. You’ll have to let me live with you though.”
“Obviously,” Breakdown said as he kissed the junction between neck and jaw and Knockout shivered. “If you don’t mind sharing a berth.”
“Well, I am already rather used to recharging with you wrapped around me.” Knockout did still for a moment and asked, suddenly serious, “Does that mean you want to wait to interface too?”
“Frag no,” Breakdown replied with a growl of his engine and Knockout laughed.
“Oh thank Navitas. I could have done it, but that might have tipped the scale towards actual torture.” Knockout bracketed Breakdown’s helm, pulling him away from his neck and smiling down at him. “So. You still want me?”
Breakdown’s spark felt full enough to fill his whole frame.
“Yeah, I want you. And you still want to stay here?”
Knockout was close enough now that their lips nearly touched as he spoke.
“Yes, I want to stay with you.”
It took only the slightest tilting of helms for them to kiss—
“Are the two of you finally done making a scene now?”
--And then Knockout was groaning in exasperation as Breakdown burned with embarrassment, staring with wide optics at the irritated doctor watching from the hallway.
“Oh hush, you,” Knockout said with a wave in Ratchet’s direction as he shot a look over his shoulder, his other servo holding onto Breakdown like a vice, making it perfectly clear he was not to put him down. “If it bothered you that much you would have interrupted ages ago. Now put the grouch act to rest for a couple minutes and just let me kiss my mate-to-be, would you?”
Ratchet’s frown deepened, but he did push off the wall and unfold his arms, replying, “Fine. You have two minutes before I’m breaking it up for good, understand? Then you’re paying your bill, taking your optic, and finding yourself some privacy in the decency of your own home.”
“My—wait, what optic?” Breakdown stammered.
“Oh, he’s giving you a replacement optic,” Knockout said as he turned back to Breakdown, grinning. “I told him all about what you did for me and he decided to gift it to you. I don’t know what Hook was talking about; Ratchet is even softer than he is.”
“Shut it,” Ratchet snapped, glancing away in what Breakdown would have sworn was embarrassment. “It was just taking up space anyway. And if Hook slags the installation, he will be the one paying the bill for me to fix it, got it?”
“I’ll be sure to tell him,” Knockout replied distractedly. Breakdown could tell by the way his digits were stroking between the delicate plating of Breakdown’s neck and staring at his lips that the barbarian had already lost interest in the conversation. “Now if you’ll excuse us--”
Knockout captured Breakdown’s mouth in a searing kiss, claiming and giving at once, his arms wrapping around Breakdown’s shoulders tightly as if he had no intentions of letting go.
And Breakdown squeezed just as tight as his spark pulsed with happiness.
“Whoa, Knockout! You’re already fixed!” Mixmaster shouted, the first to spot Breakdown and Knockout as they turned the corner. Of course, the rest of the gestalt immediately turned their helms, and Bulkhead was downright beaming.
“All fixed up and ready to mingle,” Knockout agreed, smirk only growing wider as the crew stared at him. “What? Don’t tell me you savages don’t know common?”
The constructicons swarmed the barbarian, talking all at once, but Knockout didn’t seem to mind one bit. If anything, he truly flourished under the attention now that he understood it all, eagerly replying quickly enough to actually keep up.
Bulkhead, however, slapped Breakdown on the back. “Nice work, Break. Do we have any shanix to our names?”
Breakdown laughed as he replied, “Surprisingly. I’m pretty sure that the Doc gave us a discount.”
“And that nice new outfit?”
“That’s a long story, actually, so I’ll tell you later,” Breakdown admitted as he scratched the back of his neck. “But I do have something you should know--”
“You’re what?!”
Bulkhead looked over at the constructicons who were all bright-visored and astonished, gazes torn between Knockout and shifting over to Breakdown.
Knockout looked exceedingly pleased with himself as he winked at Breakdown.
“I believe the word you would use is engaged.”
Breakdown gave them all sheepish look as now his whole crew stared at him, somewhere between shock and awe.
But when Knockout smiled at him, there was no way for Breakdown to keep the dumb lovestruck grin off his own face.
“Turns out he really is a knockout.”
31 notes
·
View notes
Text
The Data You’re Using to Calculate CTR is Wrong and Here’s Why
Posted by Luca-Bares
Click Through Rate (CTR) is an important metric that’s useful for making a lot of calculations about your site’s SEO performance, from estimating revenue opportunity, prioritize keyword optimization, to the impact of SERP changes within the market. Most SEOs know the value of creating custom CTR curves for their sites to make those projections more accurate. The only problem with custom CTR curves from Google Search Console (GSC) data is that GSC is known to be a flawed tool that can give out inaccurate data. This convolutes the data we get from GSC and can make it difficult to accurately interpret the CTR curves we create from this tool. Fortunately, there are ways to help control for these inaccuracies so you get a much clearer picture of what your data says.
By carefully cleaning your data and thoughtfully implementing an analysis methodology, you can calculate CTR for your site much more accurately using 4 basic steps:
Extract your sites keyword data from GSC — the more data you can get, the better.
Remove biased keywords — Branded search terms can throw off your CTR curves so they should be removed.
Find the optimal impression level for your data set — Google samples data at low impression levels so it’s important to remove keywords that Google may be inaccurately reporting at these lower levels.
Choose your rank position methodology — No data set is perfect, so you may want to change your rank classification methodology depending on the size of your keyword set.
Let’s take a quick step back
Before getting into the nitty gritty of calculating CTR curves, it’s useful to briefly cover the simplest way to calculate CTR since we’ll still be using this principle.
To calculate CTR, download the keywords your site ranks for with click, impression, and position data. Then take the sum of clicks divided by the sum of impressions at each rank level from GSC data you’ll come out with a custom CTR curve. For more detail on actually crunching the numbers for CTR curves, you can check out this article by SEER if you’re not familiar with the process.
Where this calculation gets tricky is when you start to try to control for the bias that inherently comes with CTR data. However, even though we know it gives bad data we don’t really have many other options, so our only option is to try to eliminate as much bias as possible in our data set and be aware of some of the problems that come from using that data.
Without controlling and manipulating the data that comes from GSC, you can get results that seem illogical. For instance, you may find your curves show position 2 and 3 CTR’s having wildly larger averages than position 1. If you don’t know that data that you’re using from Search Console is flawed you might accept that data as truth and a) try to come up with hypotheses as to why the CTR curves look that way based on incorrect data, and b) create inaccurate estimates and projections based on those CTR curves.
Step 1: Pull your data
The first part of any analysis is actually pulling the data. This data ultimately comes from GSC, but there are many platforms that you can pull this data from that are better than GSC's web extraction.
Google Search Console — The easiest platform to get the data from is from GSC itself. You can go into GSC and pull all your keyword data for the last three months. Google will automatically download a csv. file for you. The downside to this method is that GSC only exports 1,000 keywords at a time making your data size much too small for analysis. You can try to get around this by using the keyword filter for the head terms that you rank for and downloading multiple 1k files to get more data, but this process is an arduous one. Besides the other methods listed below are better and easier.
Google Data Studio — For any non-programmer looking for an easy way to get much more data from Search Console for free, this is definitely your best option. Google Data Studio connects directly to your GSC account data, but there are no limitations on the data size you can pull. For the same three month period trying to pull data from GSC where I would get 1k keywords (the max in GSC), Data Studio would give me back 200k keywords!
Google Search Console API — This takes some programming know-how, but one of the best ways to get the data you’re looking for is to connect directly to the source using their API. You’ll have much more control over the data you’re pulling and get a fairly large data set. The main setback here is you need to have the programming knowledge or resources to do so.
Keylime SEO Toolbox — If you don’t know how to program but still want access to Google’s impression and click data, then this is a great option to consider. Keylime stores historical Search Console data directly from the Search Console API so it’s as good (if not better) of an option than directly connecting to the API. It does cost $49/mo, but that’s pretty affordable considering the value of the data you’re getting.
The reason it’s important what platform you get your data from is that each one listed gives out different amounts of data. I’ve listed them here in the order of which tool gives the most data from least to most. Using GSC’s UI directly gives by far the least data, while Keylime can connect to GSC and Google Analytics to combine data to actually give you more information than the Search Console API would give you. This is good because whenever you can get more data, the more likely that the CTR averages you’re going to make for your site are going to be accurate.
Step 2: Remove keyword bias
Once you’ve pulled the data, you have to clean it. Because this data ultimately comes from Search Console we have to make sure we clean the data as best we can.
Remove branded search & knowledge graph keywords
When you create general CTR curves for non-branded search it’s important to remove all branded keywords from your data. These keywords should have high CTR’s which will throw off the averages of your non-branded searches which is why they should be removed. In addition, if you’re aware of any SERP features like knowledge graph you rank for consistently, you should try to remove those as well since we’re only calculating CTR for positions 1–10 and SERP feature keywords could throw off your averages.
Step 3: Find the optimal impression level in GSC for your data
The largest bias from Search Console data appears to come from data with low search impressions which is the data we need to try and remove. It’s not surprising that Google doesn’t accurately report low impression data since we know that Google doesn’t even include data with very low searches in GSC. For some reason Google decides to drastically over report CTR for these low impression terms. As an example, here’s an impression distribution graph I made with data from GSC for keywords that have only 1 impression and the CTR for every position.
If that doesn’t make a lot of sense to you, I’m right there with you. This graph says a majority of the keywords with only one impression has 100 percent CTR. It’s extremely unlikely, no matter how good your site’s CTR is, that one impression keywords are going to get a majority of 100 percent CTR. This is especially true for keywords that rank below #1. This gives us pretty solid evidence low impression data is not to be trusted, and we should limit the number of keywords in our data with low impressions.
Step 3 a): Use normal curves to help calculate CTR
For more evidence of Google giving us biased data we can look at the distribution of CTR for all the keywords in our data set. Since we’re calculating CTR averages, the data should adhere to a Normal Bell Curve. In most cases CTR curves from GSC are highly skewed to the left with long tails which again indicates that Google reports very high CTR at low impression volumes.
If we change the minimum number of impressions for the keyword sets that we’re analyzing we end up getting closer and closer to the center of the graph. Here’s an example, below is the distribution of a site CTR in CTR increments of .001.
The graph above shows the impressions at a very low impression level, around 25 impressions. The distribution of data is mostly on the right side of this graph with a small, high concentration on the left implies that this site has a very high click-through rate. However, by increasing the impression filter to 5,000 impressions per keyword the distribution of keywords gets much much closer to the center.
This graph most likely would never be centered around 50% CTR because that’d be a very high average CTR to have, so the graph should be skewed to the left. The main issue is we don’t know how much because Google gives us sampled data. The best we can do is guess. But this raises the question, what’s the right impression level to filter my keywords out to get rid of faulty data?
One way to find the right impression level to create CTR curves is to use the above method to get a feel for when your CTR distribution is getting close to a normal distribution. A Normally Distributed set of CTR data has fewer outliers and is less likely to have a high number of misreported pieces of data from Google.
3 b): Finding the best impression level to calculate CTR for your site
You can also create impression tiers to see where there’s less variability in the data you're analyzing instead of Normal Curves. The less variability in your estimates, the closer you’re getting to an accurate CTR curve.
Tiered CTR tables
Creating tiered CTR needs to be done for every site because the sampling from GSC for every site is different depending on the keywords you rank for. I’ve seen CTR curves vary as much as 30 percent without the proper controls added to CTR estimates. This step is important because using all of the data points in your CTR calculation can wildly offset your results. And using too few data points gives you too small of a sample size to get an accurate idea of what your CTR actually is. The key is to find that happy medium between the two.
In the tiered table above, there’s huge variability from All Impressions to >250 impressions. After that point though, the change per tier is fairly small. Greater than 750 impressions are the right level for this site because the variability among curves is fairly small as we increase impression levels in the other tiers and >750 impressions still gives us plenty of keywords in each ranking level of our data set.
When creating tiered CTR curves, it’s important to also count how much data is used to build each data point throughout the tiers. For smaller sites, you may find that you don’t have enough data to reliably calculate CTR curves, but that won’t be apparent from just looking at your tiered curves. So knowing the size of your data at each stage is important when deciding what impression level is the most accurate for your site.
Step 4: Decide which position methodology to analyze your data
Once you’ve figured out the correct impression-level you want to filter your data by you can start actually calculating CTR curves using impression, click, and position data. The problem with position data is that it’s often inaccurate, so if you have great keyword tracking it’s far better to use the data from your own tracking numbers than Google’s. Most people can’t track that many keyword positions so it’s necessary to use Google’s position data. That’s certainly possible, but it’s important to be careful with how we use their data.
How to use GSC position
One question that may come up when calculating CTR curves using GSC average positions is whether to use rounded positions or exact positions (i.e. only positions from GSC that rank exactly 1. So, ranks 1.0 or 2.0 are exact positions instead of 1.3 or 2.1 for example).
Exact position vs. rounded position
The reasoning behind using exact position is we want data that’s most likely to have been ranking in position 1 for the time period we’re measuring. Using exact position will give us the best idea of what CTR is at position 1. Exact rank keywords are more likely to have been ranking in that position for the duration of the time period you pulled keywords from. The problem is that Average Rank is an average so there’s no way to know if a keyword has ranked solidly in one place for a full time period or the average just happens to show an exact rank.
Fortunately, if we compare exact position CTR vs rounded position CTR, they’re directionally similar in terms of actual CTR estimations with enough data. The problem is that exact position can be volatile when you don’t have enough data. By using rounded positions we get much more data, so it makes sense to use rounded position when not enough data is available for exact position.
The one caveat is for position 1 CTR estimates. For every other position average rankings can pull up on a keywords average ranking position and at the same time they can pull down the average. Meaning that if a keyword has an average ranking of 3. It could have ranked #1 and #5 at some point and the average was 3. However, for #1 ranks, the average can only be brought down which means that the CTR for a keyword is always going to be reported lower than reality if you use rounded position.
A rank position hybrid: Adjusted exact position
So if you have enough data, only use exact position for position 1. For smaller sites, you can use adjusted exact position. Since Google gives averages up to two decimal points, one way to get more “exact position” #1s is to include all keywords which rank below position 1.1. I find this gets a couple hundred extra keywords which makes my data more reliable.
And this also shouldn’t pull down our average much at all, since GSC is somewhat inaccurate with how it reports Average Ranking. At Wayfair, we use STAT as our keyword rank tracking tool and after comparing the difference between GSC average rankings with average rankings from STAT the rankings near #1 position are close, but not 100 percent accurate. Once you start going farther down in rankings the difference between STAT and GSC become larger, so watch out how far down in the rankings you go to include more keywords in your data set.
I’ve done this analysis for all the rankings tracked on Wayfair and I found the lower the position, the less closely rankings matched between the two tools. So Google isn’t giving great rankings data, but it’s close enough near the #1 position, that I’m comfortable using adjusted exact position to increase my data set without worrying about sacrificing data quality within reason.
Conclusion
GSC is an imperfect tool, but it gives SEOs the best information we have to understand an individual site's click performance in the SERPs. Since we know that GSC is going to throw us a few curveballs with the data it provides its important to control as many pieces of that data as possible. The main ways to do so is to choose your ideal data extraction source, get rid of low impression keywords, and use the right rank rounding methods. If you do all of these things you’re much more likely to get more accurate, consistent CTR curves on your own site.
Sign up for The Moz Top 10, a semimonthly mailer updating you on the top ten hottest pieces of SEO news, tips, and rad links uncovered by the Moz team. Think of it as your exclusive digest of stuff you don't have time to hunt down but want to read!
0 notes
Text
The Data You’re Using to Calculate CTR is Wrong and Here’s Why
Posted by Luca-Bares
Click Through Rate (CTR) is an important metric that’s useful for making a lot of calculations about your site’s SEO performance, from estimating revenue opportunity, prioritize keyword optimization, to the impact of SERP changes within the market. Most SEOs know the value of creating custom CTR curves for their sites to make those projections more accurate. The only problem with custom CTR curves from Google Search Console (GSC) data is that GSC is known to be a flawed tool that can give out inaccurate data. This convolutes the data we get from GSC and can make it difficult to accurately interpret the CTR curves we create from this tool. Fortunately, there are ways to help control for these inaccuracies so you get a much clearer picture of what your data says.
By carefully cleaning your data and thoughtfully implementing an analysis methodology, you can calculate CTR for your site much more accurately using 4 basic steps:
Extract your sites keyword data from GSC — the more data you can get, the better.
Remove biased keywords — Branded search terms can throw off your CTR curves so they should be removed.
Find the optimal impression level for your data set — Google samples data at low impression levels so it’s important to remove keywords that Google may be inaccurately reporting at these lower levels.
Choose your rank position methodology — No data set is perfect, so you may want to change your rank classification methodology depending on the size of your keyword set.
Let’s take a quick step back
Before getting into the nitty gritty of calculating CTR curves, it’s useful to briefly cover the simplest way to calculate CTR since we’ll still be using this principle.
To calculate CTR, download the keywords your site ranks for with click, impression, and position data. Then take the sum of clicks divided by the sum of impressions at each rank level from GSC data you’ll come out with a custom CTR curve. For more detail on actually crunching the numbers for CTR curves, you can check out this article by SEER if you’re not familiar with the process.
Where this calculation gets tricky is when you start to try to control for the bias that inherently comes with CTR data. However, even though we know it gives bad data we don’t really have many other options, so our only option is to try to eliminate as much bias as possible in our data set and be aware of some of the problems that come from using that data.
Without controlling and manipulating the data that comes from GSC, you can get results that seem illogical. For instance, you may find your curves show position 2 and 3 CTR’s having wildly larger averages than position 1. If you don’t know that data that you’re using from Search Console is flawed you might accept that data as truth and a) try to come up with hypotheses as to why the CTR curves look that way based on incorrect data, and b) create inaccurate estimates and projections based on those CTR curves.
Step 1: Pull your data
The first part of any analysis is actually pulling the data. This data ultimately comes from GSC, but there are many platforms that you can pull this data from that are better than GSC's web extraction.
Google Search Console — The easiest platform to get the data from is from GSC itself. You can go into GSC and pull all your keyword data for the last three months. Google will automatically download a csv. file for you. The downside to this method is that GSC only exports 1,000 keywords at a time making your data size much too small for analysis. You can try to get around this by using the keyword filter for the head terms that you rank for and downloading multiple 1k files to get more data, but this process is an arduous one. Besides the other methods listed below are better and easier.
Google Data Studio — For any non-programmer looking for an easy way to get much more data from Search Console for free, this is definitely your best option. Google Data Studio connects directly to your GSC account data, but there are no limitations on the data size you can pull. For the same three month period trying to pull data from GSC where I would get 1k keywords (the max in GSC), Data Studio would give me back 200k keywords!
Google Search Console API — This takes some programming know-how, but one of the best ways to get the data you’re looking for is to connect directly to the source using their API. You’ll have much more control over the data you’re pulling and get a fairly large data set. The main setback here is you need to have the programming knowledge or resources to do so.
Keylime SEO Toolbox — If you don’t know how to program but still want access to Google’s impression and click data, then this is a great option to consider. Keylime stores historical Search Console data directly from the Search Console API so it’s as good (if not better) of an option than directly connecting to the API. It does cost $49/mo, but that’s pretty affordable considering the value of the data you’re getting.
The reason it’s important what platform you get your data from is that each one listed gives out different amounts of data. I’ve listed them here in the order of which tool gives the most data from least to most. Using GSC’s UI directly gives by far the least data, while Keylime can connect to GSC and Google Analytics to combine data to actually give you more information than the Search Console API would give you. This is good because whenever you can get more data, the more likely that the CTR averages you’re going to make for your site are going to be accurate.
Step 2: Remove keyword bias
Once you’ve pulled the data, you have to clean it. Because this data ultimately comes from Search Console we have to make sure we clean the data as best we can.
Remove branded search & knowledge graph keywords
When you create general CTR curves for non-branded search it’s important to remove all branded keywords from your data. These keywords should have high CTR’s which will throw off the averages of your non-branded searches which is why they should be removed. In addition, if you’re aware of any SERP features like knowledge graph you rank for consistently, you should try to remove those as well since we’re only calculating CTR for positions 1–10 and SERP feature keywords could throw off your averages.
Step 3: Find the optimal impression level in GSC for your data
The largest bias from Search Console data appears to come from data with low search impressions which is the data we need to try and remove. It’s not surprising that Google doesn’t accurately report low impression data since we know that Google doesn’t even include data with very low searches in GSC. For some reason Google decides to drastically over report CTR for these low impression terms. As an example, here’s an impression distribution graph I made with data from GSC for keywords that have only 1 impression and the CTR for every position.
If that doesn’t make a lot of sense to you, I’m right there with you. This graph says a majority of the keywords with only one impression has 100 percent CTR. It’s extremely unlikely, no matter how good your site’s CTR is, that one impression keywords are going to get a majority of 100 percent CTR. This is especially true for keywords that rank below #1. This gives us pretty solid evidence low impression data is not to be trusted, and we should limit the number of keywords in our data with low impressions.
Step 3 a): Use normal curves to help calculate CTR
For more evidence of Google giving us biased data we can look at the distribution of CTR for all the keywords in our data set. Since we’re calculating CTR averages, the data should adhere to a Normal Bell Curve. In most cases CTR curves from GSC are highly skewed to the left with long tails which again indicates that Google reports very high CTR at low impression volumes.
If we change the minimum number of impressions for the keyword sets that we’re analyzing we end up getting closer and closer to the center of the graph. Here’s an example, below is the distribution of a site CTR in CTR increments of .001.
The graph above shows the impressions at a very low impression level, around 25 impressions. The distribution of data is mostly on the right side of this graph with a small, high concentration on the left implies that this site has a very high click-through rate. However, by increasing the impression filter to 5,000 impressions per keyword the distribution of keywords gets much much closer to the center.
This graph most likely would never be centered around 50% CTR because that’d be a very high average CTR to have, so the graph should be skewed to the left. The main issue is we don’t know how much because Google gives us sampled data. The best we can do is guess. But this raises the question, what’s the right impression level to filter my keywords out to get rid of faulty data?
One way to find the right impression level to create CTR curves is to use the above method to get a feel for when your CTR distribution is getting close to a normal distribution. A Normally Distributed set of CTR data has fewer outliers and is less likely to have a high number of misreported pieces of data from Google.
3 b): Finding the best impression level to calculate CTR for your site
You can also create impression tiers to see where there’s less variability in the data you're analyzing instead of Normal Curves. The less variability in your estimates, the closer you’re getting to an accurate CTR curve.
Tiered CTR tables
Creating tiered CTR needs to be done for every site because the sampling from GSC for every site is different depending on the keywords you rank for. I’ve seen CTR curves vary as much as 30 percent without the proper controls added to CTR estimates. This step is important because using all of the data points in your CTR calculation can wildly offset your results. And using too few data points gives you too small of a sample size to get an accurate idea of what your CTR actually is. The key is to find that happy medium between the two.
In the tiered table above, there’s huge variability from All Impressions to >250 impressions. After that point though, the change per tier is fairly small. Greater than 750 impressions are the right level for this site because the variability among curves is fairly small as we increase impression levels in the other tiers and >750 impressions still gives us plenty of keywords in each ranking level of our data set.
When creating tiered CTR curves, it’s important to also count how much data is used to build each data point throughout the tiers. For smaller sites, you may find that you don’t have enough data to reliably calculate CTR curves, but that won’t be apparent from just looking at your tiered curves. So knowing the size of your data at each stage is important when deciding what impression level is the most accurate for your site.
Step 4: Decide which position methodology to analyze your data
Once you’ve figured out the correct impression-level you want to filter your data by you can start actually calculating CTR curves using impression, click, and position data. The problem with position data is that it’s often inaccurate, so if you have great keyword tracking it’s far better to use the data from your own tracking numbers than Google’s. Most people can’t track that many keyword positions so it’s necessary to use Google’s position data. That’s certainly possible, but it’s important to be careful with how we use their data.
How to use GSC position
One question that may come up when calculating CTR curves using GSC average positions is whether to use rounded positions or exact positions (i.e. only positions from GSC that rank exactly 1. So, ranks 1.0 or 2.0 are exact positions instead of 1.3 or 2.1 for example).
Exact position vs. rounded position
The reasoning behind using exact position is we want data that’s most likely to have been ranking in position 1 for the time period we’re measuring. Using exact position will give us the best idea of what CTR is at position 1. Exact rank keywords are more likely to have been ranking in that position for the duration of the time period you pulled keywords from. The problem is that Average Rank is an average so there’s no way to know if a keyword has ranked solidly in one place for a full time period or the average just happens to show an exact rank.
Fortunately, if we compare exact position CTR vs rounded position CTR, they’re directionally similar in terms of actual CTR estimations with enough data. The problem is that exact position can be volatile when you don’t have enough data. By using rounded positions we get much more data, so it makes sense to use rounded position when not enough data is available for exact position.
The one caveat is for position 1 CTR estimates. For every other position average rankings can pull up on a keywords average ranking position and at the same time they can pull down the average. Meaning that if a keyword has an average ranking of 3. It could have ranked #1 and #5 at some point and the average was 3. However, for #1 ranks, the average can only be brought down which means that the CTR for a keyword is always going to be reported lower than reality if you use rounded position.
A rank position hybrid: Adjusted exact position
So if you have enough data, only use exact position for position 1. For smaller sites, you can use adjusted exact position. Since Google gives averages up to two decimal points, one way to get more “exact position” #1s is to include all keywords which rank below position 1.1. I find this gets a couple hundred extra keywords which makes my data more reliable.
And this also shouldn’t pull down our average much at all, since GSC is somewhat inaccurate with how it reports Average Ranking. At Wayfair, we use STAT as our keyword rank tracking tool and after comparing the difference between GSC average rankings with average rankings from STAT the rankings near #1 position are close, but not 100 percent accurate. Once you start going farther down in rankings the difference between STAT and GSC become larger, so watch out how far down in the rankings you go to include more keywords in your data set.
I’ve done this analysis for all the rankings tracked on Wayfair and I found the lower the position, the less closely rankings matched between the two tools. So Google isn’t giving great rankings data, but it’s close enough near the #1 position, that I’m comfortable using adjusted exact position to increase my data set without worrying about sacrificing data quality within reason.
Conclusion
GSC is an imperfect tool, but it gives SEOs the best information we have to understand an individual site's click performance in the SERPs. Since we know that GSC is going to throw us a few curveballs with the data it provides its important to control as many pieces of that data as possible. The main ways to do so is to choose your ideal data extraction source, get rid of low impression keywords, and use the right rank rounding methods. If you do all of these things you’re much more likely to get more accurate, consistent CTR curves on your own site.
Sign up for The Moz Top 10, a semimonthly mailer updating you on the top ten hottest pieces of SEO news, tips, and rad links uncovered by the Moz team. Think of it as your exclusive digest of stuff you don't have time to hunt down but want to read!
#túi_giấy_epacking_việt_nam #túi_giấy_epacking #in_túi_giấy_giá_rẻ #in_túi_giấy #epackingvietnam #tuigiayepacking
0 notes
Text
The Data You’re Using to Calculate CTR is Wrong and Here’s Why
Posted by Luca-Bares
Click Through Rate (CTR) is an important metric that’s useful for making a lot of calculations about your site’s SEO performance, from estimating revenue opportunity, prioritize keyword optimization, to the impact of SERP changes within the market. Most SEOs know the value of creating custom CTR curves for their sites to make those projections more accurate. The only problem with custom CTR curves from Google Search Console (GSC) data is that GSC is known to be a flawed tool that can give out inaccurate data. This convolutes the data we get from GSC and can make it difficult to accurately interpret the CTR curves we create from this tool. Fortunately, there are ways to help control for these inaccuracies so you get a much clearer picture of what your data says.
By carefully cleaning your data and thoughtfully implementing an analysis methodology, you can calculate CTR for your site much more accurately using 4 basic steps:
Extract your sites keyword data from GSC — the more data you can get, the better.
Remove biased keywords — Branded search terms can throw off your CTR curves so they should be removed.
Find the optimal impression level for your data set — Google samples data at low impression levels so it’s important to remove keywords that Google may be inaccurately reporting at these lower levels.
Choose your rank position methodology — No data set is perfect, so you may want to change your rank classification methodology depending on the size of your keyword set.
Let’s take a quick step back
Before getting into the nitty gritty of calculating CTR curves, it’s useful to briefly cover the simplest way to calculate CTR since we’ll still be using this principle.
To calculate CTR, download the keywords your site ranks for with click, impression, and position data. Then take the sum of clicks divided by the sum of impressions at each rank level from GSC data you’ll come out with a custom CTR curve. For more detail on actually crunching the numbers for CTR curves, you can check out this article by SEER if you’re not familiar with the process.
Where this calculation gets tricky is when you start to try to control for the bias that inherently comes with CTR data. However, even though we know it gives bad data we don’t really have many other options, so our only option is to try to eliminate as much bias as possible in our data set and be aware of some of the problems that come from using that data.
Without controlling and manipulating the data that comes from GSC, you can get results that seem illogical. For instance, you may find your curves show position 2 and 3 CTR’s having wildly larger averages than position 1. If you don’t know that data that you’re using from Search Console is flawed you might accept that data as truth and a) try to come up with hypotheses as to why the CTR curves look that way based on incorrect data, and b) create inaccurate estimates and projections based on those CTR curves.
Step 1: Pull your data
The first part of any analysis is actually pulling the data. This data ultimately comes from GSC, but there are many platforms that you can pull this data from that are better than GSC's web extraction.
Google Search Console — The easiest platform to get the data from is from GSC itself. You can go into GSC and pull all your keyword data for the last three months. Google will automatically download a csv. file for you. The downside to this method is that GSC only exports 1,000 keywords at a time making your data size much too small for analysis. You can try to get around this by using the keyword filter for the head terms that you rank for and downloading multiple 1k files to get more data, but this process is an arduous one. Besides the other methods listed below are better and easier.
Google Data Studio — For any non-programmer looking for an easy way to get much more data from Search Console for free, this is definitely your best option. Google Data Studio connects directly to your GSC account data, but there are no limitations on the data size you can pull. For the same three month period trying to pull data from GSC where I would get 1k keywords (the max in GSC), Data Studio would give me back 200k keywords!
Google Search Console API — This takes some programming know-how, but one of the best ways to get the data you’re looking for is to connect directly to the source using their API. You’ll have much more control over the data you’re pulling and get a fairly large data set. The main setback here is you need to have the programming knowledge or resources to do so.
Keylime SEO Toolbox — If you don’t know how to program but still want access to Google’s impression and click data, then this is a great option to consider. Keylime stores historical Search Console data directly from the Search Console API so it’s as good (if not better) of an option than directly connecting to the API. It does cost $49/mo, but that’s pretty affordable considering the value of the data you’re getting.
The reason it’s important what platform you get your data from is that each one listed gives out different amounts of data. I’ve listed them here in the order of which tool gives the most data from least to most. Using GSC’s UI directly gives by far the least data, while Keylime can connect to GSC and Google Analytics to combine data to actually give you more information than the Search Console API would give you. This is good because whenever you can get more data, the more likely that the CTR averages you’re going to make for your site are going to be accurate.
Step 2: Remove keyword bias
Once you’ve pulled the data, you have to clean it. Because this data ultimately comes from Search Console we have to make sure we clean the data as best we can.
Remove branded search & knowledge graph keywords
When you create general CTR curves for non-branded search it’s important to remove all branded keywords from your data. These keywords should have high CTR’s which will throw off the averages of your non-branded searches which is why they should be removed. In addition, if you’re aware of any SERP features like knowledge graph you rank for consistently, you should try to remove those as well since we’re only calculating CTR for positions 1–10 and SERP feature keywords could throw off your averages.
Step 3: Find the optimal impression level in GSC for your data
The largest bias from Search Console data appears to come from data with low search impressions which is the data we need to try and remove. It’s not surprising that Google doesn’t accurately report low impression data since we know that Google doesn’t even include data with very low searches in GSC. For some reason Google decides to drastically over report CTR for these low impression terms. As an example, here’s an impression distribution graph I made with data from GSC for keywords that have only 1 impression and the CTR for every position.
If that doesn’t make a lot of sense to you, I’m right there with you. This graph says a majority of the keywords with only one impression has 100 percent CTR. It’s extremely unlikely, no matter how good your site’s CTR is, that one impression keywords are going to get a majority of 100 percent CTR. This is especially true for keywords that rank below #1. This gives us pretty solid evidence low impression data is not to be trusted, and we should limit the number of keywords in our data with low impressions.
Step 3 a): Use normal curves to help calculate CTR
For more evidence of Google giving us biased data we can look at the distribution of CTR for all the keywords in our data set. Since we’re calculating CTR averages, the data should adhere to a Normal Bell Curve. In most cases CTR curves from GSC are highly skewed to the left with long tails which again indicates that Google reports very high CTR at low impression volumes.
If we change the minimum number of impressions for the keyword sets that we’re analyzing we end up getting closer and closer to the center of the graph. Here’s an example, below is the distribution of a site CTR in CTR increments of .001.
The graph above shows the impressions at a very low impression level, around 25 impressions. The distribution of data is mostly on the right side of this graph with a small, high concentration on the left implies that this site has a very high click-through rate. However, by increasing the impression filter to 5,000 impressions per keyword the distribution of keywords gets much much closer to the center.
This graph most likely would never be centered around 50% CTR because that’d be a very high average CTR to have, so the graph should be skewed to the left. The main issue is we don’t know how much because Google gives us sampled data. The best we can do is guess. But this raises the question, what’s the right impression level to filter my keywords out to get rid of faulty data?
One way to find the right impression level to create CTR curves is to use the above method to get a feel for when your CTR distribution is getting close to a normal distribution. A Normally Distributed set of CTR data has fewer outliers and is less likely to have a high number of misreported pieces of data from Google.
3 b): Finding the best impression level to calculate CTR for your site
You can also create impression tiers to see where there’s less variability in the data you're analyzing instead of Normal Curves. The less variability in your estimates, the closer you’re getting to an accurate CTR curve.
Tiered CTR tables
Creating tiered CTR needs to be done for every site because the sampling from GSC for every site is different depending on the keywords you rank for. I’ve seen CTR curves vary as much as 30 percent without the proper controls added to CTR estimates. This step is important because using all of the data points in your CTR calculation can wildly offset your results. And using too few data points gives you too small of a sample size to get an accurate idea of what your CTR actually is. The key is to find that happy medium between the two.
In the tiered table above, there’s huge variability from All Impressions to >250 impressions. After that point though, the change per tier is fairly small. Greater than 750 impressions are the right level for this site because the variability among curves is fairly small as we increase impression levels in the other tiers and >750 impressions still gives us plenty of keywords in each ranking level of our data set.
When creating tiered CTR curves, it’s important to also count how much data is used to build each data point throughout the tiers. For smaller sites, you may find that you don’t have enough data to reliably calculate CTR curves, but that won’t be apparent from just looking at your tiered curves. So knowing the size of your data at each stage is important when deciding what impression level is the most accurate for your site.
Step 4: Decide which position methodology to analyze your data
Once you’ve figured out the correct impression-level you want to filter your data by you can start actually calculating CTR curves using impression, click, and position data. The problem with position data is that it’s often inaccurate, so if you have great keyword tracking it’s far better to use the data from your own tracking numbers than Google’s. Most people can’t track that many keyword positions so it’s necessary to use Google’s position data. That’s certainly possible, but it’s important to be careful with how we use their data.
How to use GSC position
One question that may come up when calculating CTR curves using GSC average positions is whether to use rounded positions or exact positions (i.e. only positions from GSC that rank exactly 1. So, ranks 1.0 or 2.0 are exact positions instead of 1.3 or 2.1 for example).
Exact position vs. rounded position
The reasoning behind using exact position is we want data that’s most likely to have been ranking in position 1 for the time period we’re measuring. Using exact position will give us the best idea of what CTR is at position 1. Exact rank keywords are more likely to have been ranking in that position for the duration of the time period you pulled keywords from. The problem is that Average Rank is an average so there’s no way to know if a keyword has ranked solidly in one place for a full time period or the average just happens to show an exact rank.
Fortunately, if we compare exact position CTR vs rounded position CTR, they’re directionally similar in terms of actual CTR estimations with enough data. The problem is that exact position can be volatile when you don’t have enough data. By using rounded positions we get much more data, so it makes sense to use rounded position when not enough data is available for exact position.
The one caveat is for position 1 CTR estimates. For every other position average rankings can pull up on a keywords average ranking position and at the same time they can pull down the average. Meaning that if a keyword has an average ranking of 3. It could have ranked #1 and #5 at some point and the average was 3. However, for #1 ranks, the average can only be brought down which means that the CTR for a keyword is always going to be reported lower than reality if you use rounded position.
A rank position hybrid: Adjusted exact position
So if you have enough data, only use exact position for position 1. For smaller sites, you can use adjusted exact position. Since Google gives averages up to two decimal points, one way to get more “exact position” #1s is to include all keywords which rank below position 1.1. I find this gets a couple hundred extra keywords which makes my data more reliable.
And this also shouldn’t pull down our average much at all, since GSC is somewhat inaccurate with how it reports Average Ranking. At Wayfair, we use STAT as our keyword rank tracking tool and after comparing the difference between GSC average rankings with average rankings from STAT the rankings near #1 position are close, but not 100 percent accurate. Once you start going farther down in rankings the difference between STAT and GSC become larger, so watch out how far down in the rankings you go to include more keywords in your data set.
I’ve done this analysis for all the rankings tracked on Wayfair and I found the lower the position, the less closely rankings matched between the two tools. So Google isn’t giving great rankings data, but it’s close enough near the #1 position, that I’m comfortable using adjusted exact position to increase my data set without worrying about sacrificing data quality within reason.
Conclusion
GSC is an imperfect tool, but it gives SEOs the best information we have to understand an individual site's click performance in the SERPs. Since we know that GSC is going to throw us a few curveballs with the data it provides its important to control as many pieces of that data as possible. The main ways to do so is to choose your ideal data extraction source, get rid of low impression keywords, and use the right rank rounding methods. If you do all of these things you’re much more likely to get more accurate, consistent CTR curves on your own site.
Sign up for The Moz Top 10, a semimonthly mailer updating you on the top ten hottest pieces of SEO news, tips, and rad links uncovered by the Moz team. Think of it as your exclusive digest of stuff you don't have time to hunt down but want to read!
from The Moz Blog http://tracking.feedpress.it/link/9375/12806628
0 notes
Text
The Data You’re Using to Calculate CTR is Wrong and Here’s Why
Posted by Luca-Bares
Click Through Rate (CTR) is an important metric that’s useful for making a lot of calculations about your site’s SEO performance, from estimating revenue opportunity, prioritize keyword optimization, to the impact of SERP changes within the market. Most SEOs know the value of creating custom CTR curves for their sites to make those projections more accurate. The only problem with custom CTR curves from Google Search Console (GSC) data is that GSC is known to be a flawed tool that can give out inaccurate data. This convolutes the data we get from GSC and can make it difficult to accurately interpret the CTR curves we create from this tool. Fortunately, there are ways to help control for these inaccuracies so you get a much clearer picture of what your data says.
By carefully cleaning your data and thoughtfully implementing an analysis methodology, you can calculate CTR for your site much more accurately using 4 basic steps:
Extract your sites keyword data from GSC — the more data you can get, the better.
Remove biased keywords — Branded search terms can throw off your CTR curves so they should be removed.
Find the optimal impression level for your data set — Google samples data at low impression levels so it’s important to remove keywords that Google may be inaccurately reporting at these lower levels.
Choose your rank position methodology — No data set is perfect, so you may want to change your rank classification methodology depending on the size of your keyword set.
Let’s take a quick step back
Before getting into the nitty gritty of calculating CTR curves, it’s useful to briefly cover the simplest way to calculate CTR since we’ll still be using this principle.
To calculate CTR, download the keywords your site ranks for with click, impression, and position data. Then take the sum of clicks divided by the sum of impressions at each rank level from GSC data you’ll come out with a custom CTR curve. For more detail on actually crunching the numbers for CTR curves, you can check out this article by SEER if you’re not familiar with the process.
Where this calculation gets tricky is when you start to try to control for the bias that inherently comes with CTR data. However, even though we know it gives bad data we don’t really have many other options, so our only option is to try to eliminate as much bias as possible in our data set and be aware of some of the problems that come from using that data.
Without controlling and manipulating the data that comes from GSC, you can get results that seem illogical. For instance, you may find your curves show position 2 and 3 CTR’s having wildly larger averages than position 1. If you don’t know that data that you’re using from Search Console is flawed you might accept that data as truth and a) try to come up with hypotheses as to why the CTR curves look that way based on incorrect data, and b) create inaccurate estimates and projections based on those CTR curves.
Step 1: Pull your data
The first part of any analysis is actually pulling the data. This data ultimately comes from GSC, but there are many platforms that you can pull this data from that are better than GSC's web extraction.
Google Search Console — The easiest platform to get the data from is from GSC itself. You can go into GSC and pull all your keyword data for the last three months. Google will automatically download a csv. file for you. The downside to this method is that GSC only exports 1,000 keywords at a time making your data size much too small for analysis. You can try to get around this by using the keyword filter for the head terms that you rank for and downloading multiple 1k files to get more data, but this process is an arduous one. Besides the other methods listed below are better and easier.
Google Data Studio — For any non-programmer looking for an easy way to get much more data from Search Console for free, this is definitely your best option. Google Data Studio connects directly to your GSC account data, but there are no limitations on the data size you can pull. For the same three month period trying to pull data from GSC where I would get 1k keywords (the max in GSC), Data Studio would give me back 200k keywords!
Google Search Console API — This takes some programming know-how, but one of the best ways to get the data you’re looking for is to connect directly to the source using their API. You’ll have much more control over the data you’re pulling and get a fairly large data set. The main setback here is you need to have the programming knowledge or resources to do so.
Keylime SEO Toolbox — If you don’t know how to program but still want access to Google’s impression and click data, then this is a great option to consider. Keylime stores historical Search Console data directly from the Search Console API so it’s as good (if not better) of an option than directly connecting to the API. It does cost $49/mo, but that’s pretty affordable considering the value of the data you’re getting.
The reason it’s important what platform you get your data from is that each one listed gives out different amounts of data. I’ve listed them here in the order of which tool gives the most data from least to most. Using GSC’s UI directly gives by far the least data, while Keylime can connect to GSC and Google Analytics to combine data to actually give you more information than the Search Console API would give you. This is good because whenever you can get more data, the more likely that the CTR averages you’re going to make for your site are going to be accurate.
Step 2: Remove keyword bias
Once you’ve pulled the data, you have to clean it. Because this data ultimately comes from Search Console we have to make sure we clean the data as best we can.
Remove branded search & knowledge graph keywords
When you create general CTR curves for non-branded search it’s important to remove all branded keywords from your data. These keywords should have high CTR’s which will throw off the averages of your non-branded searches which is why they should be removed. In addition, if you’re aware of any SERP features like knowledge graph you rank for consistently, you should try to remove those as well since we’re only calculating CTR for positions 1–10 and SERP feature keywords could throw off your averages.
Step 3: Find the optimal impression level in GSC for your data
The largest bias from Search Console data appears to come from data with low search impressions which is the data we need to try and remove. It’s not surprising that Google doesn’t accurately report low impression data since we know that Google doesn’t even include data with very low searches in GSC. For some reason Google decides to drastically over report CTR for these low impression terms. As an example, here’s an impression distribution graph I made with data from GSC for keywords that have only 1 impression and the CTR for every position.
If that doesn’t make a lot of sense to you, I’m right there with you. This graph says a majority of the keywords with only one impression has 100 percent CTR. It’s extremely unlikely, no matter how good your site’s CTR is, that one impression keywords are going to get a majority of 100 percent CTR. This is especially true for keywords that rank below #1. This gives us pretty solid evidence low impression data is not to be trusted, and we should limit the number of keywords in our data with low impressions.
Step 3 a): Use normal curves to help calculate CTR
For more evidence of Google giving us biased data we can look at the distribution of CTR for all the keywords in our data set. Since we’re calculating CTR averages, the data should adhere to a Normal Bell Curve. In most cases CTR curves from GSC are highly skewed to the left with long tails which again indicates that Google reports very high CTR at low impression volumes.
If we change the minimum number of impressions for the keyword sets that we’re analyzing we end up getting closer and closer to the center of the graph. Here’s an example, below is the distribution of a site CTR in CTR increments of .001.
The graph above shows the impressions at a very low impression level, around 25 impressions. The distribution of data is mostly on the right side of this graph with a small, high concentration on the left implies that this site has a very high click-through rate. However, by increasing the impression filter to 5,000 impressions per keyword the distribution of keywords gets much much closer to the center.
This graph most likely would never be centered around 50% CTR because that’d be a very high average CTR to have, so the graph should be skewed to the left. The main issue is we don’t know how much because Google gives us sampled data. The best we can do is guess. But this raises the question, what’s the right impression level to filter my keywords out to get rid of faulty data?
One way to find the right impression level to create CTR curves is to use the above method to get a feel for when your CTR distribution is getting close to a normal distribution. A Normally Distributed set of CTR data has fewer outliers and is less likely to have a high number of misreported pieces of data from Google.
3 b): Finding the best impression level to calculate CTR for your site
You can also create impression tiers to see where there’s less variability in the data you're analyzing instead of Normal Curves. The less variability in your estimates, the closer you’re getting to an accurate CTR curve.
Tiered CTR tables
Creating tiered CTR needs to be done for every site because the sampling from GSC for every site is different depending on the keywords you rank for. I’ve seen CTR curves vary as much as 30 percent without the proper controls added to CTR estimates. This step is important because using all of the data points in your CTR calculation can wildly offset your results. And using too few data points gives you too small of a sample size to get an accurate idea of what your CTR actually is. The key is to find that happy medium between the two.
In the tiered table above, there’s huge variability from All Impressions to >250 impressions. After that point though, the change per tier is fairly small. Greater than 750 impressions are the right level for this site because the variability among curves is fairly small as we increase impression levels in the other tiers and >750 impressions still gives us plenty of keywords in each ranking level of our data set.
When creating tiered CTR curves, it’s important to also count how much data is used to build each data point throughout the tiers. For smaller sites, you may find that you don’t have enough data to reliably calculate CTR curves, but that won’t be apparent from just looking at your tiered curves. So knowing the size of your data at each stage is important when deciding what impression level is the most accurate for your site.
Step 4: Decide which position methodology to analyze your data
Once you’ve figured out the correct impression-level you want to filter your data by you can start actually calculating CTR curves using impression, click, and position data. The problem with position data is that it’s often inaccurate, so if you have great keyword tracking it’s far better to use the data from your own tracking numbers than Google’s. Most people can’t track that many keyword positions so it’s necessary to use Google’s position data. That’s certainly possible, but it’s important to be careful with how we use their data.
How to use GSC position
One question that may come up when calculating CTR curves using GSC average positions is whether to use rounded positions or exact positions (i.e. only positions from GSC that rank exactly 1. So, ranks 1.0 or 2.0 are exact positions instead of 1.3 or 2.1 for example).
Exact position vs. rounded position
The reasoning behind using exact position is we want data that’s most likely to have been ranking in position 1 for the time period we’re measuring. Using exact position will give us the best idea of what CTR is at position 1. Exact rank keywords are more likely to have been ranking in that position for the duration of the time period you pulled keywords from. The problem is that Average Rank is an average so there’s no way to know if a keyword has ranked solidly in one place for a full time period or the average just happens to show an exact rank.
Fortunately, if we compare exact position CTR vs rounded position CTR, they’re directionally similar in terms of actual CTR estimations with enough data. The problem is that exact position can be volatile when you don’t have enough data. By using rounded positions we get much more data, so it makes sense to use rounded position when not enough data is available for exact position.
The one caveat is for position 1 CTR estimates. For every other position average rankings can pull up on a keywords average ranking position and at the same time they can pull down the average. Meaning that if a keyword has an average ranking of 3. It could have ranked #1 and #5 at some point and the average was 3. However, for #1 ranks, the average can only be brought down which means that the CTR for a keyword is always going to be reported lower than reality if you use rounded position.
A rank position hybrid: Adjusted exact position
So if you have enough data, only use exact position for position 1. For smaller sites, you can use adjusted exact position. Since Google gives averages up to two decimal points, one way to get more “exact position” #1s is to include all keywords which rank below position 1.1. I find this gets a couple hundred extra keywords which makes my data more reliable.
And this also shouldn’t pull down our average much at all, since GSC is somewhat inaccurate with how it reports Average Ranking. At Wayfair, we use STAT as our keyword rank tracking tool and after comparing the difference between GSC average rankings with average rankings from STAT the rankings near #1 position are close, but not 100 percent accurate. Once you start going farther down in rankings the difference between STAT and GSC become larger, so watch out how far down in the rankings you go to include more keywords in your data set.
I’ve done this analysis for all the rankings tracked on Wayfair and I found the lower the position, the less closely rankings matched between the two tools. So Google isn’t giving great rankings data, but it’s close enough near the #1 position, that I’m comfortable using adjusted exact position to increase my data set without worrying about sacrificing data quality within reason.
Conclusion
GSC is an imperfect tool, but it gives SEOs the best information we have to understand an individual site's click performance in the SERPs. Since we know that GSC is going to throw us a few curveballs with the data it provides its important to control as many pieces of that data as possible. The main ways to do so is to choose your ideal data extraction source, get rid of low impression keywords, and use the right rank rounding methods. If you do all of these things you’re much more likely to get more accurate, consistent CTR curves on your own site.
Sign up for The Moz Top 10, a semimonthly mailer updating you on the top ten hottest pieces of SEO news, tips, and rad links uncovered by the Moz team. Think of it as your exclusive digest of stuff you don't have time to hunt down but want to read!
from The Moz Blog https://ift.tt/3168gmA via IFTTT
0 notes
Text
The Data You’re Using to Calculate CTR is Wrong and Here’s Why
Posted by Luca-Bares
Click Through Rate (CTR) is an important metric that’s useful for making a lot of calculations about your site’s SEO performance, from estimating revenue opportunity, prioritize keyword optimization, to the impact of SERP changes within the market. Most SEOs know the value of creating custom CTR curves for their sites to make those projections more accurate. The only problem with custom CTR curves from Google Search Console (GSC) data is that GSC is known to be a flawed tool that can give out inaccurate data. This convolutes the data we get from GSC and can make it difficult to accurately interpret the CTR curves we create from this tool. Fortunately, there are ways to help control for these inaccuracies so you get a much clearer picture of what your data says.
By carefully cleaning your data and thoughtfully implementing an analysis methodology, you can calculate CTR for your site much more accurately using 4 basic steps:
Extract your sites keyword data from GSC — the more data you can get, the better.
Remove biased keywords — Branded search terms can throw off your CTR curves so they should be removed.
Find the optimal impression level for your data set — Google samples data at low impression levels so it’s important to remove keywords that Google may be inaccurately reporting at these lower levels.
Choose your rank position methodology — No data set is perfect, so you may want to change your rank classification methodology depending on the size of your keyword set.
Let’s take a quick step back
Before getting into the nitty gritty of calculating CTR curves, it’s useful to briefly cover the simplest way to calculate CTR since we’ll still be using this principle.
To calculate CTR, download the keywords your site ranks for with click, impression, and position data. Then take the sum of clicks divided by the sum of impressions at each rank level from GSC data you’ll come out with a custom CTR curve. For more detail on actually crunching the numbers for CTR curves, you can check out this article by SEER if you’re not familiar with the process.
Where this calculation gets tricky is when you start to try to control for the bias that inherently comes with CTR data. However, even though we know it gives bad data we don’t really have many other options, so our only option is to try to eliminate as much bias as possible in our data set and be aware of some of the problems that come from using that data.
Without controlling and manipulating the data that comes from GSC, you can get results that seem illogical. For instance, you may find your curves show position 2 and 3 CTR’s having wildly larger averages than position 1. If you don’t know that data that you’re using from Search Console is flawed you might accept that data as truth and a) try to come up with hypotheses as to why the CTR curves look that way based on incorrect data, and b) create inaccurate estimates and projections based on those CTR curves.
Step 1: Pull your data
The first part of any analysis is actually pulling the data. This data ultimately comes from GSC, but there are many platforms that you can pull this data from that are better than GSC's web extraction.
Google Search Console — The easiest platform to get the data from is from GSC itself. You can go into GSC and pull all your keyword data for the last three months. Google will automatically download a csv. file for you. The downside to this method is that GSC only exports 1,000 keywords at a time making your data size much too small for analysis. You can try to get around this by using the keyword filter for the head terms that you rank for and downloading multiple 1k files to get more data, but this process is an arduous one. Besides the other methods listed below are better and easier.
Google Data Studio — For any non-programmer looking for an easy way to get much more data from Search Console for free, this is definitely your best option. Google Data Studio connects directly to your GSC account data, but there are no limitations on the data size you can pull. For the same three month period trying to pull data from GSC where I would get 1k keywords (the max in GSC), Data Studio would give me back 200k keywords!
Google Search Console API — This takes some programming know-how, but one of the best ways to get the data you’re looking for is to connect directly to the source using their API. You’ll have much more control over the data you’re pulling and get a fairly large data set. The main setback here is you need to have the programming knowledge or resources to do so.
Keylime SEO Toolbox — If you don’t know how to program but still want access to Google’s impression and click data, then this is a great option to consider. Keylime stores historical Search Console data directly from the Search Console API so it’s as good (if not better) of an option than directly connecting to the API. It does cost $49/mo, but that’s pretty affordable considering the value of the data you’re getting.
The reason it’s important what platform you get your data from is that each one listed gives out different amounts of data. I’ve listed them here in the order of which tool gives the most data from least to most. Using GSC’s UI directly gives by far the least data, while Keylime can connect to GSC and Google Analytics to combine data to actually give you more information than the Search Console API would give you. This is good because whenever you can get more data, the more likely that the CTR averages you’re going to make for your site are going to be accurate.
Step 2: Remove keyword bias
Once you’ve pulled the data, you have to clean it. Because this data ultimately comes from Search Console we have to make sure we clean the data as best we can.
Remove branded search & knowledge graph keywords
When you create general CTR curves for non-branded search it’s important to remove all branded keywords from your data. These keywords should have high CTR’s which will throw off the averages of your non-branded searches which is why they should be removed. In addition, if you’re aware of any SERP features like knowledge graph you rank for consistently, you should try to remove those as well since we’re only calculating CTR for positions 1–10 and SERP feature keywords could throw off your averages.
Step 3: Find the optimal impression level in GSC for your data
The largest bias from Search Console data appears to come from data with low search impressions which is the data we need to try and remove. It’s not surprising that Google doesn’t accurately report low impression data since we know that Google doesn’t even include data with very low searches in GSC. For some reason Google decides to drastically over report CTR for these low impression terms. As an example, here’s an impression distribution graph I made with data from GSC for keywords that have only 1 impression and the CTR for every position.
If that doesn’t make a lot of sense to you, I’m right there with you. This graph says a majority of the keywords with only one impression has 100 percent CTR. It’s extremely unlikely, no matter how good your site’s CTR is, that one impression keywords are going to get a majority of 100 percent CTR. This is especially true for keywords that rank below #1. This gives us pretty solid evidence low impression data is not to be trusted, and we should limit the number of keywords in our data with low impressions.
Step 3 a): Use normal curves to help calculate CTR
For more evidence of Google giving us biased data we can look at the distribution of CTR for all the keywords in our data set. Since we’re calculating CTR averages, the data should adhere to a Normal Bell Curve. In most cases CTR curves from GSC are highly skewed to the left with long tails which again indicates that Google reports very high CTR at low impression volumes.
If we change the minimum number of impressions for the keyword sets that we’re analyzing we end up getting closer and closer to the center of the graph. Here’s an example, below is the distribution of a site CTR in CTR increments of .001.
The graph above shows the impressions at a very low impression level, around 25 impressions. The distribution of data is mostly on the right side of this graph with a small, high concentration on the left implies that this site has a very high click-through rate. However, by increasing the impression filter to 5,000 impressions per keyword the distribution of keywords gets much much closer to the center.
This graph most likely would never be centered around 50% CTR because that’d be a very high average CTR to have, so the graph should be skewed to the left. The main issue is we don’t know how much because Google gives us sampled data. The best we can do is guess. But this raises the question, what’s the right impression level to filter my keywords out to get rid of faulty data?
One way to find the right impression level to create CTR curves is to use the above method to get a feel for when your CTR distribution is getting close to a normal distribution. A Normally Distributed set of CTR data has fewer outliers and is less likely to have a high number of misreported pieces of data from Google.
3 b): Finding the best impression level to calculate CTR for your site
You can also create impression tiers to see where there’s less variability in the data you're analyzing instead of Normal Curves. The less variability in your estimates, the closer you’re getting to an accurate CTR curve.
Tiered CTR tables
Creating tiered CTR needs to be done for every site because the sampling from GSC for every site is different depending on the keywords you rank for. I’ve seen CTR curves vary as much as 30 percent without the proper controls added to CTR estimates. This step is important because using all of the data points in your CTR calculation can wildly offset your results. And using too few data points gives you too small of a sample size to get an accurate idea of what your CTR actually is. The key is to find that happy medium between the two.
In the tiered table above, there’s huge variability from All Impressions to >250 impressions. After that point though, the change per tier is fairly small. Greater than 750 impressions are the right level for this site because the variability among curves is fairly small as we increase impression levels in the other tiers and >750 impressions still gives us plenty of keywords in each ranking level of our data set.
When creating tiered CTR curves, it’s important to also count how much data is used to build each data point throughout the tiers. For smaller sites, you may find that you don’t have enough data to reliably calculate CTR curves, but that won’t be apparent from just looking at your tiered curves. So knowing the size of your data at each stage is important when deciding what impression level is the most accurate for your site.
Step 4: Decide which position methodology to analyze your data
Once you’ve figured out the correct impression-level you want to filter your data by you can start actually calculating CTR curves using impression, click, and position data. The problem with position data is that it’s often inaccurate, so if you have great keyword tracking it’s far better to use the data from your own tracking numbers than Google’s. Most people can’t track that many keyword positions so it’s necessary to use Google’s position data. That’s certainly possible, but it’s important to be careful with how we use their data.
How to use GSC position
One question that may come up when calculating CTR curves using GSC average positions is whether to use rounded positions or exact positions (i.e. only positions from GSC that rank exactly 1. So, ranks 1.0 or 2.0 are exact positions instead of 1.3 or 2.1 for example).
Exact position vs. rounded position
The reasoning behind using exact position is we want data that’s most likely to have been ranking in position 1 for the time period we’re measuring. Using exact position will give us the best idea of what CTR is at position 1. Exact rank keywords are more likely to have been ranking in that position for the duration of the time period you pulled keywords from. The problem is that Average Rank is an average so there’s no way to know if a keyword has ranked solidly in one place for a full time period or the average just happens to show an exact rank.
Fortunately, if we compare exact position CTR vs rounded position CTR, they’re directionally similar in terms of actual CTR estimations with enough data. The problem is that exact position can be volatile when you don’t have enough data. By using rounded positions we get much more data, so it makes sense to use rounded position when not enough data is available for exact position.
The one caveat is for position 1 CTR estimates. For every other position average rankings can pull up on a keywords average ranking position and at the same time they can pull down the average. Meaning that if a keyword has an average ranking of 3. It could have ranked #1 and #5 at some point and the average was 3. However, for #1 ranks, the average can only be brought down which means that the CTR for a keyword is always going to be reported lower than reality if you use rounded position.
A rank position hybrid: Adjusted exact position
So if you have enough data, only use exact position for position 1. For smaller sites, you can use adjusted exact position. Since Google gives averages up to two decimal points, one way to get more “exact position” #1s is to include all keywords which rank below position 1.1. I find this gets a couple hundred extra keywords which makes my data more reliable.
And this also shouldn’t pull down our average much at all, since GSC is somewhat inaccurate with how it reports Average Ranking. At Wayfair, we use STAT as our keyword rank tracking tool and after comparing the difference between GSC average rankings with average rankings from STAT the rankings near #1 position are close, but not 100 percent accurate. Once you start going farther down in rankings the difference between STAT and GSC become larger, so watch out how far down in the rankings you go to include more keywords in your data set.
I’ve done this analysis for all the rankings tracked on Wayfair and I found the lower the position, the less closely rankings matched between the two tools. So Google isn’t giving great rankings data, but it’s close enough near the #1 position, that I’m comfortable using adjusted exact position to increase my data set without worrying about sacrificing data quality within reason.
Conclusion
GSC is an imperfect tool, but it gives SEOs the best information we have to understand an individual site's click performance in the SERPs. Since we know that GSC is going to throw us a few curveballs with the data it provides its important to control as many pieces of that data as possible. The main ways to do so is to choose your ideal data extraction source, get rid of low impression keywords, and use the right rank rounding methods. If you do all of these things you’re much more likely to get more accurate, consistent CTR curves on your own site.
Sign up for The Moz Top 10, a semimonthly mailer updating you on the top ten hottest pieces of SEO news, tips, and rad links uncovered by the Moz team. Think of it as your exclusive digest of stuff you don't have time to hunt down but want to read!
0 notes
Text
The Data You’re Using to Calculate CTR is Wrong and Here’s Why
Posted by Luca-Bares
Click Through Rate (CTR) is an important metric that’s useful for making a lot of calculations about your site’s SEO performance, from estimating revenue opportunity, prioritize keyword optimization, to the impact of SERP changes within the market. Most SEOs know the value of creating custom CTR curves for their sites to make those projections more accurate. The only problem with custom CTR curves from Google Search Console (GSC) data is that GSC is known to be a flawed tool that can give out inaccurate data. This convolutes the data we get from GSC and can make it difficult to accurately interpret the CTR curves we create from this tool. Fortunately, there are ways to help control for these inaccuracies so you get a much clearer picture of what your data says.
By carefully cleaning your data and thoughtfully implementing an analysis methodology, you can calculate CTR for your site much more accurately using 4 basic steps:
Extract your sites keyword data from GSC — the more data you can get, the better.
Remove biased keywords — Branded search terms can throw off your CTR curves so they should be removed.
Find the optimal impression level for your data set — Google samples data at low impression levels so it’s important to remove keywords that Google may be inaccurately reporting at these lower levels.
Choose your rank position methodology — No data set is perfect, so you may want to change your rank classification methodology depending on the size of your keyword set.
Let’s take a quick step back
Before getting into the nitty gritty of calculating CTR curves, it’s useful to briefly cover the simplest way to calculate CTR since we’ll still be using this principle.
To calculate CTR, download the keywords your site ranks for with click, impression, and position data. Then take the sum of clicks divided by the sum of impressions at each rank level from GSC data you’ll come out with a custom CTR curve. For more detail on actually crunching the numbers for CTR curves, you can check out this article by SEER if you’re not familiar with the process.
Where this calculation gets tricky is when you start to try to control for the bias that inherently comes with CTR data. However, even though we know it gives bad data we don’t really have many other options, so our only option is to try to eliminate as much bias as possible in our data set and be aware of some of the problems that come from using that data.
Without controlling and manipulating the data that comes from GSC, you can get results that seem illogical. For instance, you may find your curves show position 2 and 3 CTR’s having wildly larger averages than position 1. If you don’t know that data that you’re using from Search Console is flawed you might accept that data as truth and a) try to come up with hypotheses as to why the CTR curves look that way based on incorrect data, and b) create inaccurate estimates and projections based on those CTR curves.
Step 1: Pull your data
The first part of any analysis is actually pulling the data. This data ultimately comes from GSC, but there are many platforms that you can pull this data from that are better than GSC's web extraction.
Google Search Console — The easiest platform to get the data from is from GSC itself. You can go into GSC and pull all your keyword data for the last three months. Google will automatically download a csv. file for you. The downside to this method is that GSC only exports 1,000 keywords at a time making your data size much too small for analysis. You can try to get around this by using the keyword filter for the head terms that you rank for and downloading multiple 1k files to get more data, but this process is an arduous one. Besides the other methods listed below are better and easier.
Google Data Studio — For any non-programmer looking for an easy way to get much more data from Search Console for free, this is definitely your best option. Google Data Studio connects directly to your GSC account data, but there are no limitations on the data size you can pull. For the same three month period trying to pull data from GSC where I would get 1k keywords (the max in GSC), Data Studio would give me back 200k keywords!
Google Search Console API — This takes some programming know-how, but one of the best ways to get the data you’re looking for is to connect directly to the source using their API. You’ll have much more control over the data you’re pulling and get a fairly large data set. The main setback here is you need to have the programming knowledge or resources to do so.
Keylime SEO Toolbox — If you don’t know how to program but still want access to Google’s impression and click data, then this is a great option to consider. Keylime stores historical Search Console data directly from the Search Console API so it’s as good (if not better) of an option than directly connecting to the API. It does cost $49/mo, but that’s pretty affordable considering the value of the data you’re getting.
The reason it’s important what platform you get your data from is that each one listed gives out different amounts of data. I’ve listed them here in the order of which tool gives the most data from least to most. Using GSC’s UI directly gives by far the least data, while Keylime can connect to GSC and Google Analytics to combine data to actually give you more information than the Search Console API would give you. This is good because whenever you can get more data, the more likely that the CTR averages you’re going to make for your site are going to be accurate.
Step 2: Remove keyword bias
Once you’ve pulled the data, you have to clean it. Because this data ultimately comes from Search Console we have to make sure we clean the data as best we can.
Remove branded search & knowledge graph keywords
When you create general CTR curves for non-branded search it’s important to remove all branded keywords from your data. These keywords should have high CTR’s which will throw off the averages of your non-branded searches which is why they should be removed. In addition, if you’re aware of any SERP features like knowledge graph you rank for consistently, you should try to remove those as well since we’re only calculating CTR for positions 1–10 and SERP feature keywords could throw off your averages.
Step 3: Find the optimal impression level in GSC for your data
The largest bias from Search Console data appears to come from data with low search impressions which is the data we need to try and remove. It’s not surprising that Google doesn’t accurately report low impression data since we know that Google doesn’t even include data with very low searches in GSC. For some reason Google decides to drastically over report CTR for these low impression terms. As an example, here’s an impression distribution graph I made with data from GSC for keywords that have only 1 impression and the CTR for every position.
If that doesn’t make a lot of sense to you, I’m right there with you. This graph says a majority of the keywords with only one impression has 100 percent CTR. It’s extremely unlikely, no matter how good your site’s CTR is, that one impression keywords are going to get a majority of 100 percent CTR. This is especially true for keywords that rank below #1. This gives us pretty solid evidence low impression data is not to be trusted, and we should limit the number of keywords in our data with low impressions.
Step 3 a): Use normal curves to help calculate CTR
For more evidence of Google giving us biased data we can look at the distribution of CTR for all the keywords in our data set. Since we’re calculating CTR averages, the data should adhere to a Normal Bell Curve. In most cases CTR curves from GSC are highly skewed to the left with long tails which again indicates that Google reports very high CTR at low impression volumes.
If we change the minimum number of impressions for the keyword sets that we’re analyzing we end up getting closer and closer to the center of the graph. Here’s an example, below is the distribution of a site CTR in CTR increments of .001.
The graph above shows the impressions at a very low impression level, around 25 impressions. The distribution of data is mostly on the right side of this graph with a small, high concentration on the left implies that this site has a very high click-through rate. However, by increasing the impression filter to 5,000 impressions per keyword the distribution of keywords gets much much closer to the center.
This graph most likely would never be centered around 50% CTR because that’d be a very high average CTR to have, so the graph should be skewed to the left. The main issue is we don’t know how much because Google gives us sampled data. The best we can do is guess. But this raises the question, what’s the right impression level to filter my keywords out to get rid of faulty data?
One way to find the right impression level to create CTR curves is to use the above method to get a feel for when your CTR distribution is getting close to a normal distribution. A Normally Distributed set of CTR data has fewer outliers and is less likely to have a high number of misreported pieces of data from Google.
3 b): Finding the best impression level to calculate CTR for your site
You can also create impression tiers to see where there’s less variability in the data you're analyzing instead of Normal Curves. The less variability in your estimates, the closer you’re getting to an accurate CTR curve.
Tiered CTR tables
Creating tiered CTR needs to be done for every site because the sampling from GSC for every site is different depending on the keywords you rank for. I’ve seen CTR curves vary as much as 30 percent without the proper controls added to CTR estimates. This step is important because using all of the data points in your CTR calculation can wildly offset your results. And using too few data points gives you too small of a sample size to get an accurate idea of what your CTR actually is. The key is to find that happy medium between the two.
In the tiered table above, there’s huge variability from All Impressions to >250 impressions. After that point though, the change per tier is fairly small. Greater than 750 impressions are the right level for this site because the variability among curves is fairly small as we increase impression levels in the other tiers and >750 impressions still gives us plenty of keywords in each ranking level of our data set.
When creating tiered CTR curves, it’s important to also count how much data is used to build each data point throughout the tiers. For smaller sites, you may find that you don’t have enough data to reliably calculate CTR curves, but that won’t be apparent from just looking at your tiered curves. So knowing the size of your data at each stage is important when deciding what impression level is the most accurate for your site.
Step 4: Decide which position methodology to analyze your data
Once you’ve figured out the correct impression-level you want to filter your data by you can start actually calculating CTR curves using impression, click, and position data. The problem with position data is that it’s often inaccurate, so if you have great keyword tracking it’s far better to use the data from your own tracking numbers than Google’s. Most people can’t track that many keyword positions so it’s necessary to use Google’s position data. That’s certainly possible, but it’s important to be careful with how we use their data.
How to use GSC position
One question that may come up when calculating CTR curves using GSC average positions is whether to use rounded positions or exact positions (i.e. only positions from GSC that rank exactly 1. So, ranks 1.0 or 2.0 are exact positions instead of 1.3 or 2.1 for example).
Exact position vs. rounded position
The reasoning behind using exact position is we want data that’s most likely to have been ranking in position 1 for the time period we’re measuring. Using exact position will give us the best idea of what CTR is at position 1. Exact rank keywords are more likely to have been ranking in that position for the duration of the time period you pulled keywords from. The problem is that Average Rank is an average so there’s no way to know if a keyword has ranked solidly in one place for a full time period or the average just happens to show an exact rank.
Fortunately, if we compare exact position CTR vs rounded position CTR, they’re directionally similar in terms of actual CTR estimations with enough data. The problem is that exact position can be volatile when you don’t have enough data. By using rounded positions we get much more data, so it makes sense to use rounded position when not enough data is available for exact position.
The one caveat is for position 1 CTR estimates. For every other position average rankings can pull up on a keywords average ranking position and at the same time they can pull down the average. Meaning that if a keyword has an average ranking of 3. It could have ranked #1 and #5 at some point and the average was 3. However, for #1 ranks, the average can only be brought down which means that the CTR for a keyword is always going to be reported lower than reality if you use rounded position.
A rank position hybrid: Adjusted exact position
So if you have enough data, only use exact position for position 1. For smaller sites, you can use adjusted exact position. Since Google gives averages up to two decimal points, one way to get more “exact position” #1s is to include all keywords which rank below position 1.1. I find this gets a couple hundred extra keywords which makes my data more reliable.
And this also shouldn’t pull down our average much at all, since GSC is somewhat inaccurate with how it reports Average Ranking. At Wayfair, we use STAT as our keyword rank tracking tool and after comparing the difference between GSC average rankings with average rankings from STAT the rankings near #1 position are close, but not 100 percent accurate. Once you start going farther down in rankings the difference between STAT and GSC become larger, so watch out how far down in the rankings you go to include more keywords in your data set.
I’ve done this analysis for all the rankings tracked on Wayfair and I found the lower the position, the less closely rankings matched between the two tools. So Google isn’t giving great rankings data, but it’s close enough near the #1 position, that I’m comfortable using adjusted exact position to increase my data set without worrying about sacrificing data quality within reason.
Conclusion
GSC is an imperfect tool, but it gives SEOs the best information we have to understand an individual site's click performance in the SERPs. Since we know that GSC is going to throw us a few curveballs with the data it provides its important to control as many pieces of that data as possible. The main ways to do so is to choose your ideal data extraction source, get rid of low impression keywords, and use the right rank rounding methods. If you do all of these things you’re much more likely to get more accurate, consistent CTR curves on your own site.
Sign up for The Moz Top 10, a semimonthly mailer updating you on the top ten hottest pieces of SEO news, tips, and rad links uncovered by the Moz team. Think of it as your exclusive digest of stuff you don't have time to hunt down but want to read!
0 notes
Text
The Data You’re Using to Calculate CTR is Wrong and Here’s Why
Posted by Luca-Bares
Click Through Rate (CTR) is an important metric that’s useful for making a lot of calculations about your site’s SEO performance, from estimating revenue opportunity, prioritize keyword optimization, to the impact of SERP changes within the market. Most SEOs know the value of creating custom CTR curves for their sites to make those projections more accurate. The only problem with custom CTR curves from Google Search Console (GSC) data is that GSC is known to be a flawed tool that can give out inaccurate data. This convolutes the data we get from GSC and can make it difficult to accurately interpret the CTR curves we create from this tool. Fortunately, there are ways to help control for these inaccuracies so you get a much clearer picture of what your data says.
By carefully cleaning your data and thoughtfully implementing an analysis methodology, you can calculate CTR for your site much more accurately using 4 basic steps:
Extract your sites keyword data from GSC — the more data you can get, the better.
Remove biased keywords — Branded search terms can throw off your CTR curves so they should be removed.
Find the optimal impression level for your data set — Google samples data at low impression levels so it’s important to remove keywords that Google may be inaccurately reporting at these lower levels.
Choose your rank position methodology — No data set is perfect, so you may want to change your rank classification methodology depending on the size of your keyword set.
Let’s take a quick step back
Before getting into the nitty gritty of calculating CTR curves, it’s useful to briefly cover the simplest way to calculate CTR since we’ll still be using this principle.
To calculate CTR, download the keywords your site ranks for with click, impression, and position data. Then take the sum of clicks divided by the sum of impressions at each rank level from GSC data you’ll come out with a custom CTR curve. For more detail on actually crunching the numbers for CTR curves, you can check out this article by SEER if you’re not familiar with the process.
Where this calculation gets tricky is when you start to try to control for the bias that inherently comes with CTR data. However, even though we know it gives bad data we don’t really have many other options, so our only option is to try to eliminate as much bias as possible in our data set and be aware of some of the problems that come from using that data.
Without controlling and manipulating the data that comes from GSC, you can get results that seem illogical. For instance, you may find your curves show position 2 and 3 CTR’s having wildly larger averages than position 1. If you don’t know that data that you’re using from Search Console is flawed you might accept that data as truth and a) try to come up with hypotheses as to why the CTR curves look that way based on incorrect data, and b) create inaccurate estimates and projections based on those CTR curves.
Step 1: Pull your data
The first part of any analysis is actually pulling the data. This data ultimately comes from GSC, but there are many platforms that you can pull this data from that are better than GSC's web extraction.
Google Search Console — The easiest platform to get the data from is from GSC itself. You can go into GSC and pull all your keyword data for the last three months. Google will automatically download a csv. file for you. The downside to this method is that GSC only exports 1,000 keywords at a time making your data size much too small for analysis. You can try to get around this by using the keyword filter for the head terms that you rank for and downloading multiple 1k files to get more data, but this process is an arduous one. Besides the other methods listed below are better and easier.
Google Data Studio — For any non-programmer looking for an easy way to get much more data from Search Console for free, this is definitely your best option. Google Data Studio connects directly to your GSC account data, but there are no limitations on the data size you can pull. For the same three month period trying to pull data from GSC where I would get 1k keywords (the max in GSC), Data Studio would give me back 200k keywords!
Google Search Console API — This takes some programming know-how, but one of the best ways to get the data you’re looking for is to connect directly to the source using their API. You’ll have much more control over the data you’re pulling and get a fairly large data set. The main setback here is you need to have the programming knowledge or resources to do so.
Keylime SEO Toolbox — If you don’t know how to program but still want access to Google’s impression and click data, then this is a great option to consider. Keylime stores historical Search Console data directly from the Search Console API so it’s as good (if not better) of an option than directly connecting to the API. It does cost $49/mo, but that’s pretty affordable considering the value of the data you’re getting.
The reason it’s important what platform you get your data from is that each one listed gives out different amounts of data. I’ve listed them here in the order of which tool gives the most data from least to most. Using GSC’s UI directly gives by far the least data, while Keylime can connect to GSC and Google Analytics to combine data to actually give you more information than the Search Console API would give you. This is good because whenever you can get more data, the more likely that the CTR averages you’re going to make for your site are going to be accurate.
Step 2: Remove keyword bias
Once you’ve pulled the data, you have to clean it. Because this data ultimately comes from Search Console we have to make sure we clean the data as best we can.
Remove branded search & knowledge graph keywords
When you create general CTR curves for non-branded search it’s important to remove all branded keywords from your data. These keywords should have high CTR’s which will throw off the averages of your non-branded searches which is why they should be removed. In addition, if you’re aware of any SERP features like knowledge graph you rank for consistently, you should try to remove those as well since we’re only calculating CTR for positions 1–10 and SERP feature keywords could throw off your averages.
Step 3: Find the optimal impression level in GSC for your data
The largest bias from Search Console data appears to come from data with low search impressions which is the data we need to try and remove. It’s not surprising that Google doesn’t accurately report low impression data since we know that Google doesn’t even include data with very low searches in GSC. For some reason Google decides to drastically over report CTR for these low impression terms. As an example, here’s an impression distribution graph I made with data from GSC for keywords that have only 1 impression and the CTR for every position.
If that doesn’t make a lot of sense to you, I’m right there with you. This graph says a majority of the keywords with only one impression has 100 percent CTR. It’s extremely unlikely, no matter how good your site’s CTR is, that one impression keywords are going to get a majority of 100 percent CTR. This is especially true for keywords that rank below #1. This gives us pretty solid evidence low impression data is not to be trusted, and we should limit the number of keywords in our data with low impressions.
Step 3 a): Use normal curves to help calculate CTR
For more evidence of Google giving us biased data we can look at the distribution of CTR for all the keywords in our data set. Since we’re calculating CTR averages, the data should adhere to a Normal Bell Curve. In most cases CTR curves from GSC are highly skewed to the left with long tails which again indicates that Google reports very high CTR at low impression volumes.
If we change the minimum number of impressions for the keyword sets that we’re analyzing we end up getting closer and closer to the center of the graph. Here’s an example, below is the distribution of a site CTR in CTR increments of .001.
The graph above shows the impressions at a very low impression level, around 25 impressions. The distribution of data is mostly on the right side of this graph with a small, high concentration on the left implies that this site has a very high click-through rate. However, by increasing the impression filter to 5,000 impressions per keyword the distribution of keywords gets much much closer to the center.
This graph most likely would never be centered around 50% CTR because that’d be a very high average CTR to have, so the graph should be skewed to the left. The main issue is we don’t know how much because Google gives us sampled data. The best we can do is guess. But this raises the question, what’s the right impression level to filter my keywords out to get rid of faulty data?
One way to find the right impression level to create CTR curves is to use the above method to get a feel for when your CTR distribution is getting close to a normal distribution. A Normally Distributed set of CTR data has fewer outliers and is less likely to have a high number of misreported pieces of data from Google.
3 b): Finding the best impression level to calculate CTR for your site
You can also create impression tiers to see where there’s less variability in the data you're analyzing instead of Normal Curves. The less variability in your estimates, the closer you’re getting to an accurate CTR curve.
Tiered CTR tables
Creating tiered CTR needs to be done for every site because the sampling from GSC for every site is different depending on the keywords you rank for. I’ve seen CTR curves vary as much as 30 percent without the proper controls added to CTR estimates. This step is important because using all of the data points in your CTR calculation can wildly offset your results. And using too few data points gives you too small of a sample size to get an accurate idea of what your CTR actually is. The key is to find that happy medium between the two.
In the tiered table above, there’s huge variability from All Impressions to >250 impressions. After that point though, the change per tier is fairly small. Greater than 750 impressions are the right level for this site because the variability among curves is fairly small as we increase impression levels in the other tiers and >750 impressions still gives us plenty of keywords in each ranking level of our data set.
When creating tiered CTR curves, it’s important to also count how much data is used to build each data point throughout the tiers. For smaller sites, you may find that you don’t have enough data to reliably calculate CTR curves, but that won’t be apparent from just looking at your tiered curves. So knowing the size of your data at each stage is important when deciding what impression level is the most accurate for your site.
Step 4: Decide which position methodology to analyze your data
Once you’ve figured out the correct impression-level you want to filter your data by you can start actually calculating CTR curves using impression, click, and position data. The problem with position data is that it’s often inaccurate, so if you have great keyword tracking it’s far better to use the data from your own tracking numbers than Google’s. Most people can’t track that many keyword positions so it’s necessary to use Google’s position data. That’s certainly possible, but it’s important to be careful with how we use their data.
How to use GSC position
One question that may come up when calculating CTR curves using GSC average positions is whether to use rounded positions or exact positions (i.e. only positions from GSC that rank exactly 1. So, ranks 1.0 or 2.0 are exact positions instead of 1.3 or 2.1 for example).
Exact position vs. rounded position
The reasoning behind using exact position is we want data that’s most likely to have been ranking in position 1 for the time period we’re measuring. Using exact position will give us the best idea of what CTR is at position 1. Exact rank keywords are more likely to have been ranking in that position for the duration of the time period you pulled keywords from. The problem is that Average Rank is an average so there’s no way to know if a keyword has ranked solidly in one place for a full time period or the average just happens to show an exact rank.
Fortunately, if we compare exact position CTR vs rounded position CTR, they’re directionally similar in terms of actual CTR estimations with enough data. The problem is that exact position can be volatile when you don’t have enough data. By using rounded positions we get much more data, so it makes sense to use rounded position when not enough data is available for exact position.
The one caveat is for position 1 CTR estimates. For every other position average rankings can pull up on a keywords average ranking position and at the same time they can pull down the average. Meaning that if a keyword has an average ranking of 3. It could have ranked #1 and #5 at some point and the average was 3. However, for #1 ranks, the average can only be brought down which means that the CTR for a keyword is always going to be reported lower than reality if you use rounded position.
A rank position hybrid: Adjusted exact position
So if you have enough data, only use exact position for position 1. For smaller sites, you can use adjusted exact position. Since Google gives averages up to two decimal points, one way to get more “exact position” #1s is to include all keywords which rank below position 1.1. I find this gets a couple hundred extra keywords which makes my data more reliable.
And this also shouldn’t pull down our average much at all, since GSC is somewhat inaccurate with how it reports Average Ranking. At Wayfair, we use STAT as our keyword rank tracking tool and after comparing the difference between GSC average rankings with average rankings from STAT the rankings near #1 position are close, but not 100 percent accurate. Once you start going farther down in rankings the difference between STAT and GSC become larger, so watch out how far down in the rankings you go to include more keywords in your data set.
I’ve done this analysis for all the rankings tracked on Wayfair and I found the lower the position, the less closely rankings matched between the two tools. So Google isn’t giving great rankings data, but it’s close enough near the #1 position, that I’m comfortable using adjusted exact position to increase my data set without worrying about sacrificing data quality within reason.
Conclusion
GSC is an imperfect tool, but it gives SEOs the best information we have to understand an individual site's click performance in the SERPs. Since we know that GSC is going to throw us a few curveballs with the data it provides its important to control as many pieces of that data as possible. The main ways to do so is to choose your ideal data extraction source, get rid of low impression keywords, and use the right rank rounding methods. If you do all of these things you’re much more likely to get more accurate, consistent CTR curves on your own site.
Sign up for The Moz Top 10, a semimonthly mailer updating you on the top ten hottest pieces of SEO news, tips, and rad links uncovered by the Moz team. Think of it as your exclusive digest of stuff you don't have time to hunt down but want to read!
0 notes
Text
The Data You’re Using to Calculate CTR is Wrong and Here’s Why
Posted by Luca-Bares
Click Through Rate (CTR) is an important metric that’s useful for making a lot of calculations about your site’s SEO performance, from estimating revenue opportunity, prioritize keyword optimization, to the impact of SERP changes within the market. Most SEOs know the value of creating custom CTR curves for their sites to make those projections more accurate. The only problem with custom CTR curves from Google Search Console (GSC) data is that GSC is known to be a flawed tool that can give out inaccurate data. This convolutes the data we get from GSC and can make it difficult to accurately interpret the CTR curves we create from this tool. Fortunately, there are ways to help control for these inaccuracies so you get a much clearer picture of what your data says.
By carefully cleaning your data and thoughtfully implementing an analysis methodology, you can calculate CTR for your site much more accurately using 4 basic steps:
Extract your sites keyword data from GSC — the more data you can get, the better.
Remove biased keywords — Branded search terms can throw off your CTR curves so they should be removed.
Find the optimal impression level for your data set — Google samples data at low impression levels so it’s important to remove keywords that Google may be inaccurately reporting at these lower levels.
Choose your rank position methodology — No data set is perfect, so you may want to change your rank classification methodology depending on the size of your keyword set.
Let’s take a quick step back
Before getting into the nitty gritty of calculating CTR curves, it’s useful to briefly cover the simplest way to calculate CTR since we’ll still be using this principle.
To calculate CTR, download the keywords your site ranks for with click, impression, and position data. Then take the sum of clicks divided by the sum of impressions at each rank level from GSC data you’ll come out with a custom CTR curve. For more detail on actually crunching the numbers for CTR curves, you can check out this article by SEER if you’re not familiar with the process.
Where this calculation gets tricky is when you start to try to control for the bias that inherently comes with CTR data. However, even though we know it gives bad data we don’t really have many other options, so our only option is to try to eliminate as much bias as possible in our data set and be aware of some of the problems that come from using that data.
Without controlling and manipulating the data that comes from GSC, you can get results that seem illogical. For instance, you may find your curves show position 2 and 3 CTR’s having wildly larger averages than position 1. If you don’t know that data that you’re using from Search Console is flawed you might accept that data as truth and a) try to come up with hypotheses as to why the CTR curves look that way based on incorrect data, and b) create inaccurate estimates and projections based on those CTR curves.
Step 1: Pull your data
The first part of any analysis is actually pulling the data. This data ultimately comes from GSC, but there are many platforms that you can pull this data from that are better than GSC's web extraction.
Google Search Console — The easiest platform to get the data from is from GSC itself. You can go into GSC and pull all your keyword data for the last three months. Google will automatically download a csv. file for you. The downside to this method is that GSC only exports 1,000 keywords at a time making your data size much too small for analysis. You can try to get around this by using the keyword filter for the head terms that you rank for and downloading multiple 1k files to get more data, but this process is an arduous one. Besides the other methods listed below are better and easier.
Google Data Studio — For any non-programmer looking for an easy way to get much more data from Search Console for free, this is definitely your best option. Google Data Studio connects directly to your GSC account data, but there are no limitations on the data size you can pull. For the same three month period trying to pull data from GSC where I would get 1k keywords (the max in GSC), Data Studio would give me back 200k keywords!
Google Search Console API — This takes some programming know-how, but one of the best ways to get the data you’re looking for is to connect directly to the source using their API. You’ll have much more control over the data you’re pulling and get a fairly large data set. The main setback here is you need to have the programming knowledge or resources to do so.
Keylime SEO Toolbox — If you don’t know how to program but still want access to Google’s impression and click data, then this is a great option to consider. Keylime stores historical Search Console data directly from the Search Console API so it’s as good (if not better) of an option than directly connecting to the API. It does cost $49/mo, but that’s pretty affordable considering the value of the data you’re getting.
The reason it’s important what platform you get your data from is that each one listed gives out different amounts of data. I’ve listed them here in the order of which tool gives the most data from least to most. Using GSC’s UI directly gives by far the least data, while Keylime can connect to GSC and Google Analytics to combine data to actually give you more information than the Search Console API would give you. This is good because whenever you can get more data, the more likely that the CTR averages you’re going to make for your site are going to be accurate.
Step 2: Remove keyword bias
Once you’ve pulled the data, you have to clean it. Because this data ultimately comes from Search Console we have to make sure we clean the data as best we can.
Remove branded search & knowledge graph keywords
When you create general CTR curves for non-branded search it’s important to remove all branded keywords from your data. These keywords should have high CTR’s which will throw off the averages of your non-branded searches which is why they should be removed. In addition, if you’re aware of any SERP features like knowledge graph you rank for consistently, you should try to remove those as well since we’re only calculating CTR for positions 1–10 and SERP feature keywords could throw off your averages.
Step 3: Find the optimal impression level in GSC for your data
The largest bias from Search Console data appears to come from data with low search impressions which is the data we need to try and remove. It’s not surprising that Google doesn’t accurately report low impression data since we know that Google doesn’t even include data with very low searches in GSC. For some reason Google decides to drastically over report CTR for these low impression terms. As an example, here’s an impression distribution graph I made with data from GSC for keywords that have only 1 impression and the CTR for every position.
If that doesn’t make a lot of sense to you, I’m right there with you. This graph says a majority of the keywords with only one impression has 100 percent CTR. It’s extremely unlikely, no matter how good your site’s CTR is, that one impression keywords are going to get a majority of 100 percent CTR. This is especially true for keywords that rank below #1. This gives us pretty solid evidence low impression data is not to be trusted, and we should limit the number of keywords in our data with low impressions.
Step 3 a): Use normal curves to help calculate CTR
For more evidence of Google giving us biased data we can look at the distribution of CTR for all the keywords in our data set. Since we’re calculating CTR averages, the data should adhere to a Normal Bell Curve. In most cases CTR curves from GSC are highly skewed to the left with long tails which again indicates that Google reports very high CTR at low impression volumes.
If we change the minimum number of impressions for the keyword sets that we’re analyzing we end up getting closer and closer to the center of the graph. Here’s an example, below is the distribution of a site CTR in CTR increments of .001.
The graph above shows the impressions at a very low impression level, around 25 impressions. The distribution of data is mostly on the right side of this graph with a small, high concentration on the left implies that this site has a very high click-through rate. However, by increasing the impression filter to 5,000 impressions per keyword the distribution of keywords gets much much closer to the center.
This graph most likely would never be centered around 50% CTR because that’d be a very high average CTR to have, so the graph should be skewed to the left. The main issue is we don’t know how much because Google gives us sampled data. The best we can do is guess. But this raises the question, what’s the right impression level to filter my keywords out to get rid of faulty data?
One way to find the right impression level to create CTR curves is to use the above method to get a feel for when your CTR distribution is getting close to a normal distribution. A Normally Distributed set of CTR data has fewer outliers and is less likely to have a high number of misreported pieces of data from Google.
3 b): Finding the best impression level to calculate CTR for your site
You can also create impression tiers to see where there’s less variability in the data you're analyzing instead of Normal Curves. The less variability in your estimates, the closer you’re getting to an accurate CTR curve.
Tiered CTR tables
Creating tiered CTR needs to be done for every site because the sampling from GSC for every site is different depending on the keywords you rank for. I’ve seen CTR curves vary as much as 30 percent without the proper controls added to CTR estimates. This step is important because using all of the data points in your CTR calculation can wildly offset your results. And using too few data points gives you too small of a sample size to get an accurate idea of what your CTR actually is. The key is to find that happy medium between the two.
In the tiered table above, there’s huge variability from All Impressions to >250 impressions. After that point though, the change per tier is fairly small. Greater than 750 impressions are the right level for this site because the variability among curves is fairly small as we increase impression levels in the other tiers and >750 impressions still gives us plenty of keywords in each ranking level of our data set.
When creating tiered CTR curves, it’s important to also count how much data is used to build each data point throughout the tiers. For smaller sites, you may find that you don’t have enough data to reliably calculate CTR curves, but that won’t be apparent from just looking at your tiered curves. So knowing the size of your data at each stage is important when deciding what impression level is the most accurate for your site.
Step 4: Decide which position methodology to analyze your data
Once you’ve figured out the correct impression-level you want to filter your data by you can start actually calculating CTR curves using impression, click, and position data. The problem with position data is that it’s often inaccurate, so if you have great keyword tracking it’s far better to use the data from your own tracking numbers than Google’s. Most people can’t track that many keyword positions so it’s necessary to use Google’s position data. That’s certainly possible, but it’s important to be careful with how we use their data.
How to use GSC position
One question that may come up when calculating CTR curves using GSC average positions is whether to use rounded positions or exact positions (i.e. only positions from GSC that rank exactly 1. So, ranks 1.0 or 2.0 are exact positions instead of 1.3 or 2.1 for example).
Exact position vs. rounded position
The reasoning behind using exact position is we want data that’s most likely to have been ranking in position 1 for the time period we’re measuring. Using exact position will give us the best idea of what CTR is at position 1. Exact rank keywords are more likely to have been ranking in that position for the duration of the time period you pulled keywords from. The problem is that Average Rank is an average so there’s no way to know if a keyword has ranked solidly in one place for a full time period or the average just happens to show an exact rank.
Fortunately, if we compare exact position CTR vs rounded position CTR, they’re directionally similar in terms of actual CTR estimations with enough data. The problem is that exact position can be volatile when you don’t have enough data. By using rounded positions we get much more data, so it makes sense to use rounded position when not enough data is available for exact position.
The one caveat is for position 1 CTR estimates. For every other position average rankings can pull up on a keywords average ranking position and at the same time they can pull down the average. Meaning that if a keyword has an average ranking of 3. It could have ranked #1 and #5 at some point and the average was 3. However, for #1 ranks, the average can only be brought down which means that the CTR for a keyword is always going to be reported lower than reality if you use rounded position.
A rank position hybrid: Adjusted exact position
So if you have enough data, only use exact position for position 1. For smaller sites, you can use adjusted exact position. Since Google gives averages up to two decimal points, one way to get more “exact position” #1s is to include all keywords which rank below position 1.1. I find this gets a couple hundred extra keywords which makes my data more reliable.
And this also shouldn’t pull down our average much at all, since GSC is somewhat inaccurate with how it reports Average Ranking. At Wayfair, we use STAT as our keyword rank tracking tool and after comparing the difference between GSC average rankings with average rankings from STAT the rankings near #1 position are close, but not 100 percent accurate. Once you start going farther down in rankings the difference between STAT and GSC become larger, so watch out how far down in the rankings you go to include more keywords in your data set.
I’ve done this analysis for all the rankings tracked on Wayfair and I found the lower the position, the less closely rankings matched between the two tools. So Google isn’t giving great rankings data, but it’s close enough near the #1 position, that I’m comfortable using adjusted exact position to increase my data set without worrying about sacrificing data quality within reason.
Conclusion
GSC is an imperfect tool, but it gives SEOs the best information we have to understand an individual site's click performance in the SERPs. Since we know that GSC is going to throw us a few curveballs with the data it provides its important to control as many pieces of that data as possible. The main ways to do so is to choose your ideal data extraction source, get rid of low impression keywords, and use the right rank rounding methods. If you do all of these things you’re much more likely to get more accurate, consistent CTR curves on your own site.
Sign up for The Moz Top 10, a semimonthly mailer updating you on the top ten hottest pieces of SEO news, tips, and rad links uncovered by the Moz team. Think of it as your exclusive digest of stuff you don't have time to hunt down but want to read!
0 notes
Text
The Data You’re Using to Calculate CTR is Wrong and Here’s Why
Posted by Luca-Bares
Click Through Rate (CTR) is an important metric that’s useful for making a lot of calculations about your site’s SEO performance, from estimating revenue opportunity, prioritize keyword optimization, to the impact of SERP changes within the market. Most SEOs know the value of creating custom CTR curves for their sites to make those projections more accurate. The only problem with custom CTR curves from Google Search Console (GSC) data is that GSC is known to be a flawed tool that can give out inaccurate data. This convolutes the data we get from GSC and can make it difficult to accurately interpret the CTR curves we create from this tool. Fortunately, there are ways to help control for these inaccuracies so you get a much clearer picture of what your data says.
By carefully cleaning your data and thoughtfully implementing an analysis methodology, you can calculate CTR for your site much more accurately using 4 basic steps:
Extract your sites keyword data from GSC — the more data you can get, the better.
Remove biased keywords — Branded search terms can throw off your CTR curves so they should be removed.
Find the optimal impression level for your data set — Google samples data at low impression levels so it’s important to remove keywords that Google may be inaccurately reporting at these lower levels.
Choose your rank position methodology — No data set is perfect, so you may want to change your rank classification methodology depending on the size of your keyword set.
Let’s take a quick step back
Before getting into the nitty gritty of calculating CTR curves, it’s useful to briefly cover the simplest way to calculate CTR since we’ll still be using this principle.
To calculate CTR, download the keywords your site ranks for with click, impression, and position data. Then take the sum of clicks divided by the sum of impressions at each rank level from GSC data you’ll come out with a custom CTR curve. For more detail on actually crunching the numbers for CTR curves, you can check out this article by SEER if you’re not familiar with the process.
Where this calculation gets tricky is when you start to try to control for the bias that inherently comes with CTR data. However, even though we know it gives bad data we don’t really have many other options, so our only option is to try to eliminate as much bias as possible in our data set and be aware of some of the problems that come from using that data.
Without controlling and manipulating the data that comes from GSC, you can get results that seem illogical. For instance, you may find your curves show position 2 and 3 CTR’s having wildly larger averages than position 1. If you don’t know that data that you’re using from Search Console is flawed you might accept that data as truth and a) try to come up with hypotheses as to why the CTR curves look that way based on incorrect data, and b) create inaccurate estimates and projections based on those CTR curves.
Step 1: Pull your data
The first part of any analysis is actually pulling the data. This data ultimately comes from GSC, but there are many platforms that you can pull this data from that are better than GSC's web extraction.
Google Search Console — The easiest platform to get the data from is from GSC itself. You can go into GSC and pull all your keyword data for the last three months. Google will automatically download a csv. file for you. The downside to this method is that GSC only exports 1,000 keywords at a time making your data size much too small for analysis. You can try to get around this by using the keyword filter for the head terms that you rank for and downloading multiple 1k files to get more data, but this process is an arduous one. Besides the other methods listed below are better and easier.
Google Data Studio — For any non-programmer looking for an easy way to get much more data from Search Console for free, this is definitely your best option. Google Data Studio connects directly to your GSC account data, but there are no limitations on the data size you can pull. For the same three month period trying to pull data from GSC where I would get 1k keywords (the max in GSC), Data Studio would give me back 200k keywords!
Google Search Console API — This takes some programming know-how, but one of the best ways to get the data you’re looking for is to connect directly to the source using their API. You’ll have much more control over the data you’re pulling and get a fairly large data set. The main setback here is you need to have the programming knowledge or resources to do so.
Keylime SEO Toolbox — If you don’t know how to program but still want access to Google’s impression and click data, then this is a great option to consider. Keylime stores historical Search Console data directly from the Search Console API so it’s as good (if not better) of an option than directly connecting to the API. It does cost $49/mo, but that’s pretty affordable considering the value of the data you’re getting.
The reason it’s important what platform you get your data from is that each one listed gives out different amounts of data. I’ve listed them here in the order of which tool gives the most data from least to most. Using GSC’s UI directly gives by far the least data, while Keylime can connect to GSC and Google Analytics to combine data to actually give you more information than the Search Console API would give you. This is good because whenever you can get more data, the more likely that the CTR averages you’re going to make for your site are going to be accurate.
Step 2: Remove keyword bias
Once you’ve pulled the data, you have to clean it. Because this data ultimately comes from Search Console we have to make sure we clean the data as best we can.
Remove branded search & knowledge graph keywords
When you create general CTR curves for non-branded search it’s important to remove all branded keywords from your data. These keywords should have high CTR’s which will throw off the averages of your non-branded searches which is why they should be removed. In addition, if you’re aware of any SERP features like knowledge graph you rank for consistently, you should try to remove those as well since we’re only calculating CTR for positions 1–10 and SERP feature keywords could throw off your averages.
Step 3: Find the optimal impression level in GSC for your data
The largest bias from Search Console data appears to come from data with low search impressions which is the data we need to try and remove. It’s not surprising that Google doesn’t accurately report low impression data since we know that Google doesn’t even include data with very low searches in GSC. For some reason Google decides to drastically over report CTR for these low impression terms. As an example, here’s an impression distribution graph I made with data from GSC for keywords that have only 1 impression and the CTR for every position.
If that doesn’t make a lot of sense to you, I’m right there with you. This graph says a majority of the keywords with only one impression has 100 percent CTR. It’s extremely unlikely, no matter how good your site’s CTR is, that one impression keywords are going to get a majority of 100 percent CTR. This is especially true for keywords that rank below #1. This gives us pretty solid evidence low impression data is not to be trusted, and we should limit the number of keywords in our data with low impressions.
Step 3 a): Use normal curves to help calculate CTR
For more evidence of Google giving us biased data we can look at the distribution of CTR for all the keywords in our data set. Since we’re calculating CTR averages, the data should adhere to a Normal Bell Curve. In most cases CTR curves from GSC are highly skewed to the left with long tails which again indicates that Google reports very high CTR at low impression volumes.
If we change the minimum number of impressions for the keyword sets that we’re analyzing we end up getting closer and closer to the center of the graph. Here’s an example, below is the distribution of a site CTR in CTR increments of .001.
The graph above shows the impressions at a very low impression level, around 25 impressions. The distribution of data is mostly on the right side of this graph with a small, high concentration on the left implies that this site has a very high click-through rate. However, by increasing the impression filter to 5,000 impressions per keyword the distribution of keywords gets much much closer to the center.
This graph most likely would never be centered around 50% CTR because that’d be a very high average CTR to have, so the graph should be skewed to the left. The main issue is we don’t know how much because Google gives us sampled data. The best we can do is guess. But this raises the question, what’s the right impression level to filter my keywords out to get rid of faulty data?
One way to find the right impression level to create CTR curves is to use the above method to get a feel for when your CTR distribution is getting close to a normal distribution. A Normally Distributed set of CTR data has fewer outliers and is less likely to have a high number of misreported pieces of data from Google.
3 b): Finding the best impression level to calculate CTR for your site
You can also create impression tiers to see where there’s less variability in the data you're analyzing instead of Normal Curves. The less variability in your estimates, the closer you’re getting to an accurate CTR curve.
Tiered CTR tables
Creating tiered CTR needs to be done for every site because the sampling from GSC for every site is different depending on the keywords you rank for. I’ve seen CTR curves vary as much as 30 percent without the proper controls added to CTR estimates. This step is important because using all of the data points in your CTR calculation can wildly offset your results. And using too few data points gives you too small of a sample size to get an accurate idea of what your CTR actually is. The key is to find that happy medium between the two.
In the tiered table above, there’s huge variability from All Impressions to >250 impressions. After that point though, the change per tier is fairly small. Greater than 750 impressions are the right level for this site because the variability among curves is fairly small as we increase impression levels in the other tiers and >750 impressions still gives us plenty of keywords in each ranking level of our data set.
When creating tiered CTR curves, it’s important to also count how much data is used to build each data point throughout the tiers. For smaller sites, you may find that you don’t have enough data to reliably calculate CTR curves, but that won’t be apparent from just looking at your tiered curves. So knowing the size of your data at each stage is important when deciding what impression level is the most accurate for your site.
Step 4: Decide which position methodology to analyze your data
Once you’ve figured out the correct impression-level you want to filter your data by you can start actually calculating CTR curves using impression, click, and position data. The problem with position data is that it’s often inaccurate, so if you have great keyword tracking it’s far better to use the data from your own tracking numbers than Google’s. Most people can’t track that many keyword positions so it’s necessary to use Google’s position data. That’s certainly possible, but it’s important to be careful with how we use their data.
How to use GSC position
One question that may come up when calculating CTR curves using GSC average positions is whether to use rounded positions or exact positions (i.e. only positions from GSC that rank exactly 1. So, ranks 1.0 or 2.0 are exact positions instead of 1.3 or 2.1 for example).
Exact position vs. rounded position
The reasoning behind using exact position is we want data that’s most likely to have been ranking in position 1 for the time period we’re measuring. Using exact position will give us the best idea of what CTR is at position 1. Exact rank keywords are more likely to have been ranking in that position for the duration of the time period you pulled keywords from. The problem is that Average Rank is an average so there’s no way to know if a keyword has ranked solidly in one place for a full time period or the average just happens to show an exact rank.
Fortunately, if we compare exact position CTR vs rounded position CTR, they’re directionally similar in terms of actual CTR estimations with enough data. The problem is that exact position can be volatile when you don’t have enough data. By using rounded positions we get much more data, so it makes sense to use rounded position when not enough data is available for exact position.
The one caveat is for position 1 CTR estimates. For every other position average rankings can pull up on a keywords average ranking position and at the same time they can pull down the average. Meaning that if a keyword has an average ranking of 3. It could have ranked #1 and #5 at some point and the average was 3. However, for #1 ranks, the average can only be brought down which means that the CTR for a keyword is always going to be reported lower than reality if you use rounded position.
A rank position hybrid: Adjusted exact position
So if you have enough data, only use exact position for position 1. For smaller sites, you can use adjusted exact position. Since Google gives averages up to two decimal points, one way to get more “exact position” #1s is to include all keywords which rank below position 1.1. I find this gets a couple hundred extra keywords which makes my data more reliable.
And this also shouldn’t pull down our average much at all, since GSC is somewhat inaccurate with how it reports Average Ranking. At Wayfair, we use STAT as our keyword rank tracking tool and after comparing the difference between GSC average rankings with average rankings from STAT the rankings near #1 position are close, but not 100 percent accurate. Once you start going farther down in rankings the difference between STAT and GSC become larger, so watch out how far down in the rankings you go to include more keywords in your data set.
I’ve done this analysis for all the rankings tracked on Wayfair and I found the lower the position, the less closely rankings matched between the two tools. So Google isn’t giving great rankings data, but it’s close enough near the #1 position, that I’m comfortable using adjusted exact position to increase my data set without worrying about sacrificing data quality within reason.
Conclusion
GSC is an imperfect tool, but it gives SEOs the best information we have to understand an individual site's click performance in the SERPs. Since we know that GSC is going to throw us a few curveballs with the data it provides its important to control as many pieces of that data as possible. The main ways to do so is to choose your ideal data extraction source, get rid of low impression keywords, and use the right rank rounding methods. If you do all of these things you’re much more likely to get more accurate, consistent CTR curves on your own site.
Sign up for The Moz Top 10, a semimonthly mailer updating you on the top ten hottest pieces of SEO news, tips, and rad links uncovered by the Moz team. Think of it as your exclusive digest of stuff you don't have time to hunt down but want to read!
0 notes