#like I know the minific part is not great but I can actually see them working??
Explore tagged Tumblr posts
doyelikehaggis · 5 years ago
Text
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
Rowing the Rarepair Rowboat: Enzo St. John (The Vampire Diaries) x Leonard Snart (Legends of Tomorrow)
Requested by @wonderdoves
An in and out mission. That’s what they said. They agreed it would be simple this time, no screwing anything up, no wrecking the timeline more than the thing they were trying to stop. Sure, returning Dracula to hell seemed like it could be harder than some of the other Encores, and honestly, a bit of a joke. 
But disguising themselves as some doctors to get in and get him out and back to Hell was a simple plan, it was a good plan. They manage to get him without a hitch, and he’s back to being the stuff of fantasy stories. 
It’s when they’re on their way back out that Len messes up. He sees the cages and actually takes just a second to look in this time. All of them are empty. Except for one. A single vampire still being locked up, and by the looks of tortured to near death. 
The mission had nothing to do with him. Or with the doctors, or whatever is going on here. For all they know, it’s some crucial point in history. It’s hard to think that when the vampire meets his eyes and he sees that one of them is nearly completely cut out. 
“Snart!” Sara calls back to him, halfway up the hall from where he’s paused in front of the cell. “Come on! We need to leave. Now. Unless you’re up for another near-labotomy.”
The vampire’s lips twitch ever so slightly, giving the tiniest sign of amusement. 
“She’s right,” he speaks, surprising Len. His voice is cracked and hoarse and sounds like he’s got a throat full of broken glass. He doesn’t seem fazed. “Dr. Whitmore is very interested in unique things. Time Traveler would probably do it for him just about as much as a vampire. Maybe not to the point of labotomy, but...”
“Snart!”
“I’m coming!” he hisses back, but he makes no move to actually follow. 
The vampire raises an eyebrow. “What’s wrong? Never seen a vampire before? Now, I know that’s a lie; you just took care of the original creature of the night back there, didn’t you? He hasn’t shut up since he got here, so I’m assuming you’re the reason he’s quiet now.”
He’s so human. Sarcastic, flippant about the fact that he’s a vampire, that he’s in a cell, bloody and parts of him cut so deeply he would have died by now if he really was human. 
“What’s your name?” Len asks without thinking. If it’s something ridiculous, something like Dracula, he leaves. Easy as that. Prove that he’s some creature, some bloodthirsty monster.
The vampire’s eyes flicker with surprise. Oh no. 
“Lorenzo,” he answers. He then shrugs. “When I had friends, it was Enzo, but... well, as you can see, I am rather lacking in any of those these days.”
Sara’s gone now, and he can hear her shouting at Ray to come and drag him back to the ship now. Len just stares at Lorenzo, processing it in his mind. 
“How’d you get caught?” he asks sharply, praying for some flippant remark about tearing someone’s head off or anything. 
Lorenzo actually smiles a little, looking away from him. “My own stupidity, I suppose. What kind of vampire becomes a soldier in the middle of a war? Whitmore was the battlefield doctor, and he noticed that when I took a bullet in the chest for one of my comrades, I was perfectly fine. Turns out, he’s a real vampire enthusiast.”
A soldier. Who took a bullet for someone else, a human someone else. A vampire who became a soldier in the middle of world war two and tried to save someone instead of kill them. 
He grits his teeth. “Are you lying?”
Lorenzo looks back up at him, the surprise returning. His brow furrows and he huffs out a chuckle, shaking his head as he gestures weakly around him.
“What reason would I have to do that? You’re the time traveller. Go back and see for yourself if you don’t believe me.” His smile fades and his eyes drop back to the bloody concrete ground. “Won’t make any difference either way.”
Damn it. He knows a con man when he sees one, he knows the tells, knows when even the most expert of liars are playing him. And he knows when people are being sincerely honest. And have lost almost all hope. 
Clenching his jaw tighter, he glances away, down the hallway, where he can hear Ray hurrying back for him. The growing sense of aprehensive regret is already looming over him, telling him there’s a chance of whatever descision he’s about to make coming back to bite him at some point. Perhaps literally. In this case, he thinks he’d rather a repeat of the Dominators than the alternative. 
“Snart!” Ray shouts, now rounding the corner and hurrying back to him. “Come on, man. We’re gonna get caught here, and we can’t afford to mess something up, you know that.”
Len nods slowly. He sighs. “Yeah, I do.”
Raising his cold gun, he points it directly at the lock to the cell and shoots a blast of ice. It covers it, freezing over the metal. Ray starts to protest as Len flips his gun and bashes it hard against the frozen lock. Takes another two bashes, but the whole thing falls apart fairly easily. 
“No! No, Snart, do not--” Ray’s caught his elbow to pull him away, but it’s too late anyway. “What are you doing?”
“Honestly? No clue.”
Len pulls the cell door open. Lorenzo doesn’t seem to know how to react. He’s eyeing them like they’re not freeing him, but instead are only here to pick up where this doctor left off. 
“You can’t just free a vampire!” Ray says, lowering his voice as if it’s going to make any difference. Judging by the look on Lorenzo’s face, it really doesn’t. “He needs blood. And I hate to say it, but we’re full of the stuff, and you just got rid of the one thing between him and us.”
Lorenzo raises an eyebrow. “Sweetheart, as much as I am enjoying imagining that idea, I’m not planning on feeding on you. Or killing you. I would need actual strength for that, and I currently have about as much as two starved ten year old children.”
Ray stops, looking over at him. There’s the tinest bit of suspicion, but then, predictably, it dissolves. He presses his lips together and seems to examine the state Lorenzo’s in; still making no move to actually leave despite his exit now clear and two human blood bags standing less than three feet from him. 
“You’re not... you know, a Dracula type of vampire?” he questions. 
“I feed to survive,” Lorenzo replies sharply. “But it doesn’t mean I have to kill. I usually don’t. Tried not to. So, no, I’d rather have no association with that bloody pretentious git.”
Len bites the inside of his cheek to not chuckle a little at that; in fairness, the guy really was pretentious. Thought he was the ruler of vampires. 
Clearly his answer is swaying Ray over. 
“I suppose that your cell is open now...” he says, trailing off pointedly. “Stopping you would be more of an issue for the timeline than just... not being able to stop you would be. I think.”
Len roll his eyes and looks at Lorenzo. “That means go. Now.”
“Wait, not, that’s not what I mean!” Ray quickly says, and holds his hands out as if to stop any potential escape. “I meant...” He draws himself up and looks sternly at Lorenzo. “You’re coming to our ship, and then we can decide if you’re... you know, murderous.”
“Would I not have murdered you already if I were?” Lorenzo points out.
“Not the point. You’re coming with us. Snart: cuffs.”
Len eyes him. “What exactly do you think Meta cuffs are going to do to a vampire?”
Ray falters under both their stares. His mouth opens for a second, but he doesn’t seem to have a response, and he drops it with a sigh. 
“Can we please just go before this become even more of an issue than it already is, and before Sara kills all of us?” he asks. 
Lorenzo groans, but he begins pushing himself up with what little strength he has in him. He makes no sudden moves, no attempt to escape. In all honesty, Len actually believes him when he says he can’t. It seems to be taking everything in him just to stay standing. 
“For the record, I am not leaving one prison to enter another,” he tells them, and even without the obvious strength, his voice is still low and threatening in a way that really does promise danger buried deep. 
“And we don’t want to keep you prisoner,” Len retorts, turning back to Ray with a pointed raise of his eyebrows. “Do we, Raymond?”
Ray shakes his head. “Of course not. But... we have a complicated job, and it’s just easier for everyone, and safer for you as well as us, if you come with us first.”
Lorenzo hesitates for a moment, his good eye flicking between them with skeptisicm and uncertainty. But it’s becoming increasingly clear that he doesn’t have many other options, and there’s shouting somewhere in the building, whether from the doctors or from the team. 
He eventually gives, and pushes away from the wall with a nod. “Fine. But when you say ship, do you mean an actual ship? Like a boat? Because I don’t have the best experience with being on one of those with people who tell me to trust them.”
“Think more alien ship than naval ship,” Len tells him, and motions his head for him to follow, even as he stays practically right next to him as they finally hurry to leave. 
15 notes · View notes
asknarashikari · 3 years ago
Note
So... It just hit me that Emu's hand thingy was actually him holding his hand out for a low five the whole time... How about a minific where we get to discover how that low five developed and a bit more about Emu and Parado's relationship as kids?
Honestly I think that's a bit of a stretch haha. It's probably just one of things Emu thinks is cool because a lot of video game characters posed like that.
Oh well.
Emu knew that a lot of the other kids didn't like him. They all thought he was weird, because he didn't like to play the games they played, and didn't have a lot of cool toys he could share with them.
He had his Wonder Swan, sure, but no one knew the games he was playing on them. They didn't even know who Mighty was! How can he be friends with people who didn't know Mighty?
So, he was mostly left alone, for the most part. Which was fine with him.
Because, even though the others never played with him... Emu was never alone. He had his best friend by his side.
He loved video games as much as Emu did. He was good at them, too. Sometimes they would co-op, and the computer would stand no chance against them. They were an unbeatable team.
Emu, great job! he would say, offering his hand out to Emu. Let's see if we can do it faster this time!
Emu would grin and give the other a low five. Let's go at it with no continues! he would say challengingly.
You're on, Emu!
~0~
Years later, and Emu was no longer alone. He had a great career, a bunch of idiots he basically had to co-parent with a cop, and some really amazing friends.
And he had Parad again. It was long, hard road, but they made it back to where they began. Sort of.
"Hey, Emu, what are you doing? I wanna game already!" came a petulant voice from the living room.
"Coming, coming, geesh." Emu sighed, putting away his pensive thoughts to settle down next to Parad. "So, how do you wanna play this time?"
"How else?" Parad's smile was wicked. "No continues?"
Emu returned the grin and the low five. "You're on."
Life was good.
14 notes · View notes
thesearchforbluejello · 4 years ago
Note
Imagine a "Star Trek: Lower Decks" style sitcom in the Stargate universe. Stargate: SG-47... the crew that follows up on all the really boring planets SG-1 goes to once and never again. They always debrief with Walter instead of the General. They annoyed the Nox once and now they show up to pull pranks on SG-47 in revenge. Minor Goa'ulds catch them and are depressed they're not SG-1 or someone more important so they just release them.
My notifications ate this ask; I don't know when it's from, but I'm just seeing it now. Please accept this totally unedited bullshit fic as my apology and thanks for how hard this ask made me laugh. I'm definitely not supposed to be writing a final right now. And I know you said minor Goa'uld but like I couldn't resist this opportunity. Also, me, using a minific to talk about my obsession with what the hieroglyphs in a Goa'uld ship could be? More likely than you think.
​A Soldier, a Linguist, a Botanist, and a Biologist Walk into a Ha'tak
Major Lissa Cannon emerges from the event horizon into the bright, clear sunlight of P4X-737. She takes a deep breath and immediately sneezes. "Great," she says.
Dr. Jess Abubakar passes her on the right, heading down the stone stairs of the gate platform without hesitation. "Better get used to it," he says with a cheerfulness that she doesn't-- and any reasonable person wouldn't-- share.
"Jess, I swear to God," Dr. Beth Rosenberg says as she follows him down the steps.
"You're just salty you have to help us collect samples," Jess counters, more affable than Cannon would have expected anyone to be before she actually started working with him.
Beside her, Dr. Chris Richardson just gives a wry smile before heading down the stairs after their teammates. Cannon sneezes again.
"It's the pollen!" Jess says as she joins the group. "Initial samples brought back by SG-1 indicate that it's at least twice as potent as anything we have on Earth."
"How is that a good thing," Cannon gripes even though she'd sat through the briefing and already listened to Jess and Bill Lee go on about how important it could prove to be.
"I mean, just think of the possibilities!" Jess says, more than happy to repeat himself. "We could synthesize new antihistamines, or even make existing ones more effective. We could develop new crops that are potentially more resistant to blights or unfavorable growing conditions."
"Yay," Beth says, drier than the climate on this planet has likely ever been.
"You're just mad because there are no indigenous people here to talk to," Cannon points out.
"You could talk to the plants," Jess says.
"Studies have proven that talking to plants encourages growth," Chris adds, soft-spoken as always.
"I'm not talking to the plants," Beth says.
"Why not?" Cannon asks. "With this much pollen in the air, after a few hours they might start talking back."
"Oof, like when SG-7 was on P8Q-984," Jess laughs. "That's not an experience I want to have for myself."
"Those were spores, not pollen," Chris corrects amiably as the team starts into the forested area beyond the field in which the gate sits.
"Sentiment's the same," Jess says.
Cannon hears a rustle in the undergrowth and raises her P-90, her team stopping immediately in defensive positions behind her. After a moment of nothing but birdsong and her own breathing, she relaxes. "Must've been an animal," she says.
"SG-1's initial exploration didn't indicate any indigenous animals on the ground," Beth says.
"Well, that's why we get their leftovers, because everything is just 'initial,'" Cannon points out. She takes the lead as they continue between the trees, rifle still ready in her hands just in case.
"Bloodthirsty squirrels is not on my extraterrestrial exploratory bucket list," Jess says.
"Yeah, mine neither," Cannon agrees. She's barely got the sentence out of her mouth when she hits a force field, face-first. "Motherfucker," she tries to say, a natural reaction, but the syllables come out muddled because her face is suddenly very numb. She drops to a knee and raises her rifle, looking for whatever danger has to be in the forest with them. Around her, her team drops the specimen cases they'd been carrying and raise their own weapons. They're not armed for this; SG-1's previous mission and the UAV surveys hadn't revealed anything dangerous enough to warrant coming through armed with anything more than Cannon's P-90, a couple of flash-bangs, and an assortment of 9mils and zats carried by her and her teammates. Except for Cannon, they're scientists, not soldiers.
"Lower your weapons," a voice commands from the trees.
"You lower your force field," Cannon calls back.
"I think not." Around them, Jaffa begin to materialize from the forest.
"Fuck," Cannon says.
*
The Jaffa strip them of their gear, tossing their vests, holsters, and packs in a careless pile on top of the specimen cases they'd dropped when the force field had initially gone up. They're surprisingly respectful about it, which Cannon almost laments because she's pissed off and ready to fight, even if she knows it's a fight she won't win. She watches their gear disappear from view in a flash of light as they're beamed up to a ship she knows must be waiting above.
Gold walls and a polished floor illuminated by dim lights materialize around them. Another group of Jaffa is waiting. One of their captors reports to a man Cannon assumes is his superior. She tries to pick of bits and pieces she recognizes from the language but doesn't get much.
"Wait," Beth says, "can you say that again? That's word isn't in the lexicon we've been developing."
The Jaffa looks at her sidelong in confusion before his superior barks an order.
"This way," he says. The Jaffa behind them push the team roughly forward.
"Yeah, I heard him," Cannon says, her face still numb and her words muddled, "relax."
They spend the next several hours sitting in a cell. Beth whips a notebook out of one of the pockets of her pants and starts making notes on the glyphs in their cell.
"Does that actually say anything?" Jess asks. "I've never been on a Goa'uld ship before."
A chorus of variants on "yeah, me neither" precede Beth's answer.
"It does, actually, though most of it just repeats. A lot of it is just vague, seemingly formulaic stories of someone's victories and conquering and blah blah blah, but the name has been chiseled out," she says, tapping a glyph that's clearly been destroyed deliberately.
Cannon turns her head against the wall from where she's sulking with her arms wrapped loosely around her knees. "Why?"
"My best guess? Whoever owns this ship now stole it from another Goa'uld and had their name erased. Think damnatio memoriae."
"Huh," Jess says, setting his hand of cards down to Chris's obvious annoyance. "But they kept the part about the victories?"
"Why not? Obviously they had someone spend all the time necessary to do this to the whole ship, so keeping the rest saved a hell of a lot of work. Plus, if they bested the guy this ship used to belong to, that's quite a flex." Beth shrugs and goes back to writing in her notebook. Jess picks up his cards again and Cannon can tell by the barest quirk of Chris's lips that they have the winning hand.
"You know what I'm thinking about right now?" Cannon says. "Mashed potatoes."
"Ugh, the mashed potatoes in the mess taste like plastic," Beth says without looking away from the wall.
"I know; once I start eating them, they're so disgusting I just can't stop myself. It's like the flavor gets grosser with every bite."
"They're not bad with the roast beef," Chris says.
"That's because the roast beef is the only palatable thing the mess serves besides jello," Jess points out.
"It was lemon chicken today," Cannon sighs. She rests her head against the wall again. "My vest had all my granola bars. What could these guys possibly want with us," she complains.
"Do you think they've realized that we're only number 47 because they want any potential enemies to think there are more SG teams than there really are?" Jess asks.
"I don't know," Cannon says stiffly, "but say that again a little louder and I'm sure they will."
Jess holds his hands up in placation, tipping his cards towards Cannon. Chris is about to destroy him with that hand.
"Well," Cannon sighs, "the good news is that I can feel my face again."
Heavy footfalls sound in the hallway and Cannon stands, shifting her weight to ease the stiffness in her legs. Beth hurriedly stuffs her notebook back in her pocket and Chris and Jess shove the cards into the pocket of Jess's pants.
"You will come with us," the Jaffa says.
"Sure," Cannon says as she leads her team after him. "I don't suppose you guys have any snacks on board this thing? You've got to eat, right?" He doesn't answer. "Didn't your mom ever teach you to share?"
The Jaffa ignores her and leads them into an open room with a throne at the fall wall. Ba'al surges to his feet as they enter. "Fool," he spits at the Jaffa beside him, who Cannon recognizes as the leader of the group that had captured them. "This isn't SG-1."
"My lord--"
"Who are you?" Ba'al interrupts.
"Major Lissa Cannon, leader of SG-47," she says, raising her chin.
"Forty-seven," Ba'al says in disbelief.
"We're a science team; we were studying the flora of P4X-737 when you so rudely interrupted."
Ba'al just looks at her. "You're scientists."
Jess raises his hand. "Doctor."
"Doctor," Chris agrees.
"Major," Cannon says with a shrug.
"Doctor," Beth says.
"I've seen this episode of M*A*S*H," Chris says.
"I did also once make a baking soda volcano for a sixth-grade science fair," Cannon adds.
Ba'al sits back on his throne, crossing one leg over the other and resting his elbows on the arms, looking the picture of a carefree megalomaniac.
"Bring them back to the surface," he orders the Jaffa with a lazy wave of his hand, without so much as raising his arm from the throne. "Finish studying your plants," Ba'al says, "I have no use for you."
"That's kind of rude," Cannon says.
*
The Jaffa drop them on the planet's surface and beam back up to the ship. Cannon pulls her vest off the pile, slings it over her shoulders, and pulls a granola bar out of the pocket. She rips it open and stuff it into her mouth, chewing as she zips her vest and secures her holsters around her legs.
"That was easier than I expected," Beth admits.
"Sometimes I think the only reason the Goa'uld try to capture SG teams is just because SG-1 pisses them off so much," Jess adds.
Cannon snorts at that. "Let's get our samples and haul it back to the gate before the mess runs out of mashed potatoes."
"You realize that's extremely unlikely, right?" Chris deadpans.
Cannon shrugs and stuffs the wrapper of her granola bar into her pocket. "Even so, let's get a move on."
11 notes · View notes
glassonlyrecycle · 4 years ago
Text
Pepsi Coke Part 4
minific, serirei, aaaaa
Part 1 | Part 2 | Part 3
----
Setting his phone down, Reigen paused, suddenly realizing the state of his apartment. He nearly dropped Pepsi Coke in despair. It would take hours to get the place looking even decent!
But he tried nonetheless, scrambling this way and that, picking up trash, tidying counters, collecting the laundry strewn about, sweeping up crumbs...
A knock came at the door just as he emptied the dustpan into the garbage. Setting it down, Reigen went to the door, going to adjust his tie, when he remembered what he was wearing: dirty slacks, a wrinkled and untucked button down, an untied tie with a grease stain... but he didn't have time! Serizawa was already waiting on the other side of the door. Reigen opened the door as casually as he could.
"Hi!" said Serizawa. He seemed... excited?
"Hey," said Reigen, trying to smile and ignore his embarrassing state of wardrobe. "Come in," he moved to the side so Serizawa could pass by.
Serizawa smiled and stepped by Reigen into the apartment. He smelled faintly of... roses, was it? Or maybe peonies. Reigen couldn't quite place it, but it was something soft and nice.
Reigen closed the door as Serizawa removed his shoes, setting them neatly to the side.
"I brought some things for Pepsi Coke," he said, handing a plastic bag to Reigen.
"Oh! Thanks." He had forgotten that was why Serizawa was there in the first place! He'd gotten caught up in his thoughts while he had cleaned; it had been some time since Serizawa last came over...
"Right! So I'll just set this down and then I'll get you something to drink." He gestured towards the little kitchen area as he moved. "There's that diet soda Ritsu didn't want, unfortunately no milk, water, obviously..." he trailed off, realizing he didn't have much to offer.
"I uh actually brought some tea, if you want?"
"Of course! Tea!" Reigen snapped his fingers. "Tea is great! I love tea. What kind of tea is it?" This was just going downhill fast. He could feel his face heating up.
Tumblr media
"Just bottled green tea." Serizawa moved to get the bottles from the bag.
"I'll grab some glasses!" Reigen was glad for an excuse to turn his face away. Not that fumbling with the cupboard was much better...
He awkwardly placed the two glasses onto the table. Taking a bottle, he began to shakily pour the tea into one of the cups. It was uncomfortably quiet. "So! How's your mom?"
"She's doing well," Serizawa smiled, "and thanks again for letting me have the time off."
"Of course! It was nothing. Not a problem at all!" The cup nearly overflowed as he waved his free hand wildly.
"Hey." A worried look came across Serizawa's face, as he gently took the bottle of tea from Reigen. "Is everything okay?"
Reigen went stone cold.
"I mean I don't want to be rude, but..." Serizawa gestured vaguely towards Reigen. "You look a bit different from when I last saw you, and you're acting a little strangely..." Serizawa's voice grew quiet as he trailed off, averting his gaze. "I don't mean to overstep any boundaries, I just want to make sure you're okay."
Reigen just kinda stood there, not knowing what to say. I mean, how was he supposed to respond to that? Oh yeah let me just tell him how Pepsi made a fool of me on day one, how Ritsu is ungrateful and snide, how everyone ignored me the past three days, how I haven't slept for more than an hour uninterrupted, how difficult it's been without him there but now that he's in front of me it's difficult too but in a different way -- how am I supposed to explain it's because he smelled nice when he walked past, because he smiled gently when I opened the door, because he straightened my shoes when he set his next to mine, because his hand was warm when he took the bottle from me --
"Sorry for asking, I didn't mean to make you uncomfortable." Serizawa put a hand to the back of his neck, glancing around the apartment. "So! Where's Pepsi Coke?"
Tumblr media
"I'll go uh look for him..." He felt like he was just about ready to die. Why did he just clam up like that! Reigen touched his cheeks. They were most certainly not cold!!
Serizawa poured the second glass of tea and sipped it, looking worriedly after Reigen. Maybe I shouldn't have spent so much time away, thought Serizawa, or at least texted him more often these past few days. To think if something terrible happened and I wasn't there...
Reigen was kneeling on the floor, looking under the armchair.
"There you are!" He coaxed and beckoned for a full minute, to no avail. Naturally! Reigen thought. Because there wasn't enough going wrong for me already! Serizawa came to see the kitten and without the kitten there's no reason for him to be here... Reigen desparately patted the floor one more time. Pepsi Coke, crouched in the corner, stared him straight in the eye, not moving an inch.
Serizawa laid a hand on Reigen's shoulder (which caused him to flinch a little; he hadn't noticed Serizawa walk over!). Handing a glass of tea to him, Serizawa said, "it's okay if he's not ready to meet me. Let's just give him some space and enjoy our tea."
Reigen swore that smile could bring the most stoic man to tears. In fact, his eyes were feeling rather watery...
Tumblr media
Tears rolled down Reigen's cheeks, as he took the glass.
Serizawa's expression immediately changed. "Oh my god, what's wrong? Was it something I said?" He knelt down next to Reigen, putting a hand on his back.
"It's just," Reigen sniffled, "it's just been rough..." Hot tears splashed quietly into his tea.
"Here," Serizawa said, helping him up. "Why don't we sit down and you can tell me everything."
----
here's the full page of illustrations (plus some bonus items!)
20 notes · View notes
Note
I have a question for you! As it is the lovely Mammoney's birthday coming up, what would your MC give the boys for their birthday?
This actually became a lot longer than I expected because I couldn't help writing minifics whoops and ahh asks about my MC make me happy cause I rarely get to talk about them specifically
Note; despite the typical idea you'd get from their name Eliza is neither white or western or a girl. All the relationships except the one with Mammon are just platonic✌ lemme know what you think cause feedback (either good or bad) is my only fuel
Lucifer
Lucifer gets a #1 MOM mug but also the day after his bday he gets Eliza asking Diavolo if he could let Lucifer off work for the day and dragging the rest of the brothers out of the house while making Lucifer promise he'll take a nap.
"Are you ordering me?"
"Well I mean...yeah? Not - not in a," they wiggled their fingers in front of them "pacty way. Just in a concerned friend way."
"And if I don't?"
"Well Diavolo went through all the trouble of taking on your work load... He'd be terribly disappointed if nothing came of it."
Lucifer had to stamp down the twitch of fond amusement that threatened to show on his face, "Are you trying to manipulate me?"
"No, I am manipulating you. Because it's working."
He gave them a dubious look.
"It is working. Right?"
With a sigh he said, "It's working."
"Great!" They pressed forward to give him a tight brief hug whispering "Happy Birthday Lucifer" before they were moving away, running off to presumably gather his brothers. "Remember," Eliza yelled over their shoulder, "Sleep!"
Mammon
The day of Mammon's birthday he gets a scavenger hunt. He grumbles at first but the lure of the prize at each location has him solving the riddles in seconds. Eliza trots after him to each location. The gifts, though there are a lot of them aren't anything big or overly expensive, a keychain with a little crow at the end of it, a bright gold cover for his D.D.D., A tote bag just so he could put the rest of his gift in it, that one choker/collar he had been eyeing a few days ago, a few of the old Disney princess movies because he got really into Cinderella, a warm scarf and set of mittens for the colder months because they know he prefers the warmth, a new pair of sunglasses, a new pair of earrings/studs, nail polish. But it's the little notes attached to them that's killing him.
"It's cute like you!" "Ik your eyes aren't gold but I always think of shining gold when I think of them. Maybe because they are so precious?" "I love you" "I saw you staring at it. You probably thought you'd look hot in it. You're right." "Did you know meeting you made me believe in happily ever afters?" "This one's pretty selfish because seeing you happy and comfortable makes me happy" "This one's a joint gift. I'll need to borrow them because you light up the room" "You deserve the best things because you're the best" "Have I told you I love you" "Stop solving these riddles so fast! I spent a lot of time trying to find the hard ones and now you're making me look dumb! Plus my legs are hurting."
The words of the last note blurred a bit as he tried to discreetly sniff. He'd been holding back tears since the second note, not that he'd ever let the human know (they knew). He wasn't sure why this was the one that broke him.
"Mammon?"
He turns to Eliza slowly. Making sure he doesn't crush the note.
They're panting slightly, from having to run up and down the whole house after him, but they smile brightly when he meets their eyes. "Seriously man, slow down for us weaker beings yeah?"
Then Mammon does something he rarely does. He makes the first move. He shoots forward to envelope them in a hug. They yelp at the sudden movement but immediately fold their arms around him.
They're almost the same height, something Eliza loves to hold over him, so it's easy for them to shift back and press a kiss to the tip of his nose. "I love you."
That just makes him sniff harder and burrow further into their shoulder, "Said that twice already," he mumbles between hiccuping little sobs.
"Dunno what to tell you, Mammon but I love you a whole lot. Just once won't work"
"... l - love ya too dummy..."
"There's one more riddle."
The last one simply says "Happy Birthday, Mammon."
"What's the gift?" He asks, looking around his room where the last riddle had led them.
The click of the lock and the wicked look on their face says it all.
*If you think the notes were cheesy Eliza absolutely cringed while writing them and had to take breaks to go scream in their pillow because of how sappy they were, but Mammon liked this kind of cheesy and it doesn't mean they weren't 100% sincere.*
Levi
For Levi they hunt down Simeon, trailing after him begging, negotiating and making deals.
"I-is this - this isn't - h-how - there isn't any - ELIZAAAAAAAAAAAAA!!" He launches himself at them, still holding the little book. "I LOVE YOU!! I LOVE YOU SO MUCH ELIZA! I - " He pauses, seeming to finally register his words and jumping away, hand flying to cover his flaming face "I! That doesn't mean! I didn't mean it like -"
"Love you too," they say easily.
And that has Levi blushing even more and trying to hide his face while mumbling something about 'normies'.
"Do you like it?"
"LIKE IT!? How'd you get it! This! This isn't even supposed to exist!"
"Ah I spoke to Simeon, he wrote it just for your birthday. They're only a collection of short stories though."
"FOR MY BIRTHDAY!? A LIMITED EDITION!? NO! NOT EVEN A LIMITED EDITION, AN IMPOSSIBLE ONE THAT SHOULDN'T EVEN EXIST!"
"...happy birthday Levi?"
"I LOVE YOU!"
"Love you too."
Satan
For Satan Eliza follows both Diavolo and Lucifer around, once again begging, pleading and bargaining. Diavolo agrees pretty quickly, it's Lucifer they take a week to convince
"Where are we going exactly?"
"You'll see."
"And how exactly did you manage to convince them to let us into the human world?"
"Uhm.."
"Do I want to know?"
"Probably not."
He chuckles softly, gently bumping them with his elbow he asks, "At least tell me where we are."
"Well this is where my mother was from. She was the one who was Lilith's descendant."
"It's not the same as where you lived?"
Eliza flushes at his use of the past tense. "Nope. It's funny though... "
"What is?"
"The first people who lived, the natives, the name of their clan translated to 'Demon'. They even had a Demon King. Ah, not sure how much of that is actual history and how much has been twisted through time but. It's an odd little coincidence don't you think?"
"Amid the action and reaction of so dense a swarm of humanity, every possible combination of events may be expected to take place, and many a little problem will be presented which may be striking and bizarre..."
"Don't quote your detective at me."
Satan laughs. "What happened to them? In your history?"
"Well it's a bit of a long story, it's not exactly a fair one either."
"History so rarely is. It's always told through the mouths of the survivors, the winners, it rarely gets a chance to be fair, to be anything more than fiction peppered with fact." His eyes are fixed firmly on the sky.
Eliza looks up with him, staring at the cloudless blue sky.
He shakes himself out of it with a chuckle, "That doesn't mean I'm not interested in hearing it. Quite the opposite actually." He smiles sweetly at them.
Eliza grins back. "I actually managed to get us a few days here. There are lots of ruins all around the country, they're not from that original clan but they're still really old and kind of amazing. We won't be able to visit all of them but it's still something."
"It is. Thank you, Eliza. It means a lot that I'd be able to learn something new and that you're sharing this with me."
Still grinning they hug him gently.
He wraps his arms around them
"Is this the part where you wish me?"
"It is. Happy Birthday, Satan."
*Anyway this is part of our actual history and even though I haven't really decided where Eliza is from this felt fitting? The detective quote is taken straight from Sherlock Holmes*
Asmo
"Elizaaa~ This is so sweet! Ahh, I love it! I love you!!"
Eliza couldn't help the soft laugh as Asmo clung on to them, rubbing their cheeks together and enveloping them in the sweet scent of his perfume.
"How did you know I needed this?"
"Well, living with six brothers anyone would need a weekend spa retreat away from them."
"You're right, Eliza! You're so right! They're the worst and it's even started to affect my skin! I needed some me time."
"Well... It's actually a coupon for two..."
Asmo blinked at them looking down at it and yes it was a coupon for two.
"You know, just in case you wanna..." they did a ridiculous eyebrow wiggle that had him giggling.
"Well then, Dear. How about a weekend spa treatment with me? Hmm?"
Eliza blushed, stumbling back and stuttering, "That's not - I - you know - I'm just - I - "
He watches them stutter, with an amused smile before he mercifully cuts in "I know you're set on that idiot brother of mine. Lord knows why, he's such a mess and I'm much prettier. You know I love you Eliza but you really do have terrible taste."
At their scowl he giggles, "But you love him, and you look out for him and you make him happy and he does all that for you too. And, well that's all that matters, isn't it?"
They're a bit red again, but they're smiling at him softly and looking at him with such love in their eyes, it makes a gentle sort of warmth spread through him.
"No, what I meant was not everyone in my family has been driving me crazy recently and you look like you could use a weekend off too. I can tell you embarrassing stories about Mammon from back in the Celestial Realm, if that sweetens the deal? Unless," now that he thought about it, "that makes you uncomfortable!? Ah! Eliza, I'm so sorry I didn't even think! I know you don't like this kind of thing, that's okay I'll ask So-"
"No, wait Asmo it's fine. I don't mind it, if it's with you."
Asmo blinked. The warmth spread. Then he flung himself at them again, "Elizaaaaa, don't say things like that and expect me not to react!"
They laughed, easily catching him in their arms, "Happy Birthday, Asmo."
Beel & Belphie
With Beel & Belphie Eliza leads them into the attic and locks the door behind them.
"Are you going to kill us here?"
"Haha. Funny."
Belphie laughed lightly, and Eliza could almost hear Beel's frown as commonplace as it was when the topic was brought up. Not wanting to keep Beel in any type of discomfort they reached out with that flicker of magic in them and a muttered spell and lit the fairy light like little lamps that hung across the room.
"You're getting better at that." Belphie said, eyes on them and looking impressed.
Beel hummed and agreed, looking proud.
"I know." Their chest puffed out a bit and the twins laughed.
Letting the moment fade they swept their hands, gesturing at the rest of the room. "So what do you think?"
The furniture had all been moved to the sides, the blankets and pillows from the room along with many, many additional ones were all piled strategically on the floor, making a large nest like structure. The outer structure of the nest was lined with various boxes and packets of different kinds of snacks and drinks. On the wooden floor in front of the nest was a large cake decorated in warm oranges and cool purples.
"I made it!" They said, proudly before deflating a second later "Well Luke made it, he wanted to do something nice for Beel's birthday but I stood around and licked the raw batter so that counts?... There's also a handheld vacuum for crumbs." They gestured at the side.
"It looks good," Beel said with a nod. "Smells good. I'm hungry."
Belphie tilted his head, "So your present for us is our sins?"
Eliza bristled, "No. That's just the setting, next is the accessories."
"Accessories?" Beel asked softly, still eyeing the cake, only held back by the firm grip that both Eliza and Belphie had on his hands.
"Accessories." Eliza moved away to a corner, returning while juggling two wrapped gift.
"It's that manga of Levi's that you like, it's the full published series so you don't need to keep borrowing it." Turning to Beel, "pyjamas. Large oversized thick and comfy pyjamas. I washed them too so that they would smell nice and wouldn't be scratchy. So this is your present: A sleepover, cuddled together under the blankets, in large comfortable clothes, eating junk food and reading manga where none of your brothers can interrupt." Eliza stopped for a breath, their proud smile dimming a bit, "I guess your presents are your sins..."
"No. They're not." Beel said firmly. Hands already unbuckling his pants and sliding them down. He changed his clothes quickly with no care for either of his audience who, to his credit, failed to react. He folded the old ones and placed them in a corner while Belphie removed his boots.
"They're not," Beel said again looking straight at Eliza, "They're quality time doing things we love with the people we love, without having to worry about anything else." He walks up to them, enfolding them in a warm, soft hug. "Thank you, Eliza."
"Right, right. Our sins are part of it because those are things we enjoy. But they're not the actual gift. Like you said it's the settings and accessories that make the actual gift. And that's spending time together without any of those idiots interrupting us for once."
"It's a good gift." Beel said, as Belphie slid into the hug. Beel lifted them both off their feet as they clung to him.
"Happy Birthday guys," Eliza said through their laughter.
"Love you," they both said in unison.
27 notes · View notes
arianakristine · 5 years ago
Note
because i'd always like to think charming would get along great with graham and think he's the right man for this daughter; letter E!
Send me character(s) and a letter and I’ll write you a minific!
E- Sharing a drink.
Half the battle of this fic was choosing which verse to place it in. RH? Nah, we already had a drink-sharing scene (with Killian) and Graham’s not currently drinking, anyway. BSAS? Too complicated, there, and David-Graham have this weird I-don’t-know-if-I-actually-trust-you vibe. Wilding? Considered, but hmm, maybe not. 
So … here’s a teeny tag to this old fic here. 
*
*
               “Need adrink?”
               Graham lookedup, still feeling a little disoriented. His head throbbed dully, but he managedto give a grateful smile. “Thanks.”
               Davidnodded and handed him a bottle, clinking the bottom in a half-cheers with hisown before joining him on the stoop. “It’s definitely been a day,” he said. Hepulled a hand across his face and looked up at the moon wearily.
               Graham tookthe offered bottle opener and the cap slipped off with a hiss. He frowned as hewatched the bubbles flit to the surface. “Being that I started this day in acoma, I’d have to agree.”
               “SomethingI can commiserate with,” David said wryly. He chuckled a little, morbid humoras he swallowed back a bit of his beer. “Although I have another 28 years onyour experience.”
               “And asword wound to accompany it,” Graham agreed and took a sip. His chest burnedslightly in memory of his own injury, but there were no scars there to prove it.He swallowed thickly to fight the rising bile with the alcohol instead, andthen jerked his head towards the door leading to the stairwell. “Everyone elseasleep?”
               “As closeas they can be.” He leaned back, looking weary. “Snow’s out. She was toooverwhelmed to do anything but. When I checked upstairs, though … I thinkEmma’s just wrapped herself around Henry while he sleeps, to be honest. I don’tthink she’ll take her eyes off him for a while.”
               Henodded and grimaced. “It’ll be hard for him,” he said softly. The horror on theboy’s face spoke to that much. “As good as this all is, I know he wasn’t readyto see her gone.”
               Davidpaused. “I’m kind of surprised at how ready Iwas to see her gone,” he admitted before pulling from the bottle, shameflushing his cheeks a bit.
               Grahamhuffed a humorless laugh. “Well, can’t say I was sad to see it.”
               Hecan’t quite put together all the emotions seeing her blank, lifeless gazebrought, but shame was never one of them. The wraith had come and gone soviolently but so swiftly, and it was taking a lot longer to process thedestruction it wrought. The town was quiet, but he half-expected the steadystillness wouldn’t last. For now, he supposed there was too much: people werefinding friends and family lost to them in the curse, remembering all theirlives. The fallout would take some time.
               Eventually,though, he anticipated some celebration at the news of the Evil Queen beingdead and gone.
               “I don’tblame you there,” David said and rubbed his chin thoughtfully. “I don’t think Icould even begin to understand what she’d taken from everyone. And not justthrough the curse. I think everyone will have a story on that.”
               Grahamswallowed and stretched his elbows on his knees as he contemplated it. Hetightened his grip on the neck of the bottle, remembering flashes of his timeunder her thumb and the people that suffered under her. He wasn’t sure he wasquite ready to talk about it all with the man who was technically his king andwas also the man who fathered the woman he was in love with, but answeredanyway.  “Yes, I suppose you’re right.”He gulped back another swallow, faintly wishing the drink was stronger.
               Davidwas staring at him from the corner of his eye when he dropped the bottle backdown. “Do you … is everything back for you?” he asked hesitantly.
               Grahamrubbed the space over his heart and looked up at the loft apartment. He weighedit a moment, how he felt. His gaze dropped and he factored in the relief whenthey’d found the prison cell. “I think so,” he said slowly. “But it’s been solong … I’m not sure.”
               Davidseemed to consider this a long beat, then took a long swig of his drink. “Iwish we could have succeeded in this sooner. Before losing a whole 28 years.”
               Hewaved off the attempt at apology. “I think Gold must have had his reasons toonly be rid of her now,” he answered. Though it wasn’t like the man had comeout and said it, everyone knew who was responsible for bringing the wraith.
               “Hmm,”David hummed, and rocked the bottle back and forth in his hands. “He always hassome sort of reason. Plenty has happened between the curse being cast, so whocan really know?”
               Grahamlooked back up towards the window. Hours ago, Henry’s arms had clung tightaround him and there had been relief in his voice. Every hushed conversationwhispered to him on his hospital bed was fresh in his mind, and Henry wasdelighted to know that he heard every bit. The news of Regina … well, that camelater. The boy had been dry eyed, but white with shock. He wished he could haveinsulated him from that, kept the pain away. It was like some sort of cognitivedissonance in him, the liberation of her death and the pity of it.
               “Totake her away now seems abrupt, I’ll give,” David finished, brow furrowing.
               Grahamclosed his eyes and nodded once.
               Emmawasn’t exactly ready for all it meant, he knew, but she was trying all thesame. She had crawled into the bed and wrapped herself around her son,comforting him through touch in a startlingly familiar way. He pictured now theway she’d gripped his own hand once Henry’s tears finally started to fall insilent streams. Too much to process: he supposed that accounted for them aswell. He kept her grip a long moment, wanting to do all he could to make thiseasier on her.
               After awhile, he told her that he’d just be right outside, just to give them some time.As much as he was willing and wanted to help, he knew she needed time to findher footing as a mother. “I’m glad something good came out of it, though.”
               Davidgave a stiff smile and leaned back against the porch railing. His eyes wereserious as they met his, and Graham’s brow furrowed as he waited for his Kingto collect his thoughts. “How’d you manage out of that coma, Graham?”
               Heclosed his eyes, and blew out a low breath. He took another sip and placed thebottle gently on the step below him. How could he explain something like thatto him? “How did you?” he finally countered.
               David’sface transformed, soft awe touching over his features. “Snow. I heard hervoice, and finally when we touched … I didn’t even realize until later. It washer. She managed to pull me out of the dark, just because there was still thatpart of her that loved me. Beneath the curse, beneath the forgetting … Reginacouldn’t kill that,” he said fondly.
               Grahamfelt his stomach clench, and he remembered the feel of Emma’s fingertips acrosshis own, the way the small touch grew and how he finally felt control again as her hand cupped hischeek and her broken voice pleaded with him (you can come back). “I … I don’t know,” he mumbledawkwardly, and rubbed the back of his neck.
               Davidwas studying him still, and barely shook his head. “Yes, you do,” he saidsimply. He pulled a thinner bottle out of his pocket, and slid the cheap scotchacross the cement steps in offer.
               Grahamlooked at it a moment before picking it up. He screwed open the top and staredout into the dark street for an extended beat, trying to push back the nervoustension of talking about this with Emma’s father, of all people. “Yeah, I do.”He took a long pull from the bottle and then left it between them.
               Davidnodded, as if pleased to have guessed correctly. “Yes, at least some good cameout of it.”
               Grahamlooked up, surprised. He swallowed, and his eyes flashed up. “Henry, I meant.”
               “Ofcourse. He’s a great kid.” A smirk crossed David’s face and he shook his head.“But that’s not all of it.”
               Grahamswallowed thickly and said nothing.
               Davidwas quiet a moment, face stretched toward the light of the moon and thoughtful.“Emma … I’ll be the first to admit that I don’t know enough about her. I wish Icould say differently, but the most contact I’ve had so far is through secrets andhalf-truths. But I know enough to understand that she is a tough shell tocrack. She doesn’t let anyone in easy, including me and even including Snow.”
               Grahamlooked up at him, head cocked to the side as he tried to ascertain his meaning.
               Davidswallowed back a quick pull of the flask and nodded once. “I trust anyone thatshe lets past.”
               Grahamlet out a shaky breath. He didn’t exactly need his acceptance; Emma was her ownwoman, after all, and would like bristle at the idea. But … but it was nice tohave someone trust him. “You sure of that?”
               Davidsmiled and bobbed his head. “I trust that instinct in her. She gets it from me.”
               He felthis face flush and cleared his throat. His heart tugged, and he realized just howdesperately he wanted to fit into this strange, war-torn family. “I hope tokeep it.”
               He tookin a breath and released it slowly. “Strangely, there wouldn’t be an Emma or aHenry without you, you know. It’s not just because of her that I trust you.”
               He didn’tknow what to say to that. He certainly didn’t think of that before, and it feltalien to consider it now. Awkwardly, he raised his drink. “To no more comasthis year?” he ventured.
               Davidlaughed heartily and clinked their bottles again before taking a sip. “Soundslike a good one.”
               The acceptanceof it all, unofficial and yet somehow still strangely pleasing, let him relax.With all that needed rebuilding, it was nice to forge something new with it.
               Itwould be good to have a friend.
16 notes · View notes
azaleablueme · 5 years ago
Note
M for the minifics! Btw that V one was so heartwarming, made my night!
Thank you so much!!! Sorry, this came so late but I still hope you enjoy it! 
………………………….
M: When it rains/snows/storms (prompts)
Ron had been really looking forward to that particular Hogsmeade weekend. That was until, the obnoxious toad handed Harry a detention the very last minute, putting a dampener on all their plans. The poor bloke had been eagerly looking forward to stepping out of the castle, having missed the previous Hogsmeade weekend as well. All because of that … 
“Do’ya think we can feed her to the Giant Squid?” he asked, gritting his teeth and wringing his hands, picturing himself strangling the pink toad while a teary-eyed Harry cheered him on.
“I doubt,” Hermione replied in utmost seriousness. “Moreover, Hagrid will be devastated if we poisoned the poor creature that way.”
“Yeah,” he intoned as they walked on, their feet taking them towards their favourite pub automatically. But just feet away from the door of the Three Broomsticks, he stopped short.
“Hermione I-”
“-don’t feel like going in when Harry’s missing it? Me too.”
He looked at her, his anger melting away slowly at her sight, and grinned. He loved these moments when she seemed so in tune with his thoughts. There seemed to be rather a fair few of these recently. 
“So?” he asked, suddenly gripped by the insane urge to hold her hand. He scratched the back of his neck nervously instead and looked around, worried that she’d read his secret thoughts if he met her eyes.    
“Will you mind if I drop in at Scrivenshaft’s and then, I don’t know, go back to the castle?”
He shrugged casually and she nodded once and pulled out a small parchment from her sling bag. Hermione bought herself some parchment, a few quills, a couple of books(seriously?!) and other tidbits while Ron lingered around the shop. Once she was done, they took the cobbled road running through the middle of the village, slowly making their way back to the castle. Now that he thought of it, he’d have rather liked to spend a few hours alone with her. But he had already agreed to her plan before and honestly, he didn’t quite know how to suggest a change. 
What if she asked what he wanted to do instead? 
He could, under no circumstances, tell her what he wanted. It wasn’t like the two of them hadn’t visited Hogsmeade all by themselves, they had,  and they’d enjoyed it a lot too. But back then it was different- back then, he didn’t know how much he fancied her. His heart gave that same sort of tumble again, the one that made his insides feel all empty. She was his best friend. 
What if his stupid desires cost him her friendship as well?
 “I don’t know how we’ll take our O.W.Ls this year with this- this-”
“Treacherous toad, bumbling baboon’s backside, stinking dung bomb…” he provided easily. 
“Yeah, her,” she agreed. “I’m worried she’ll ensure Harry fails!”
“Nah, she won’t- can’t rather. They’re overseen by ministry officials, a separate department altogether,” he replied as they walked on.  
As they crossed the cobbled road and reached the narrow alley that bent and turned after a few cottages and led up to the school, Ron’s steps began to slow down. This was one of those conflicting moments when a part of him felt nervously excited about spending some alone time with Hermione, while another bit of him that was unquestioningly loyal to his best mate, wanted to kick his own arse.    
“Ron?” 
He realised that he had absolutely no clue what she had been saying, mesmerised as he was watching their feet walk side by side. Her steps were much smaller, and he had somehow managed to match her pace.
“You weren’t listening, were you?” she asked, stopping and turning at him suddenly. A loud clap of thunder roared above them at that very instant, saving him. She let out a shriek as the skies seemed to open up and drench them in the sudden downpour. 
“My books!” she screamed, cradling her bag and holding it against her chest, while Ron looked around helplessly for shelter, but they seemed to have reached an open spot; even the nearest tree was many meters away.
“Hold on!” he shouted and pulled off his cloak and held it over their heads. It was a good thing she was so much shorter than him, it worked pretty decently as a makeshift umbrella. As he grinned and turned to her, his heart gave that same tumble again. She was really, really close now, and drenched and had water droplets trickling down her curls. 
Blimey…
She looked up and he could see her smile. There was the rare twinkle in her eyes that always made mad things happen inside his chest. “We should keep walking!” she yelled over the sound of the pouring rain, and he nodded.
His cloak- though huge when compared to hers- wasn’t still big enough to cover their feet, and they splashed and slipped on the muddy road until Hermione decided that she wanted to wrap an arm around his waist. 
“Can’t risk falling down!” she stated, and Ron nodded once again for her proximity and water-drenched state had turned his brain into mush, wiped off his vocabulary until he was left with gibberish or Troll language. 
With one hand holding her bag to her chest, the other wrapped snugly around Ron, Hermione guided them towards the castle while Ron ensured he kept them relatively less wet (as the cloak was practically soaked and dripping on them, but she didn’t mention it and neither did he). His hands ached- the walk wasn’t a very short one- and they were walking treacherously slow, but he couldn’t care less. Hermione was as close to him as she’d ever been, and he knew it was a once-in-a-lifetime scenario anyway. He wouldn’t trade it for anything in the world.
Finally, they reached the school gates and once within Hogwarts’ boundaries, Hermione pulled her hand away, leaving him feeling strangely lonely. It would be barmy if she held on, he knew. The others would see and make assumptions. A small part of him reminded that he wouldn’t actually mind…
While he was caught up in his own head, however, Hermione had gotten down to work. A blast of hot air from her wand warmed him right through before she cast the same on herself.
He pulled down his soaking cloak and hung it on his arm and cleared his throat, hoping to say something witty. But Hermione was pouted to herself now, after unsuccessfully trying to dry her hair, and got busy tying it in a knot instead. Ron looked on, unable to tear his eyes off her.
She’d notice him and hex him into next week! He knew it, but bloody hell, she looked insanely adorable… 
“Ron?” she asked with a hint of a smile, bringing him back to his senses and he scratched his neck again while she eyed him curiously as she adjusted her bag. 
Ron cleared his throat again. “Yeah?” he managed somehow.
“We should get something warm to drink,” she suggested and he voiced his agreement with a muffled ‘hmm’. His mind was still in a daze, her soaking image still etched in his eyes. For many nights now he knew, he’d dream of those water droplets trickling down her curls, remember in great detail the moisture that clung onto her lips and lashes, remember her slightly shivering form and feel her arms around him.
He noticed they were walking back to the dorm and for some reason, she’d grown quiet too.
Hermione came to an abrupt stop in a lonely corridor and he followed suit, just about to question her. But then she looked up and he forgot what he was going to say. He found himself wishing really hard that he knew Legilimency; he desperately wanted to know what she was thinking as she met his eyes. 
But any and all thoughts drifted off to a hazy bliss when Hermione stood up on her toes and kissed him softly on his cheek. “Thank you, Ron,” she whispered and smiled nervously before looking away quickly and walking away.
 ……
55 notes · View notes
cordycep-creations · 5 years ago
Text
We’ve had minifics, headcanons, weird lists, and theories. Lets add reviews to the list too.
The fiend that is writer’s block has had me in it’s grasp lately, I’m sorry-
I recently finished rereading/catching up on a webcomic called Paranatural, and I thought I’d write a bit about it! Paranatural is an ongoing webcomic that started in 2011. (Nine years ago, for those of you who need a timesmack) The follows a middle-schooler named Max, who just moved into a new town called Mayview. Shortly after moving in, he begins to see strange things. Spirits, ghosts, and things that can’t quite be explained. I’m gonna do a review thing talking about some things that I love about the comic, and some things that aren’t quite as well executed.
–The Representation–
The first thing I want to talk about is this comic’s amazing representation of all sorts of people. There are gay, lesbian, nonbinary, muslim, and (seemingly) bipolar characters. There are characters of all sorts of body types and styles and races. None of it is played for laughs, none of it is drawn special attention to. It’s just fact. It’s there, it’s normal, and that’s exactly how it should be.
–The Artwork– The comic’s art style varies, as the mood is needed, from things that look like Sesame Street muppetry...
Tumblr media
To beautiful pieces like this, which is my new desktop background. 
Tumblr media
The work put into this is amazing, and the fact that it’s all done by one man is incredible. Colors and detail and amazing designs. Plus, the characters actually wear different outfits every day, which is nice.
--The Timeframe--
We’re now getting into some of the things that irk me about this comic, the first and most prominent being it’s time frame. It’s very inconsistent, and there’s never anything to tell yu quite how much has been happening offscreen. Especially given the fact that a few days incomic time can have been written in over a year realworld time, you can see where the confusion arises. Don’t get me wrong, I’m not bashing the artist for an inconsistent upload schedule. Work this great takes time, and I know that. It’s simply the flow of time in the world of the comic that feels unusual. 
--The Pacing--
On a similar note to the previous point is the pacing of the comic. For the most part it’s consistent and well done, but there are several instances where a scene is drawn out for the sake of laughs. There are also some, more recent scenes, where the happenings feel crammed together. This most likely ties into the artist’s real world life, and is honestly a very minor issue. 
All in all the comic is amazing, and I highly recommend that you check it out. If you’ve read this far through this post, you’re undoubtedly interested. (That or you’re AJ and are just reading this to be nice)
Here is a link to the comic, and Here is a link to the artist’s patreon, so you can support them! Their name is Zach Morrison, and you can find out more about them on the patreon page. I hope anyone who takes a look at the comic enjoys it, and that you all have a great day. See you whenever I write something again. 
5 notes · View notes
kaileah-kat · 7 years ago
Text
‘Tis a freaking AU
Hey @altruistic-skittles , heard you were in a creative slump. I decided to finish this for you. Maybe brighten your day a little :D
Grocery Store/Supermarket AU! The most basic AU you will ever see (besides the beloved coffee shop au’s). I was at work thinking of all these scenarios because I don’t really talk to anyone so my mind just wanders and we end up with things like this. Prepare for a not-so wild ride my dudes.
EDIT: HERE’S PART TWO HERE’S PART THREE HERE’S PART FOUR HERE’S A FLOOR PLAN HERE’S MORE RANDOM ISH HERE’S A MINIFIC PT 1
Logan:
He’s 21 with no sense of adventure.
He started working at this random store with no name when he was 18.
He started in the pharmacy section because he’s a smart cookie.
Sadly, he’s not smart enough to understand “The customer is always right”.
He doesn’t play games. When you’re wrong, you’re wrong.
It got to a point where he had at least 10 customer complaints a week and management was very close to kicking him to the curb. 
They made a compromise for him to move to a department with literally z e r o customer interaction.
The accounting office. He loves it. He’s now a smart cookie in charge of money.
But, if cashiers could sort their freaking coupons, that would be great.
Oh! He’s also Emile's brother!
Patton:
He’s about 19/20 (I’m leaning towards 20) and a sunshine bean.
He started working at this random store with no name when he was 16.
He’s a cashier who everyone l o v e s.
He’s so friendly?? All the time?? 
Management used him as an example for Logan all the time.
He sorts his coupons. Just for Logan.
Patton loves children and he loves the fact that he can offer them stickers.
Once, a child denied his sticker. He was a little upset. 
He’s not allowed to do re-shops anymore because one time he ended up re-arranging the entire cereal aisle by color.
His one task, which was to put the cornflakes back on the shelf, was never completed.
A local dad friend to every minor working in the store.
He also knows ASL just in case someone’s deaf because oh boy he isn’t missing a chance on any customer interaction. 
Also, he’s Virgil's brother!
Roman:
He’s 18. Look at him thrive into adultery adulthood.
He started working at this random store with no name when he was 16. 
Forgot a thing: every minor starts as a cashier. 15? They have to stay there until they’re 16. 16/17? Great! As long as you’ve been a cashier for 6 months, you can move departments! Only to certain ones though, lets not get crazy.
Roman stayed a cashier until he was 18. People are cool, he doesn’t mind interaction.
He got bored and decided he wanted to move to the bakery so he can decorate cakes in excessive amounts of edible glitter. 
He lets his creativity f l y.
When someone has an ordered cake, you better know he’s making that cake so that it exceeds expectations.
Sometimes frosting mysteriously “goes missing”.
He eats it in the cooler. He hasn’t been caught yet.
Makes the best frosting flowers. They look almost like real flowers, it confuses everyone.
However, he can’t write words on a cake to save his life.
Virgil:
He’s 17. He’s small and needs to be protected.
He started working at this random store with no name when he was 15.
He’s selectively mute because of social anxiety so clearly putting this child on a cash register is a g e n i u s idea. However, it’s the law, he has no choice.
He’s also half of the reason Patton knows sign language because he loves his brother damnit! If Virgil is anxious in a public space and he doesn’t want to use his actual voice that’s a-okay!
The front end cashier managers will also accommodate so if Virgil needs to chill and do some back work (like re-shops or cleaning the registers that aren’t in use.) then that’s fine. There is one manager that can choke though, but we’ll talk about him later.
When Virgil turned 16 and was officially 6 months on register he freaking b o o k e d i t to management to see if he could move to accounting. (In the back where it’s quiet and the only person he’ll have to speak to is Logan? Sounds amazing.)
Sadly, the lad has to be at least 18 to be back there. 
Virgil settled for grocery. Still has customer interaction? Yes, but a lot less of it.
He still rarely talks and when people ask him where something is he generally gestures for them to follow him as he leads them to the item.
Belial (Deceit):
He’s 27 and can c h o k e.
He started working at this random store with no name when he was 17.
He’s one out of the four front end managers.
Every single employee hates him with the passion of 1,000 burning suns.
How did he get a manager position? No one knows.
Has made cashiers cry (mainly Virgil minors, and one super buff guy with a goatee).
Everyone thinks it brings him joy. Hint: It kind of does.
It tends to be his way of doing things, or the high way. 
All in all? A despised human with a snake tongue.
Emile:
He’s 27 and a legend who we will love and appreciate forever.
He started working at this random store with no name when he was 16.
He’s the Human Resource REP. and loves his job. Sometimes he wants to put his head through a wall, but he loves his job.
He wants the best for every single employee, except one.
Makes puns and pop culture references way too often.
Most people don’t understand what the hell is going on when he starts. 
When a pun is made you can hear Logan groan from the accounting office.
Remy:
He’s 26 and sassy as h e l l.
He started working at this random store with no name when he was 19.
He works in asset protection (aka: security)
He has all the receipts and tea sweetie, he knows you were trying to steal that lipstick.
He doesn’t play games. (Okay, well, he knows Roman eats some of the frosting. But he lets it slide. He would do the same thing.)
He lives off of coffee. His coffee cups seem to be everywhere.
“Alright Felicia, here’s the deal,” “My name is Carol.” “Honey, sure it is.” -every conversation with someone trying to break the laws of the land.
Thomas:
He’s 29 and somehow not losing his damn mind.
He started working at this random store with no name when he was 15.
He’s the store manager, look at him t h r i v e.
He wants the best for every employee, even the one with a snake tongue.
Why he doesn’t fire Belial has been a mystery for years. 
Treats everyone in the store like they’re part of his family bloodline.
Everyone would 100% cry if he ever transferred to a different store.
Alright, this is long. Tune in for part two where we’ll talk about how they ended up applying for the nameless store, more about how they interact with each other, shipping :o, etc. I might only do that if this goes well though... who knows ¯\_(ツ)_/¯
840 notes · View notes
dontcallmecarrie · 7 years ago
Text
Live Through The Rain
On a bit of a WtNV kick lately, despite not being completely caught up yet. Add in dubious amounts of sleep and caffeine, a bout of Maria Stark feels, plus my knee-jerk reaction to stress, and I think you guys can tell where I’m going with this. 
Fandoms: Marvel Cinematic Universe [films], Welcome To Night Vale [podcast]
Warnings: for everything Night Vale related [Librarian-caliber gore, cosmic horror, dystopian themes, etc.] plus unreliable narrator [because of different priorities, skewed ideas as to what’s normal, etc] and large amounts of crack because reasons. Under the cut, also because reasons.
Here’s a fic idea/minific-I-might-expand-later-on from some premises I kinda want to play with, with bonus Maria Stark backstory because turns out she’s a pretty major influence and butterfly effect ftw:
In which Maria Stark’s hometown was Night Vale.
Maria Carbonell grew up in a small, quaint town with good schools, [literally] breathtaking infrastructure, and left a legacy that had everyone warily looking over their shoulders and in the rafters before speaking her name. 
She may or may not have been part of the reason the town referred to an incident only as the Time of Knives, featuring a teenage Maria and a truly terrifying number of Librarians, and had been taking classes at the community college and interning at the local radio station when an errand to investigate the appearance of mysterious portals ended up leaving her stranded in New York. 
She didn’t have much to go back to; her father had entered the Blood-Space War when she wasn’t quite eight, and his letters always reached her regardless of where she was. Her mother was bitten by an antique years ago, and she’d been an only child. Besides, she could hear the radio just fine, so the homesickness wasn’t that bad.
So Maria Carbonell did what any Night Vale citizen did: she rolled with it, and settled into this new world with what she had in her pockets, and little else. Turns out, it was just enough, especially paired with her skills from when she’d earned her Undercover Operations badge, back when she’d been in Girl Scouts. 
Time passed, and she fell in love with Howard Stark, and you guys know the rest of the story.
He thinks she’s got some odd quirks, but didn’t everyone?
And Howard…changes, over the years. Hardens, becomes colder. Becomes more secretive. In another life, Maria might’ve been dismayed, by that. 
But in this one, she’s reminded of home more than ever before, because…really. Besides,it’s not like she doesn’t have her own secrets, like the bloodstones she’s carried in her pocket since leaving Night Vale, and she’s so proud of his progress in making a Vague Yet Menacing Government Agency. [Really, his attempts at secrecy are adorable.]
He’s gone for more and more time, searching for Captain America, and Maria’s left holding down the fort, smiling prettily for the cameras and unnerving literally everyone else, because the spies who work with Howard are seeing her skills with counterintelligence and information-gathering and debating about whether she’s a deep-cover agent or something else. [Howard, for his part, gets very offended by any implications of his wife being a spy, plus he researched her background himself, thus their reluctance to say anything otherwise.] Plus her skill with anything with blades? Ditto. Jarvis is slightly wary at first, but they become friends soon enough, bonding over watching Howard’s back and sharing recipes [even if Jarvis had to modify some, because apparently people around here didn’t like adding crushed pumice to brownies. Weird].
Just…Maria Stark’s content to be in the background, but is kicking ass and taking names because she was born and raised in a small town that regularly deals with eldritch abominations and temporal disparities and it’s hard not to be a badass after having earned merit badges in Concealed Weaponry and Advanced Knife Fighting Techniques before puberty. 
She loves quietly but fiercely, and takes on the world with a bright [vicious] smile and a knife tucked out of sight. [Turns out it’s genetic.]
I could go on, but this got off-track as is, so…
Tony’s birth signifies a change. 
[Of course it does.]
Suddenly, the differences between Night Vale and the rest of the world are so, very vivid. 
 For instance, her pregnancy had been very interesting. 
She was just happy Tony had ten fingers and toes, really. And didn’t mind that he’d taken after his father in looks, because her side of the family had tentacles in their family history, and while Maria didn’t see what all the fuss was about, these people were surprisingly squeamish about extra appendages. [Weird.]
Time passes, and Howard’s still out and the mansion’s mostly vacant, excluding Jarvis, so nobody should be surprised at just how large a role she played in raising him, really. 
In canon, Tony was always closer to his mother than his father, but here? Well…he’s got Night Vale in his blood. 
Here, Tony’s childhood is unusual, and it’s not even because of the genius thing. 
His bedtime stories are of flying police cars and Hooded Figures and Radon Canyon. Howard’s not home very often, but his grandfather’s letters arrive like clockwork, so there’s that. [It was only when Tony got older that he realized the irony of it, really.] The Sumerian lessons, and the self-defense against Librarians, and the best way to handle assault rifles, were all part of his fondest childhood memories. Even if they had to be kept secret, because he noticed how some people looked at his mother, like she was an alien in human skin. [Or a Librarian, or…]
Time passes, he gets older, and Jarvis is despairing in the back because Tony inherited his mother’s taste, and explaining just why there was motor oil in the cereal bowl had been a trip and a half.
Tony’s growing up, and while he’s blowing through classes, and being a prodigy just like in canon, here, when he’s at home he’s learning how to make hot chocolate just the way his mother makes it, with a dash of chili powder and just a hint of antifreeze. The stories now include the Void and Street Cleaning Day and monsters great and terrible [Librarians, what can you do? Plus the Woman From Italy] and whenever the signal’s good, they hear the broadcasts together.
[Part of Tony knows it should be impossible, but then, so’s the bloodstone circle chants, and the small bits of dark magic his mother knew and taught him because she’d earned a merit badge for Combat Incantations. He’s not good at it, but it’s enough for a pinch, so whatever.]
Sometimes, he wants to visit, but life in the spotlight, plus it being practically impossible to find sometimes, meant it’d be something for the bucket list instead. 
Time passes, and he gets older. 
He’s learned from his mother how to smile for the cameras, and he’s not even a year into MIT but he’s already sick of hearing everyone comparing him to Howard because sure, they had a family picture every so often, but really the last time he saw his father had before the man had left for yet another expedition, nearly five months ago. 
Maria’s still done her best to bridge the gap, but here there’s also the Family Secret to contend with; Tony’s got Night Vale in the blood, after all. That’s not a small thing. 
The car crash still happens, and Maria still dies. 
Except here, Tony chalks it up to time-traveling assassins from the Society For A Blood-Space War, because he’s heard of them before and it would’ve taken a lot more than a mere car crash to end Maria Stark neé Carbonell. 
The Winter Soldier, meanwhile, had to fight for his life and only narrowly made it out because the target’s wife put up unexpected resistance. The scene had to be set on fire to get rid of all the biological evidence, and HYDRA had to do some emergency surgery even though nobody’s quite sure as to where the machete wounds, or third-degree burns, even came from.
Maria had taught Tony how to handle assassins from an early age. She thought it’d be his grandfather, or his father, that’d be the reason for trouble, but just in case…
Tony’s grieving, of course, but he’s a bit more at peace than in canon. [It helps that he recognized the lingering scent of dark magic, and knew she’d fought back, when he goes to the scene.] But he’s got Night Vale in the blood; death and fire are like a second skin, to him. 
Time passes, and canon ensues, for the most part. 
He still becomes the Merchant of Death, still sells weapons that devastate landscapes and smiles for the camera. [It’s Tony Stark, of course.]
The changes are more minute than not, here; they’re in how Jarvis lived a few months longer than what the doctors had expected, after having been diagnosed with cancer [bloodstone chants for the win], they’re in how Tony actually likes DUM-E’s smoothies, because the tang of motor oil’s a very good counterpoint to the mellow notes in the alfalfa, they’re in how he sometimes turns off the music and puts on the radio, when it’s late at night and he’s alone in the workshop. [Rhodey, Happy, and Pepper get clued into his unique background, of course, and roll with it..]
Canon ensues, and shit goes down.
He’s still captured on a bright day, not a cloud in the sky and the sun scorching down on him.
The change here is, Yinsen’s feeling tendrils of darkness where there’s supposed to be a heart. The difference here is, Tony first wakes in the middle of his impromptu surgery to a doctor who’s looking at him with horrified awe, and the arc reactor goes in anyway because turns out that physiological quirks aside, his heart still doesn’t like getting shredded, protection around it or no. 
Tony left his bloodstones back home, and he was never quite as good at magic, so he goes with what he knows, to break out. Except here, he also has the shadows to help him, and their captors become increasingly drawn and tired as the days pass by. Yinsen doesn’t breathe a word, but watches with fascination as this all goes down.
They break out, of course. 
Not sure if Yinsen makes it, in this one. Hmm…details, details.
Tony crash-lands, and it might’ve killed a normal human, but…well. He’s not normal, now, is he? 
Canon ensues, with a few tweaks. 
When he meets Nick Fury for the first time, Tony doesn’t get why the man twitches like that when he offers him a drink. [Fury’d seen Maria cheerfully add Tabasco sauce to her tea, like hell he was going to drink anything her spawn offered him!] And that talk of a bigger universe? Adorable. Why’d he’d booked it shortly afterwards, he did not get, either. 
The palladium tastes like grape-flavored cough syrup, so of course it had to go. [The headaches he got from it were secondary, really.] Natasha gets hired, because he recognizes the gleam in her eyes. He hasn’t seen it outside of the mirror for decades now, like hell he wasn’t hiring her. [It’s months later that he finds out she’d been born five minutes away from Nulogorsk. Nice.]
The Avengers assemble, of course. 
Except here, there’s a lot more weirdness to contend with; Steve is so, very not prepared for the chaos that is Tony Stark. [Nobody is, really.]
The fight with the Chitauri’s the first time people start to twig that he’s Not Normal, though. Kinda hard not to, when he’s so very nonchalant about fighting alien armies [his laser knife fighting skills were very rusty, but decent enough in a pinch]. When he diverts the warhead from its intended target, he remembers all the warnings about the Void, but curiosity killed the cat so he glimpsed it anyway. 
Wasn’t much of a Void, really; the aliens are mildly alarming, to be sure, but this still isn’t the cosmic horror of the Things That Should Remain Unseen that he’d been expecting. [Overall, 4/10, for being a disappointment.]
[Loki, though, he saw the Void, Tony knew. It was obvious, from the look in his eyes even if the others didn’t quite recognize it.]
Time passes, and he carries on. 
Thanos is a threat, to be sure, but Tony’s already been quietly preparing for the Blood-Space War, so it’s a minor issue. Even if the others don’t quite agree. 
Tony talks in Russian with Natasha, sometimes, and alarms the team as his more private quirks start to show the longer he sticks around. Steve’s horror at his not blinking at the soap in his smoothies is pretty entertaining, to be sure. The less said about Clint’s finding his homemade chocolate stash, the better, and Tony only knew a few phrases in Triple Spanish but it was still enough to get the room’s attention. 
Wanda tries to get the drop on him, but turns out his worst nightmare’s a scorching sun with a Smiling God in a desert so it’s pretty much impossible to manipulate that into anything she can work with. That Tony threw a fireball right back at her didn’t exactly help, either. 
Ultron still happens, except here, JARVIS has some…quirks, because Computer and Fire Science is a department in Night Vale Community College and that implies a closer relationship between the two than one would expect. [Ultron doesn’t happen, is what I’m saying.] 
Civil War, if it were to happen, would be…fun. I mean, it probably wouldn’t even happen, because no Sokovia, and without the time crunch Tony’s able to hit everyone upside the head with the paperwork and broker something that’s approaching functional. 
Thanos…well. If Infinity Wars were to happen, Tony would go ‘screw it, time for the big guns. JARVIS, help me find Night Vale, time for that vacation’, and…well. Thanos is formidable, sure, but Tony can get his hands on Librarians and he’s the son of Maria Stark neé Carbonell, so really, who’s the scariest here?
Not mentioned: HYDRA’s got some ties with Desert Bluffs, Phil Coulson’s from Red Mesa [thus the nonchalance at all this shit going down], if I wanted even more crack I could easily try shipping Thanos with the Woman From Italy, and I could probably—uh-oh.
…this is going to be its own AU, isn’t it. Dammit, brain!
I mean, this is pretty rough considering it’s off the top of my head, but…oh no. Brain, don’t do it.
114 notes · View notes
nancydsmithus · 5 years ago
Text
Designing And Building A Progressive Web Application Without A Framework (Part 2)
Designing And Building A Progressive Web Application Without A Framework (Part 2)
Ben Frain
2019-07-25T14:00:59+02:002019-07-25T12:06:45+00:00
The raison d’être of this adventure was to push your humble author a little in the disciplines of visual design and JavaScript coding. The functionality of the application I’d decided to build was not dissimilar to a ‘to do’ application. It is important to stress that this wasn’t an exercise in original thinking. The destination was far less important than the journey.
Want to find out how the application ended up? Point your phone browser at https://io.benfrain.com.
Read Part One of Designing And Building A Progessive Web Application Without A Framework.
Here is a summary of what we will cover in this article:
The project set-up and why I opted for Gulp as a build tool;
Application design patterns and what they mean in practice;
How to store and visualize application state;
how CSS was scoped to components;
what UI/UX niceties were employed to make the things more ‘app-like’;
How the remit changed through iteration.
Let’s start with the build tools.
Build Tools
In order to get my basic tooling of TypeScipt and PostCSS up and running and create a decent development experience, I would need a build system.
In my day job, for the last five years or so, I have been building interface prototypes in HTML/CSS and to a lesser extent, JavaScript. Until recently, I have used Gulp with any number of plugins almost exclusively to achieve my fairly humble build needs.
Typically I need to process CSS, convert JavaScript or TypeScript to more widely supported JavaScript, and occasionally, carry out related tasks like minifying code output and optimizing assets. Using Gulp has always allowed me to solve those issues with aplomb.
For those unfamiliar, Gulp lets you write JavaScript to do ‘something’ to files on your local file system. To use Gulp, you typically have a single file (called gulpfile.js) in the root of your project. This JavaScript file allows you to define tasks as functions. You can add third-party ‘Plugins’, which are essentially further JavaScript functions, that deal with specific tasks.
An Example Gulp Task
An example Gulp task might be using a plugin to harness PostCSS to process to CSS when you change an authoring style sheet (gulp-postcss). Or compiling TypeScript files to vanilla JavaScript (gulp-typescript) as you save them. Here is a simple example of how you write a task in Gulp. This task uses the ‘del’ gulp plugin to delete all the files in a folder called ‘build’:
var del = require("del"); gulp.task("clean", function() { return del(["build/**/*"]); });
The require assigns the del plugin to a variable. Then the gulp.task method is called. We name the task with a string as the first argument (“clean”) and then run a function, which in this case uses the ‘del’ method to delete the folder passed to it as an argument. The asterisk symbols there are ‘glob’ patterns which essentially say ‘any file in any folder’ of the build folder.
Gulp tasks can get heaps more complicated but in essence, that is the mechanics of how things are handled. The truth is, with Gulp, you don’t need to be a JavaScript wizard to get by; grade 3 copy and paste skills are all you need.
I’d stuck with Gulp as my default build tool/task runner for all these years with a policy of ‘if it ain’t broke; don’t try and fix it’.
However, I was worried I was getting stuck in my ways. It’s an easy trap to fall into. First, you start holidaying the same place every year, then refusing to adopt any new fashion trends before eventually and steadfastly refusing to try out any new build tools.
I’d heard plenty of chatter on the Internets about ‘Webpack’ and thought it was my duty to try a project using the new-fangled toast of the front-end developer cool-kids.
Webpack
I distinctly remember skipping over to the webpack.js.org site with keen interest. The first explanation of what Webpack is and does started like this:
import bar from './bar';
Say what? In the words of Dr. Evil, “Throw me a frickin’ bone here, Scott”.
I know it’s my own hang-up to deal with but I’ve developed a revulsion to any coding explanations that mention ‘foo’, ‘bar’ or ‘baz’. That plus the complete lack of succinctly describing what Webpack was actually for had me suspecting it perhaps wasn’t for me.
Digging a little further into the Webpack documentation, a slightly less opaque explanation was offered, “At its core, webpack is a static module bundler for modern JavaScript applications”.
Hmmm. Static module bundler. Was that what I wanted? I wasn’t convinced. I read on but the more I read, the less clear I was. Back then, concepts like dependency graphs, hot module reloading, and entry points were essentially lost on me.
A couple of evenings of researching Webpack later, I abandoned any notion of using it.
I’m sure in the right situation and more experienced hands, Webpack is immensely powerful and appropriate but it seemed like complete overkill for my humble needs. Module bundling, tree-shaking, and hot-module reloading sounded great; I just wasn’t convinced I needed them for my little ‘app’.
So, back to Gulp then.
On the theme of not changing things for change sake, another piece of technology I wanted to evaluate was Yarn over NPM for managing project dependencies. Until that point, I had always used NPM and Yarn was getting touted as a better, faster alternative. I don’t have much to say about Yarn other than if you are currently using NPM and everything is OK, you don’t need to bother trying Yarn.
One tool that arrived too late for me to appraise for this application is Parceljs. With zero configuration and a BrowserSync like browser reloading backed in, I’ve since found great utility in it! In addition, in Webpack’s defense, I'm told that v4 onwards of Webpack doesn’t require a configuration file. Anecdotally, in a more recent poll I ran on Twitter, of the 87 respondents, over half chose Webpack over Gulp, Parcel or Grunt.
I started my Gulp file with basic functionality to get up and running.
A ‘default’ task would watch the ‘source’ folders of style sheets and TypeScript files and compile them out to a build folder along with the basic HTML and associated source maps.
I got BrowserSync working with Gulp too. I might not know what to do with a Webpack configuration file but that didn’t mean I was some kind of animal. Having to manually refresh the browser while iterating with HTML/CSS is soooo 2010 and BrowserSync gives you that short feedback and iteration loop that is so useful for front-end coding.
Here is the basic gulp file as of 11.6.2017
You can see how I tweaked the Gulpfile nearer to the end of shipping, adding minification with ugilify:
Project Structure
By consequence of my technology choices, some elements of code organization for the application were defining themselves. A gulpfile.js in the root of the project, a node_modules folder (where Gulp stores plugin code) a preCSS folder for the authoring style sheets, a ts folder for the TypeScript files, and a build folder for the compiled code to live.
The idea was to have an index.html that contained the ‘shell’ of the application, including any non-dynamic HTML structure and then links to the styles and the JavaScript file that would make the application work. On disk, it would look something like this:
build/ node_modules/ preCSS/ img/ partials/ styles.css ts/ .gitignore gulpfile.js index.html package.json tsconfig.json
Configuring BrowserSync to look at that build folder meant I could point my browser at localhost:3000 and all was good.
With a basic build system in place, files organization settled and some basic designs to make a start with, I had run-out of procrastination fodder I could legitimately use to prevent me from actually building the thing!
Writing An Application
The principle of how the application would work was this. There would be a store of data. When the JavaScript loaded it would load that data, loop through each player in the data, creating the HTML needed to represent each player as a row in the layout and placing them in the appropriate in/out section. Then interactions from the user would move a player from one state to another. Simple.
When it came to actually writing the application, the two big conceptual challenges that needed to be understood were:
How to represent the data for an application in a manner that could be easily extended and manipulated;
How to make the UI react when data was changed from user input.
One of the simplest ways to represent a data structure in JavaScript is with object notation. That sentence reads a little computer science-y. More simply, an ‘object’ in JavaScript lingo is a handy way of storing data.
Consider this JavaScript object assigned to a variable called ioState (for In/Out State):
var ioState = { Count: 0, // Running total of how many players RosterCount: 0; // Total number of possible players ToolsExposed: false, // Whether the UI for the tools is showing Players: [], // A holder for the players }
If you don’t really know JavaScript that well, you can probably at least grasp what’s going on: each line inside the curly braces is a property (or ‘key’ in JavaScript parlance) and value pair. You can set all sorts of things to a JavaScript key. For example, functions, arrays of other data or nested objects. Here’s an example:
var testObject = { testFunction: function() { return "sausages"; }, testArray: [3,7,9], nestedtObject { key1: "value1", key2: 2, } }
The net result is that using that kind of data structure you can get, and set, any of the keys of the object. For example, if we want to set the count of the ioState object to 7:
ioState.Count = 7;
If we want to set a piece of text to that value, the notation works like this:
aTextNode.textContent = ioState.Count;
You can see that getting values and setting values to that state object is simple in the JavaScript side of things. However, reflecting those changes in the User Interface is less so. This is the main area where frameworks and libraries seek to abstract away the pain.
In general terms, when it comes to dealing with updating the user interface based upon state, it’s preferable to avoid querying the DOM, as this is generally considered a sub-optimal approach.
Consider the In/Out interface. It’s typically showing a list of potential players for a game. They are vertically listed, one under the other, down the page.
Perhaps each player is represented in the DOM with a label wrapping a checkbox input. This way, clicking a player would toggle the player to ‘In’ by virtue of the label making the input ‘checked’.
To update our interface, we might have a ‘listener’ on each input element in the JavaScript. On a click or change, the function queries the DOM and counts how many of our player inputs are checked. On the basis of that count, we would then update something else in the DOM to show the user how many players are checked.
Let’s consider the cost of that basic operation. We are listening on multiple DOM nodes for the click/check of an input, then querying the DOM to see how many of a particular DOM type are checked, then writing something into the DOM to show the user, UI wise, the number of players we just counted.
The alternative would be to hold the application state as a JavaScript object in memory. A button/input click in the DOM could merely update the JavaScript object and then, based on that change in the JavaScript object, do a single-pass update of the all interface changes that are needed. We could skip querying the DOM to count the players as the JavaScript object would already hold that information.
So. Using a JavaScript object structure for the state seemed simple but flexible enough to encapsulate the application state at any given time. The theory of how this could be managed seemed sound enough too – this must be what phrases like ‘one-way data flow’ were all about? However, the first real trick would be in creating some code that would automatically update the UI based on any changes to that data.
The good news is that smarter people than I have already figured this stuff out (thank goodness!). People have been perfecting approaches to this kind of challenge since the dawn of applications. This category of problems is the bread and butter of ‘design patterns’. The moniker ‘design pattern’ sounded esoteric to me at first but after digging just a little it all started to sound less computer science and more common sense.
Design Patterns
A design pattern, in computer science lexicon, is a pre-defined and proven way of solving a common technical challenge. Think of design patterns as the coding equivalent of a cooking recipe.
Perhaps the most famous literature on design patterns is "Design Patterns: Elements of Reusable Object-Oriented Software" from back in 1994. Although that deals with C++ and smalltalk the concepts are transferable. For JavaScript, Addy Osmani’s "Learning JavaScript Design Patterns" covers similar ground. You can also read it online for free here.
Observer Pattern
Typically design patterns are split into three groups: Creational, Structural and Behavioural. I was looking for something Behavioural that helped to deal with communicating changes around the different parts of the application.
More recently, I have seen and read a really great deep-dive on implementing reactivity inside an app by Gregg Pollack. There is both a blog post and video for your enjoyment here.
When reading the opening description of the ‘Observer’ pattern in Learning JavaScript Design Patterns I was pretty sure it was the pattern for me. It is described thus:
The Observer is a design pattern where an object (known as a subject) maintains a list of objects depending on it (observers), automatically notifying them of any changes to state. When a subject needs to notify observers about something interesting happening, it broadcasts a notification to the observers (which can include specific data related to the topic of the notification).
The key to my excitement was that this seemed to offer some way of things updating themselves when needed.
Suppose the user clicked a player named “Betty” to select that she was ‘In’ for the game. A few things might need to happen in the UI:
Add 1 to the playing count
Remove Betty from the ‘Out’ pool of players
Add Betty to the ‘In’ pool of players
The app would also need to update the data that represented the UI. What I was very keen to avoid was this:
playerName.addEventListener("click", playerToggle); function playerToggle() { if (inPlayers.includes(e.target.textContent)) { setPlayerOut(e.target.textContent); decrementPlayerCount(); } else { setPlayerIn(e.target.textContent); incrementPlayerCount(); } }
The aim was to have an elegant data flow that updated what was needed in the DOM when and if the central data was changed.
With an Observer pattern, it was possible to send out updates to the state and therefore the user interface quite succinctly. Here is an example, the actual function used to add a new player to the list:
function itemAdd(itemString: string) { let currentDataSet = getCurrentDataSet(); var newPerson = new makePerson(itemString); io.items[currentDataSet].EventData.splice(0, 0, newPerson); io.notify({ items: io.items }); }
The part relevant to the Observer pattern there being the io.notify method. As that shows us modifying the items part of the application state, let me show you the observer that listened for changes to ‘items’:
io.addObserver({ props: ["items"], callback: function renderItems() { // Code that updates anything to do with items... } });
We have a notify method that makes changes to the data and then Observers to that data that respond when properties they are interested in are updated.
With this approach, the app could have observables watching for changes in any property of the data and run a function whenever a change occurred.
If you are interested in the Observer pattern I opted for, I describe it more fully here.
There was now an approach for updating the UI effectively based on state. Peachy. However, this still left me with two glaring issues.
One was how to store the state across page reloads/sessions and the fact that despite the UI working, visually, it just wasn’t very ‘app like’. For example, if a button was pressed the UI instantly changed on screen. It just wasn’t particularly compelling.
Let’s deal with the storage side of things first.
Saving State
My primary interest from a development side entering into this centered on understanding how app interfaces could be built and made interactive with JavaScript. How to store and retrieve data from a server or tackle user-authentication and logins was ‘out of scope’.
Therefore, instead of hooking up to a web service for the data storage needs, I opted to keep all data on the client. There are a number of web platform methods of storing data on a client. I opted for localStorage.
The API for localStorage is incredibly simple. You set and get data like this:
// Set something localStorage.setItem("yourKey", "yourValue"); // Get something localStorage.getItem("yourKey");
LocalStorage has a setItem method that you pass two strings to. The first is the name of the key you want to store the data with and the second string is the actual string you want to store. The getItem method takes a string as an argument that returns to you whatever is stored under that key in localStorage. Nice and simple.
However, amongst the reasons to not use localStorage is the fact that everything has to be saved as a ‘string’. This means you can’t directly store something like an array or object. For example, try running these commands in your browser console:
// Set something localStorage.setItem("myArray", [1, 2, 3, 4]); // Get something localStorage.getItem("myArray"); // Logs "1,2,3,4"
Even though we tried to set the value of ‘myArray’ as an array; when we retrieved it, it had been stored as a string (note the quote marks around ‘1,2,3,4’).
You can certainly store objects and arrays with localStorage but you need to be mindful that they need converting back and forth from strings.
So, in order to write state data into localStorage it was written to a string with the JSON.stringify() method like this:
const storage = window.localStorage; storage.setItem("players", JSON.stringify(io.items));
When the data needed retrieving from localStorage, the string was turned back into usable data with the JSON.parse() method like this:
const players = JSON.parse(storage.getItem("players"));
Using localStorage meant everything was on the client and that meant no 3rd party services or data storage concerns.
Data was now persisting refreshes and sessions — Yay! The bad news was that localStorage does not survive a user emptying their browser data. When someone did that, all their In/Out data would be lost. That’s a serious shortcoming.
It’s not hard to appreciate that `localStorage` probably isn’t the best solution for 'proper' applications. Besides the aforementioned string issue, it is also slow for serious work as it blocks the 'main thread'. Alternatives are coming, like KV Storage but for now, make a mental note to caveat its use based on suitability.
Despite the fragility of saving data locally on a users device, hooking up to a service or database was resisted. Instead, the issue was side-stepped by offering a ‘load/save’ option. This would allow any user of In/Out to save their data as a JSON file which could be loaded back into the app if needed.
This worked well on Android but far less elegantly for iOS. On an iPhone, it resulted in a splurge of text on screen like this:
Tumblr media
(Large preview)
As you can imagine, I was far from alone in berating Apple via WebKit about this shortcoming. The relevant bug was here.
At the time of writing this bug has a solution and patch but has yet to make its way into iOS Safari. Allegedly, iOS13 fixes it but it’s that’s in Beta as I write.
So, for my minimum viable product, that was storage addressed. Now it was time to attempt to make things more ‘app-like’!
App-I-Ness
Turns out after many discussions with many people, defining exactly what ‘app like’ means is quite difficult.
Ultimately, I settled on ‘app-like’ being synonymous with a visual slickness usually missing from the web. When I think of the apps that feel good to use they all feature motion. Not gratuitous, but motion that adds to the story of your actions. It might be the page transitions between screens, the manner in which menus pop into existence. It’s hard to describe in words but most of us know it when we see it.
The first piece of visual flair needed was shifting player names up or down from ‘In’ to ‘Out’ and vice-versa when selected. Making a player instantly move from one section to the other was straightforward but certainly not ‘app-like’. An animation as a player name was clicked would hopefully emphasize the result of that interaction – the player moving from one category to another.
Like many of these kinds of visual interactions, their apparent simplicity belies the complexity involved in actually getting it working well.
It took a few iterations to get the movement right but the basic logic was this:
Once a ‘player’ is clicked, capture where that player is, geometrically, on the page;
Measure how far away the top of the area is the player needs to move to if going up (‘In’) and how far away the bottom is, if going down (‘Out’);
If going up, a space equal to the height of the player row needs to be left as the player moves up and the players above should collapse downwards at the same rate as the time it takes for the player to travel up to land in the space vacated by the existing ‘In’ players (if any exist) coming down;
If a player is going ‘Out’ and moving down, everything else needs to move up to the space left and the player needs to end up below any current ‘Out’ players.
Phew! It was trickier than I thought in English — never mind JavaScript!
There were additional complexities to consider and trial such as transition speeds. At the outset, it wasn’t obvious whether a constant speed of movement (e.g. 20px per 20ms), or a constant duration for the movement (e.g. 0.2s) would look better. The former was slightly more complicated as the speed needed to be computed ‘on the fly’ based upon how far the player needed to travel — greater distance requiring a longer transition duration.
However, it turned out that a constant transition duration was not just simpler in code; it actually produced a more favorable effect. The difference was subtle but these are the kind of choices you can only determine once you have seen both options.
Every so often whilst trying to nail this effect, a visual glitch would catch the eye but it was impossible to deconstruct in real time. I found the best debugging process was creating a QuickTime recording of the animation and then going through it a frame at a time. Invariably this revealed the problem quicker than any code based debugging.
Looking at the code now, I can appreciate that on something beyond my humble app, this functionality could almost certainly be written more effectively. Given that the app would know the number of players and know the fixed height of the slats, it should be entirely possible to make all distance calculations in the JavaScript alone, without any DOM reading.
It’s not that what was shipped doesn’t work, it’s just that it isn’t the kind of code solution you would showcase on the Internet. Oh, wait.
Other ‘app like’ interactions were much easier to pull off. Instead of menus simply snapping in and out with something as simple as toggling a display property, a lot of mileage was gained by simply exposing them with a little more finesse. It was still triggered simply but CSS was doing all the heavy lifting:
.io-EventLoader { position: absolute; top: 100%; margin-top: 5px; z-index: 100; width: 100%; opacity: 0; transition: all 0.2s; pointer-events: none; transform: translateY(-10px); [data-evswitcher-showing="true"] & { opacity: 1; pointer-events: auto; transform: none; } }
There when the data-evswitcher-showing="true" attribute was toggled on a parent element, the menu would fade in, transform back into its default position and pointer events would be re-enabled so the menu could receive clicks.
ECSS Style Sheet Methodology
You’ll notice in that prior code that from an authoring point of view, CSS overrides are being nested within a parent selector. That’s the way I always favor writing UI style sheets; a single source of truth for each selector and any overrides for that selector encapsulated within a single set of braces. It’s a pattern that requires the use of a CSS processor (Sass, PostCSS, LESS, Stylus, et al) but I feel is the only positive way to make use of nesting functionality.
I’d cemented this approach in my book, Enduring CSS and despite there being a plethora of more involved methods available to write CSS for interface elements, ECSS has served me and the large development teams I work with well since the approach was first documented way back in 2014! It proved just as effective in this instance.
Partialling The TypeScript
Even without a CSS processor or superset language like Sass, CSS has had the ability to import one or more CSS files into another with the import directive:
@import "other-file.css";
When beginning with JavaScript I was surprised there was no equivalent. Whenever code files get longer than a screen or so high, it always feels like splitting it into smaller pieces would be beneficial.
Another bonus to using TypeScript was that it has a beautifully simple way of splitting code into files and importing them when needed.
This capability pre-dated native JavaScript modules and was a great convenience feature. When TypeScript was compiled it stitched it all back to a single JavaScript file. It meant it was possible to easily break up the application code into manageable partial files for authoring and import then into the main file easily. The top of the main inout.ts looked like this:
/// <reference path="defaultData.ts" /> /// <reference path="splitTeams.ts" /> /// <reference path="deleteOrPaidClickMask.ts" /> /// <reference path="repositionSlat.ts" /> /// <reference path="createSlats.ts" /> /// <reference path="utils.ts" /> /// <reference path="countIn.ts" /> /// <reference path="loadFile.ts" /> /// <reference path="saveText.ts" /> /// <reference path="observerPattern.ts" /> /// <reference path="onBoard.ts" />
This simple house-keeping and organization task helped enormously.
Multiple Events
At the outset, I felt that from a functionality point of view, a single event, like “Tuesday Night Football” would suffice. In that scenario, if you loaded In/Out up you just added/removed or moved players in or out and that was that. There was no notion of multiple events.
I quickly decided that (even going for a minimum viable product) this would make for a pretty limited experience. What if somebody organized two games on different days, with a different roster of players? Surely In/Out could/should accommodate that need? It didn’t take too long to re-shape the data to make this possible and amend the methods needed to load in a different set.
At the outset, the default data set looked something like this:
var defaultData = [ { name: "Daz", paid: false, marked: false, team: "", in: false }, { name: "Carl", paid: false, marked: false, team: "", in: false }, { name: "Big Dave", paid: false, marked: false, team: "", in: false }, { name: "Nick", paid: false, marked: false, team: "", in: false } ];
An array containing an object for each player.
After factoring in multiple events it was amended to look like this:
var defaultDataV2 = [ { EventName: "Tuesday Night Footy", Selected: true, EventData: [ { name: "Jack", marked: false, team: "", in: false }, { name: "Carl", marked: false, team: "", in: false }, { name: "Big Dave", marked: false, team: "", in: false }, { name: "Nick", marked: false, team: "", in: false }, { name: "Red Boots", marked: false, team: "", in: false }, { name: "Gaz", marked: false, team: "", in: false }, { name: "Angry Martin", marked: false, team: "", in: false } ] }, { EventName: "Friday PM Bank Job", Selected: false, EventData: [ { name: "Mr Pink", marked: false, team: "", in: false }, { name: "Mr Blonde", marked: false, team: "", in: false }, { name: "Mr White", marked: false, team: "", in: false }, { name: "Mr Brown", marked: false, team: "", in: false } ] }, { EventName: "WWII Ladies Baseball", Selected: false, EventData: [ { name: "C Dottie Hinson", marked: false, team: "", in: false }, { name: "P Kit Keller", marked: false, team: "", in: false }, { name: "Mae Mordabito", marked: false, team: "", in: false } ] } ];
The new data was an array with an object for each event. Then in each event was an EventData property that was an array with player objects in as before.
It took much longer to re-consider how the interface could best deal with this new capability.
From the outset, the design had always been very sterile. Considering this was also supposed to be an exercise in design, I didn’t feel I was being brave enough. So a little more visual flair was added, starting with the header. This is what I mocked up in Sketch:
Tumblr media
Revised design mockup. (Large preview)
It wasn’t going to win awards but it was certainly more arresting than where it started.
Aesthetics aside, it wasn’t until somebody else pointed it out, that I appreciated the big plus icon in the header was very confusing. Most people thought it was a way to add another event. In reality, it switched to an ‘Add Player’ mode with a fancy transition that let you type in the name of the player in the same place the event name was currently.
This was another instance where fresh eyes were invaluable. It was also an important lesson in letting go. The honest truth was I had held on to the input mode transition in the header because I felt it was cool and clever. However, the fact was it was not serving the design and therefore the application as a whole.
This was changed in the live version. Instead, the header just deals with events — a more common scenario. Meanwhile, adding players is done from a sub-menu. This gives the app a much more understandable hierarchy.
The other lesson learned here was that whenever possible, it’s hugely beneficial to get candid feedback from peers. If they are good and honest people, they won’t let you give yourself a pass!
Summary: My Code Stinks
Right. So far, so normal tech-adventure retrospective piece; these things are ten a penny on Medium! The formula goes something like this: the dev details how they smashed down all obstacles to release a finely tuned piece of software into the Internets and then pick up an interview at Google or got acqui-hired somewhere. However, the truth of the matter is that I was a first-timer at this app-building malarkey so the code ultimately shipped as the ‘finished’ application stunk to high heaven!
For example, the Observer pattern implementation used worked very well. I was organized and methodical at the outset but that approach ‘went south’ as I became more desperate to finish things off. Like a serial dieter, old familiar habits crept back in and the code quality subsequently dropped.
Looking now at the code shipped, it is a less than ideal hodge-bodge of clean observer pattern and bog-standard event listeners calling functions. In the main inout.ts file there are over 20 querySelector method calls; hardly a poster child for modern application development!
I was pretty sore about this at the time, especially as at the outset I was aware this was a trap I didn’t want to fall into. However, in the months that have since passed, I’ve become more philosophical about it.
The final post in this series reflects on finding the balance between silvery-towered code idealism and getting things shipped. It also covers the most important lessons learned during this process and my future aspirations for application development.
Tumblr media
(dm, yk, il, ra)
0 notes
cryptswahili · 6 years ago
Text
BEST TECH STORIES of 2019 (so far)
Hello Curious Hacker,
Tumblr media
The internet has so many best of 2018 articles right now… At Hacker Noon, we’re forward thinking. Below are the best 27 stories of the year 2019 (so far).
But first, three short updates from around the Hacker Noon HQ:
Our equity crowdfund campaign is up to $986k from 893 people. The Reg CF maximum raise is $1.07M. Invest before it’s too over.
We’ll be media partner at Blockchain Connect Conference: Academic 2019 @ San Francisco Marriott tomorrow (Jan 11th), with Trent Lapinski recording podcasts and Derek Bernard recording video. A few tickets are still available, come meet the team.
Longtime Hacker Noon contributor Febin John James published a new book: “Ripple Quick Start Guide: Get started with XRP and development applications on Ripple’s blockchain” via another long timer Hacker Noon contributor Packt_Pub, and it included this really kind acknowledgement. Thanks Febin! We bought your book too :-)
Tumblr media Tumblr media
And now onto the good stuff: THE 27 BEST TECH STORIES OF 2019 (so far):
CRYPTO WINTER
Surviving Crypto Winter — Part One: Mattereum and the Internet of Agreements by Daniel Jeffries and Carly E. Howard, JD, LLM. Time to build. From the ashes of competition, rises the phoenix. As winter hits, good projects buckle down and get to work building real technology that works in the real world. And that’s what this new series of articles is all about: Who will survive the crypto winter? I’m going to dig deep and profile companies with the best shot at surviving the bust and building something we can’t imagine living without in the coming years.
Surviving Crypto Winter — Part Two: Blockstack and the Great Pendulum of History by Daniel Jeffries. AI went through two wintersand it took 50 years for anyone to reap rewards like self-driving cars. The Internet looked like a joke for the first twenty years. 3D printing is still in a winter, after early hopes of a printer in every house failed to materialize without the reason to have one yet. And of course, the crypto market suffered a spectacular crash in 2018, as the markets lost 80% or more of their value over a long slow slide to despair. The winds of crypto winter are blowing furiously and the storm is taking many victims already. In this series, I cover who stands the best chance of rising from the freezing cold and thriving when spring comes again.
2019 Developments
Best Coding Languages to Learn in 2019 by Rafi Zikavashvili. In an ideal world, your choice of programming language shouldn’t matter. Most of the popular languages share the same basic concepts, to the untrained eye most of them look the same, and let you achieve more or less the same outcome. From a developer’s perspective, a programming language is a tool and choosing the right one will influence one’s career, economic prospects, and future happiness. This article looks at five of the most popular programming languages, examines their individual and relative merits, and recommends which ones you should learn in 2019.
Major Programming Trends to Prepare for in 2019 by Constantin. Trend #1: Could Python Catch up to Java? If you look at the chart above, you’ll see that Python is already the third most popular programming language in the world. According to Stack Overflow, it surpassed C# in popularity in 2018 and PHP in 2017. But Python only recently achieved this status.
Useful Vim tricks for 2019 by Cláudio Ribeiro. Vim has a steep learning curve, let’s not try to cover it. But once you start getting the nuances of it you start discovering that Vim is full of time-saving tricks. That’s what we’re going to cover in this article. I’ve scoured the internet for Vim tricks. Some of them come from different websites, twitter posts and some of them are my own. Either way, some of these might be useful to improve your workflow in 2019.
What if
… we could verify npm packages? by Steve Konves. An npm package is just tarball of files. The fact is that all package managers (Npm, Nuget, Maven, etc) just distribute tarballs or zip files or some other bundle of content. Any responsible developer is going to keep their code in source control; however, this code may or may not be the only thing in the package. For compiled languages like Java or .Net, packages contain build artifacts, not source code. Especially if the build output is obfuscated, it is difficult if not impossible to casually discover security flaws in the package contents. Javascript is a bit different in that many simple packages are simply tarballs of unmodified source code. However, Typescript requires a transpilation step any many other non-Typescrpt codebases include some form of bundling or minification process before an npm package is created. Security concerns are exacerbated but the fact that minified code is hard to read.
Making Career Moves
How I Got Multiple Software Engineer Job Offers When Switching from Another Industry by Weihe Wang. Failure is the mother of success. I failed onsite interviews 4 times before getting my first offer. Sometimes you solved all problems brilliantly but failed the interview; while sometimes you struggled in one or two rounds but succeed in the end. There is an uncontrollable factor called luck that might be pivotal. It is frustrated to be rejected after an onsite interview, but don’t lose confidence and keep applying to other companies.
PODCASTS
Cowen, Andreessen, and Horowitz: Annotated by Arnold Kling. The view from 1995: Marc Andreessen and bhorowitz first collaborated in 1995, when Horowitz left an established, successful company, Lotus Notes, to work with Andreessen at a high-flying startup, Netscape. Andreessen points out that the big issue dividing the tech world was whether or not the Internet was going to actually solve the problem of connecting the world’s computers. As late as 1995, there were still many major companies that were working on technology that would be valuable if and only if the Internet did not work. That was a bad bet.
Hacking The Self with Nick Seneca Jankel & Trent Lapinski. “What is purpose? Well, purpose is like love in action. It is that love and kindness that comes out into I’m going to take on this community issue, I’m going to take on a bigger social problem then I was before. Until we can access purpose within, and keep it stable within us, that control and protect mode of a monkey will keep going ‘forget the purpose, lets make another million, that would be really cool, then we’ll be loved’.” Listen on iTunes or Google Play
Traction
24 Experts Weigh In: How Do You Get Traffic Without Budget? by Kirill Shilov. In my own personal experience, the best way to come up with new solutions is to find experts who have already achieved success in the same field as you and simply improve or repeat what they did. So I went ahead and asked experts from different fields about what they would do if they could start from scratch in 2019. And they answered!
Venture Capital
The Warning Label That Should Come With Venture Capital by Founder Collective.
Tumblr media
The 200 Black Women in Tech to Follow On Twitter List by Jay Jay Ghatt. Why Black Women? Since the first list was published three years ago, I’ve been asked why I only featured women on this list when the tech ecosystem is not inclusive of black men as well. My answer: the list of 200 Black Women in Tech to Follow on Twitter was created out of a need to fill a specific and articulated void after I learned that Black Women were less than 1% of StartUp Founders receiving VC Capital (less than .02%), and in essence were located at the bottom of the totem pole and represented the least, much less than black men, white women, Asian American women and other marginalized groups. Not only did this group not receive funding, it was the least represented on the staffs of tech companies and virtually absent on other “who to follow” lists in tech. Out of exclusion comes a solution. I wanted all to know that we’re here too and to make it easier to “find us”, offer a list of the group least represented to draw from so that could not longer be an excuse as to why we were not included.
Hmm… the internet actually works for…
Who’s Really Behind the World’s Most Popular Free VPNs? by William Chalk. Over half (59%) of the apps studied ultimately have Chinese ownership or are based in China, despite its strict ban on VPNs and its notorious internet surveillance regime. This raises questions about why these companies — which have such large international user bases — have been allowed to continue operating. The Chinese-owned VPNs have been downloaded by users in the US, UK, Latin America, Middle East, and Canada. Three of the apps — TurboVPN, ProxyMaster and SnapVPN — were found to have linked ownership. In their privacy policy, they note: “Our business may require us to transfer your personal data to countries outside of the European Economic Area (“EEA”), including to countries such as the People’s Republic of China or Singapore.”
More Government Imagery
See people’s faces from miles away in the 195 gigapixel photo of Shanghai. by Ben Longstaff. As an engineer this is amazing, as a citizen the privacy implications are terrifying. Your average smartphone camera is around 12 megapixels. This image of Shanghai is 195 gigapixels. One megapixel equals one million pixels, a gigapixel equals one billion pixels. Put another way, this image is 16,250 times larger than the image you can take with your smart phone. Let’s see what that feels like through the BigPixel viewer looking at the roof top of a building a few miles away.
How to Download Live Images From Government Weather Satellites by Alex Wulff. Using nothing but your computer, some software, and a $20 radio dongle you can receive transmissions from NOAA weather satellites in the sky overhead. This is an incredibly exciting project that’s easy to do but produces great images. Think about it — you can receive images from a satellite almost 1000KM straight above you!
Listing Infinity
Infinite Data Structures In JavaScript by Francis Stokes. In the real world we deal with “infinite” ideas all the time. All the positive numbers is an example of an infinite concept we wouldn’t bat an eye at. But typically when we are programming we have to think of these infiniteconcepts in a finite way. You can’t have an Array of all the positive numbers (at least not in JavaScript!). What I want to introduce in this article is the idea of an Infinite List data structure, which can represent some never ending sequence, and let’s us use common operations like map and filter to modify and create new sequences.
You Know the Value of Patterns
Complicated patterns aren’t always that complicated. Usually it’s the “simple” ones that bite you. by Patrick Lee Scott. Staring at the maze of interconnected passageways of the microservice system, I immediately recognized the problems. I was sitting with a new client doing a review of their system. This was the first time they were showing me the code which was described as “very interesting” and “definitely one of the most complex I’ve worked on!” with excitement. I shuttered a bit. I thought about my ironically misquoted t-shirt with a picture of Albert Einstein.“Any intelligent fool can make things bigger, more complex… It takes a touch of genius — and a lot of courage to move in the opposite direction.” — E. F. Schumacher.
Necessary Comparison of Bitcoin to the Weather
Bitcoin: The Gathering Storm. How Thunderstorm Dynamics Are Similar To Bitcoin Market Cycles by Charlie Shrem. On a typical summer day in Florida, the sun rises and begins to heat the ground. This solar heating is transferred into the lowest part of the atmosphere near the surface, essentially the air near the ground begins to gain energy and buoyancy. This can be compared to how Bitcoin adoption increases, such as when thousands of Bitcoin ATMs are deployed and stores begin to accept Bitcoin, which pumps energy into the Bitcoin system.
Necessary Comparison of Bitcoin to Light Itself
The Bitcoin Light Bulb Moment by Beautyon. This is the central problem with the state interfering with technology; no one can predict the future. Now that the law is in force, we are in a situation where capital has been wasted and misdirected, resources wasted and misdirected and depending on the state of the decommissioning of the incandescent bulb lines, no cost less way back to the manufacturing of incandescent light bulbs. The state, by its nature, is incompetent. They cannot predict the future and they are not omniscient. In order to be able to legislate effectively, especially where technology is concerned, they would need to be omniscient, with perfect knowledge of every piece and field of ongoing research and technology, and the potential of each piece and field of research and technology.
About Your Health
Eat Fat, Get Thin? A Physician’s Approach to Reinventing Your Health in 21 Days by Jordan “J” Gross. I tested the strategies presented in Dr. Mark Hyman’s New York Times best-selling book, and here is how it went… My friends have called me the human guinea pig. I am a test mouse in a lab full of endless possibilities. I have gone seven days with only eating Chipotle, I have done a full year with no McDonald’s, I have talked to a new person every day for the last few years, and I have even gone a full month without going to the gym (that one was the hardest for me)… the self-experimental journey I embarked upon recently was actually not so much out of curiosity and adventure, but rather, it was out of necessity.
About Those Other Coins
“When Altseason?” — How to Time the Most Profitable Period in the Cryptocurrency Market. by Rekt Capital. Altseason, a shorthand for Altcoin Season, is the time of the year when the majority of the people in the cryptocurrency market develop a very positive sentiment about Altcoins. This translates into exponential gains across Altcoins (i.e. Alternative coins to Bitcoin). In the past, Altcoins have enjoyed immense gains during Altseasons. Most notably in December 2017 which saw most (if not all) Altcoins gained their initial market valuation many times over during a period of a few weeks of constant, almost uninterrupted uptrends.
About Those Other Tokens…
STO Market Outlook 2019 by Tatiana Koffman. 2018 will be remembered as having paved the way for a new generation of security tokens. Issuers and investors continue to remain curious about the benefits of tokenization such as increased liquidity, fractional ownership, decreased issuance costs, innovative structures and greater pricing efficiency. After conducting an independent study of 130+ STOs currently on the market, the following are some trends forming for 2019.
ETHEREUM
2.0 — The Road To Constantinople And Beyond by Vince Tabora. The next system wide upgrade for the Ethereum network called Constantinople will be implemented in 2019 (originally set for 2018). It is also called as “Ethereum 2.0” or the “New Ethereum”, software version 3.5, part of the release called Metropolis. There is a lot on the line with the success of the Ethereum project, and these are the upgrades to scale the network. The Constantinople upgrade is scheduled for block #7080000. There will actually be three forks in the beginning of 2019 and this includes Constantinople. The two other forks are “hard forks”, meaning they will create a new cryptocurrency. These are Classic Vision and Ethereum Nowa. ETH holders should get an equivalent of those coins in their digital wallet after the fork, if supported by the wallet or digital exchange.
DATA, DATA, DATA
Interview with Data Scientist at kaggle: Dr. Rachael Tatman by Sanyam Bhutani (check out his whole series on machine learning heroes). Dr. Rachael Tatman: As for technical speaking, the best two pieces of advice I can give you are, first, to practice as much as possible. Ask if you can give talks at local events or to relevant clubs. The more talks you give the less nerve-wracking they are and the more you learn what is effective for you. Practice is doubly important when you’re prepping a talk. I usually try to run through the talk at least twice a day in the week leading up to it, making little adjustments when I come across awkward places. Of course, I don’t do that with live streams. I pretty much treat livestreams like technical interviews; it doesn’t matter if I make mistakes so long as I’m telling you what I’m thinking so you can follow my thought processes. My second piece of advice is to be as specific as possible. One of my personal pet peeves are talks that are about how “data science is revolutionizing something” but that is super vague. I want information I can actually apply! If you built a model that does X, talk about why X is important, how you built the model, what makes your model different from other models and how it performed in various situations. Tell me about what specifically you did that didn’t work so I know not to try it. Think about what you wanted to know about whatever you’re talking about a year ago and then tell me those things.
A Last Thought About Diversification
Why Should Everyone Invest In 2019 (Attention, Engineers) by Rafael Belchior, who also wrote the definitive productivity post of the modern era: Top 1,337 Productivity Tips For 2019, Or Any Other Year. As we have just started 2019, 🎉 we have another perfect opportunity to review our lives, opportunities, values, and expectations.
Tumblr media
Source: https://dilbert.com/strip/2018-12-31
Despite being a tech addict (DevOps, Blockchain), my path presented me several ways of approaching life and the knowledge I have gained. At some point, I noticed that there is something that professors at my university are not teaching that would turn us into more independent persons. Money. In particular, I became very interested in the investments world, as it allows you to generate money using the money. If you don’t invest your money, it will never increase. You will likely spend, give it away or save it (and possibly spend it in a short-term wish). Now, you could be asking yourself: Why should we care about investments and money? What are the opportunities? Shouldn’t we just save money? How to start well? How to avoid being scammed by false gurus? What is the big picture that we should be aware? Shouldn’t we limit ourselves to the observation of the secret mysteries of this beautiful universe? 🌌
Until next time, don’t take the realities of the world for granted.
Kind Regards,
David Smooke
P.S. We built 13 new collections this week to make easier to find great stories about: BioHacking, Bitcoin ETF, Blockchain Development, Coding, Cryptoeconomics, EOS, Learning to Code, Hacks, Ripple (XRP), Security Tokens, Tech Economics, & Women in Tech.
P.P.S. Our equity crowdfund campaign is up to $986k from 893 people. The Reg CF maximum raise is $1.07M. Invest before it’s too late.
BEST TECH STORIES of 2019 (so far) was originally published in Hacker Noon on Medium, where people are continuing the conversation by highlighting and responding to this story.
[Telegram Channel | Original Article ]
0 notes
Text
How to Reduce WordPress Page Load Time?
We all want our website to deliver great user experience, regardless of our industry or niche. As users behaviors on the web continue to evolve, you can’t afford to overlook the importance of website load speed. Having a fast website matters to your business more than you probably realize. A slow-loading website has a surprisingly significant impact on your online business. Reducing page load time is beneficial for SEO of your WordPress site, the brand image of your business and overall user experience.
It seems like a technical concept to reduce WordPress page load time, but implementing them is very easy. In this article today we are going to show you how you can reduce the load speed in your WordPress site with plugins and few configuration tweaks. You just need to pay attention to certain parameters of your site. Before that, let us take a look at the reasons why page load speed matters.
Why Reduce WordPress Page Load Time?
Page load is a serious factor in determining where you land in the SERPs.
Reducing page load time generate more sales by improving user experience.
Fast loading page keeps users engaged and decreases your bounce rate.
The speed of your site is part of your brand.
Now without further ado, let’s get into how to reduce WordPress page load time.
How to Reduce WordPress Page Load Time?
1. Choose the right WordPress Host
Finding a good host should be a top priority not just for site speed but also for the protection against traffic surges. A good web host provides faster caching and they have more powerful servers. And it’s worth paying a little extra for a premium hosting service — especially if your business relies on your website’s speed and uptime.
2. Optimize Images and Other Media Files
Large images slow down your web pages which creates a less than optimal user experience. Optimizing images is the process of decreasing their file size, using either a plugin or script, which in turn speeds up the load time of the page. Lossy and lossless compression are two methods commonly used.
3. Keep Up With The WordPress Update Cycle
There is numerous importance of updating WordPress plugins, themes and WordPress itself. While security might be the primary reason to keep your WordPress site update to date, there are other reasons too. New releases can often come with the ability to improve the speed of your website. Updating WordPress site ensure maximum performance benefits along with new cool features that WordPress offers.
4. Minimize HTTP Request
HTTP requests impact page load speeds and, ultimately, affect user experience, bounce rate, and SEO. The fewer HTTP requests your site sends to the server, the faster your site will load. In order to increase your page load speed, you need to optimize the number of HTTP requests made by your website or webpage. You can achieve this by optimizing the usage of interactive objects on your site such as Images, Charts, Gravatars, Emojis, Comments, Embeds, Scripts & Styles, Widgets & by using CSS sprites.
5. Enable Caching
Caching enhances the speed and performance of your website. Caching helps to reduce the load on your hosting server. Static cached files load faster than dynamic database queries, and this leads to faster and better performance of your website. This can save server memory and I/O operations. As a result, caching is fast becoming a vital feature, especially for those with limited hosting plans.
6. Delete WordPress Plugins You Don’t Use
Unused Plugins slow down your website’s loading speed through adding extra HTTP requests. It makes the browser jump through extra hoops before it can actually load and display your website, making it load slower. And your site loading slower can have brutal effects on your bottom line. If your website loads particularly slowly, you can be haunted by staggering bounce rates, lose customer trust, or worse, see a direct impact on your sales.
7. Minify CSS or JavaScript
Minification is the process of minimizing code and markup in your web pages and script files. It’s one of the main methods used to reduce load times and bandwidth usage on websites. Minification dramatically improves site speed and accessibility, directly translating into a better user experience. It’s also beneficial to users accessing your website through a limited data plan and who would like to save on their bandwidth usage while surfing the web.
8. Use Well-Coded & Managed WordPress Themes
Instead of trendy themes which are heavy on graphics and are packed with excess functionality that you would probably never use. You should always choose a lightweight theme that is frequently updated & has a dedicated developer team. There are few ways to test the themes load speed. You can check the page speed of WordPress theme with Pingdom. Make sure the WordPress theme is capable of achieving the perfect google PageSpeed score.
9. Use a Content Delivery Network
When requested content is cached (pre-saved) by a CDN’s servers, end users will get that content by connecting to the nearest CDN server rather than waiting for their request to go directly to the origin. This results in significant performance improvement for the end user.
10. Turn on Gzip compression
The browser takes over the decompression in the background without requiring additional bandwidth. Users of mobile devices, in particular, benefit from this performance boost, which indirectly has a positive impact on search engine ranking.
Concluding
A slow loading website can cause buyers to lose interest in your business, jump back to the search results, and then click-through to your competitor’s website. Making sure that your website loads quickly is essential for helping potential customers interact with your company’s website while helping you grow your visibility in the search engines. With fast loading sites, you’ll keep visitors happily engaged and more importantly, retain their trust and generate more sales by improving both SEO and user experience.
Hopefully, you found this article helpful. If you want to improve your WordPress site then, you might want to check the articles below:
Essential WordPress Security Plugins
Everything You Need To Know About GDPR Compliance!
How To Effectively Put Your Website in a WordPress Maintainance Mode
0 notes
krisggordon · 6 years ago
Text
21 Easy to Implement SEO Actions That Can Improve Your Rankings Big Time
To many people SEO seems like something really hard to do, which also takes a lot of time. While mostly that’s true, it’s also true that there are some small SEO actions you can perform that can have a big impact on your rankings.
  In this post, we’ve gathered 21 things you can do to improve your SEO. Most of them are easy to implement, but we’re trying to focus more on the ratio between the effort and the results. So, if something seems harder to do, it will also have a greater impact.
    I know this is a long post, but I want to challenge you to read through all of it and leave a comment at the bottom stating which recommendation you think has the best effort/results ratio. I’m really curious. Additionally, if you have other ideas, please share them with us.
  Fixing Crawlability & Indexability Issues
Set Up Traffic Monitoring Tools & Analyze Your Data
Optimize Your Titles, Headings, Content & Meta (Add Relevant Keywords)
Claim Google My Business
Target Less Competitive Keywords
Write More Content
Compress Images
Take Advantage of Caching & Minification
Claim Social Media Profiles
Ask Customers for Reviews (Use Incentives)
Optimize Internal Links & Adopt Internal Linking Practices
Remove Unnecessary Plugins/Features
Create Linkable Resources
Understand User Intent & Optimize for It
Perform A/B Testing
Get an SSL Certificate & Move to HTTPS
Look At What Your Competitors Are Doing & Do It Better!
Get Mobile Friendly
Use PPC & Advertise
Avoid Over Optimizing
Focus on Singular Call to Actions
    1. Fixing Crawlability & Indexability Issues
  Making sure that your website can be discovered and indexed by search engines is your main concern when it comes to SEO.
  They say that “The best place to hide a dead body is on the 2nd page of Google”. That implies that something has been killed. Well, in this case, a website not being on Google at all basically implies that it never even existed. At least from and SEO point of view.
  Fixing crawlability and indexation issues might be either really easy or really hard.
  For the easy part, all you have to do is make sure you don’t block any important pages from being indexed through your robots.txt file or through any meta tags.
  You can access your robots.txt file by visiting yoursite.com/robotxs.txt. If you don’t have a robots.txt file, you should have one. In the following example you can see that the file blocks access for WordPress’s admin URLs, but gives access to admin-ajax.php.
    If you don’t want to block any URLs from being indexed, your file should contain the following:
  User-agent: * Allow: /
  You also want to make sure your pages can be found by search engines. The easiest way to do it is to submit a Sitemap. However, there’s a natural way through which pages get indexed: through links.
  To discover websites and pages on the internet, search engines use software called crawlers. These crawlers access sites from one link to another to discover new pages. So make sure that when you post a new page, it’s somehow accessible from your homepage, either through the top menu, footer or through another article, at least.
  For the hard part, your site might have different issues that prevent indexability, from server and PHP errors to duplicate content, bad hreflang implementation or automatic page generation. These can lead to big expenses in your crawl budget risking leaving important pages uncrawled (the search engine sometimes limits the number of pages it crawls on a site, so if unimportant pages get crawled first, there’s no room left for important ones).
  Also, you might block individual pages using meta tags. These can be set from Plugins such as Yoast SEO. To find these, you have to visit a page and hit CTRL + U to see the source, then search for “noindex” without the brackets.
  If you find something like this, it means your page won’t be cralwed and indexed:
  <meta name="robots" content="noindex">
  It’s hard to check manually, because you have to go through each page, so a tool like CognitiveSEO’s Site Audit will be helpful. It will also help you with any other crawlability and indexability issues, such as duplicate content and bad hreflang implementation.
    To put it more simply, you need to make sure that all your important pages get indexed by search engines. You can also do a search for “site:yoursite.com” in Google to see how many pages were indexed by the search engine.
    If you see a big discrepancy between the number of indexed results and the number of pages you think your site has, you probably have some sort of issue which is worth digging into.
  2. Set Up Traffic Monitoring Tools & Analyze Your Data
  Monitoring your site’s traffic and performance is one of the most important things when it comes to SEO.
  By looking at this data you can figure what type of content works in your niche and what type of content doesn’t. You can find out things such as what articles provide the most traffic, which pages convert better and what visitors actually do when browsing your site.
    Although fancier tools, like Hotjar, are helpful for understanding how users interact with your site in terms of UX, much simpler tools such as Google Analytics and Google Search Console will do.
  If you don’t have monitoring tools installed, install some ASAP. If you already have them installed but never visit them or analyze the data, start doing it.
  The findings might surprise you!
  3. Optimize Your Titles, Headings, Content & Meta (Add Relevant Keywords)
  This is one of the mistakes I see very many people do! I’ve had SEO clients telling me they’ve worked with other specialists before only to see they’ve built hundreds of links without even optimizing the titles… and by that I literally mean not having the keywords in the titles tags!
  The basics are very important! Do your keyword research and optimize your titles, headings, content and metas!
  While creating a keyword rich title which is optimized for multiple phrases and also catchy to the eye might not be easy, make sure that you at least have the most important keywords in there!
  If you’ve done Adwords before, you know that having the Keyword in the title towards the beginning is recommended. Why? Because that way people click more on them.
  If you want to attack multiple keywords with a single page, you’ll have to optimize the title for multiple keywords and also take advantage of headings, bold text and content.
  An easy way of increasing your chances is using the CognitiveSEO Keyword Tool to optimize your content for multiple keywords. Start with the most important and then add keywords in the order of importance.
    The meta description is also very important because it affects you CTR in the search engines. Make sure you also have important keywords there, because Google shows them in bold text and it makes your result stand out. Add a call to action as well, something like “Visit our website for details!”.
  4. Claim Google My Business
  If you’re a local business, having your listing secured is a must!
  Not to say that creating a Google MyBusiness page is really easy. All you have to do is go to https://www.google.com/business/ and create an account. Then, follow the steps they show you.
    It’s a great way of ranking your business multiple times on Google.
  5. Target Less Competitive Keywords
  Targeting the most competitive keywords is a good idea. Or at least that’s what market leaders such as Brian Dean suggest. Brian tried many things during his career as an SEO and learned through failure. Now he truly is an expert and an innovator in the field. He usually talks about long content and premium design. Which, if you reverse engineer him, he does. Quite well.
  What Brian doesn’t state, however, is that he spends a lot of money to get things right and create that amazing content that he does.
  He’s not a designer. He’s not very good with videos. He probably doesn’t edit his own HTML and CSS to make his web pages look so good. He also probably doesn’t promote his content all by his own (not sure about this one though).
  On average, I’d say that his Ultimate Guides cost at least $1000 each to set up, with writing, editing, design and promotion. And if you add the videos, it’s probably more.
  That’s not what most people (or clients) want to spend. Sure, you can do it all by yourself, but you might not know design or you might not be a good writer or you might have no idea on how to do outreach.
  Also, Brian already posts once per month or so, so it will probably take you more than that to get it done all by yourself. And if you have no idea how to draw, edit or write, it will take you even longer to learn it.
  The solution here is to start with less competitive keywords and build your way up. As your business grows, you’ll get more and more experience and you’ll have more capital to outsource different tasks that are out of your area of expertise (such as design) to professionals.
  You can use the CognitiveSEO Keyword Tool to find out how competitive a keyword is. Usually, what’s over 60 is considered a pretty difficult keyword to rank for. However, you have a list of other keywords below. Look for ones with lower search volume (although keep the relevancy score high).
    But if you have the money (or client budget) already, hell, go for it. Take the top keyword and make the best possible content using the best possible team. Just make sure it’s a profitable niche and that there will be ROI.
  6. Write More Content
  One simple way of improving your content is writing more content.
  You’ll hear different opinions on this topic. Some say that people don’t have the patience to read through 2,000 words. While that might be true for click-bait posts on Social Media, it’s definitely not the case when someone’s trying to cure hemorrhoids.
  The fact that longer content ranks better in search engines is pretty much accepted as true by most of the SEOs. New research backs this up.
  So, if you have a content that doesn’t yet make it to the top, add more words to it and you might see an improvement.
  However, just adding random content won’t help much. Make sure you cover adjacent topics to make your content as relevant as possible. You can always use the CognitiveSEO Content Assistant to help you cover the most relevant points regarding your topic.
  You’ll also score bonus points for content freshness if you update your old content.
  Another great way of increasing your SEO visibility is publishing more often. If you write 2 articles per month, you’ll cover two topics. If you write 4 you’ll cover 4 topics. It’s simple math. 
  7. Compress Images
  Slow websites impact conversions and they also impact SEO. Google doesn’t want their users to wait very much for websites to load.
  One of the leading causes of slow loading websites are images. It’s also a problem with a very simple solution.
  Don’t upload big images. Generally, they should not exceed 100-200kb in size. You should also try to find the right size in pixels. There’s no point in loading a 2000×2000 pixels image if you’ll only display it 200×200 pixels on screen.
  You can also use image compression plugins. You can find plenty on Google for different content management systems such as WordPress or Joomla. If you can’t find one, you can try using 3rd party tools such as TinyPNG (manual) or ShortPixel (can be automated with API).
  If you’re a photographer, you’ll probably want your images to be HD. If this is the case, then one trick would be to create a separate link for your HD versions. If you still aren’t satisfied with the quality, then you’ll need a faster server, but also take into account that the user’s internet speed matters as well.
  8. Take Advantage of Caching & Minification
  Again, another simple fix that can make a big difference is taking advantage of caching.
  Cache files are stored into your users’ browsers. When users access your site a second time, instead of downloading those files (such as images, css files and javascript files) the browser uses the stored ones to load the site faster.
  Most of the time, it’s really easy to minify and compress files and to enable caching. You can do it with a plugin such as W3 Total Cache if you run on WordPress, but there are plugins for all kinds of CMS.
  Sometimes, however, minifying and compressing css/javascript files might affect your site’s design and functionality, so make sure you test thoroughly if everything works fine.
  9. Claim Social Media Profiles
  Social Media profiles can also rank in Google, if they’re public pages. You can optimize them for slightly different keywords, but still keep your brand and main keywords somewhere in the title.
  Different platforms are fit for different types of audience so choose wisely where you decide to invest most of your time and money.
      Either way, it’s a good idea to secure accounts on all of the popular platforms, just in case. You never know when you become an industry leader and someone else owns your page name on Facebook.
  10. Ask Customers for Reviews (Use Incentives)
  If you want your Google MyBusiness page to be at the top, you’ll need good reviews.
  But how can you get them?
  Sometimes, it’s as simple as asking them to. However, it’s a good idea to ask them on the spot and see them leave the review on their mobile device. If Google tracks their location, it will see that the review is genuine and that the person actually visited the business.
    Other times it’s not that easy and you might have to incentivize them. You can ask them for a review through an e-mail after a week or so of purchasing an item. You can offer a discount for their next purchase if they offer the review.
  Note that there’s a higher change of users leaving negative reviews than positive ones, so you always have to try to get happy users to write about you.
  11. Optimize Internal Links & Adopt Internal Linking Practices
  Internal linking is very important for both crawling and indexing as well as keyword optimization.
  First you have to take care of your navigation. Do you use the proper anchor texts when linking to important pages from your navigation?
  For example, on our site we use the most searched for keywords to link to our most important pages (because we want to rank for those keywords).
    We also link to other very important resources on our site, such as the case studies we’ve worked on and published over the years. This shows search engines that those pages are highly important, since we’ve made them accessible directly from our top menu.
  Then make sure you link between articles and pages when relevant. I’ve done this plenty of times throughout this article. It’s a good idea to also make a habit and edit old articles and link from them to the newly published ones (hopefully, Cornelia does this from time to time as I don’t have access to modify already published articles #theydonttrustme).
  You can always use the cognitiveSEO Site Audit to better understand your site’s internal linking structure.
    Another interesting practice is to link internally to random pages from your 404 pages. This works very well for big sites which often have 404 issues.
  Don’t overdo this. Although Gary Illiyes said you can overoptimize this without a direct hit/penalty on SEO, it might affect the user experience which eventually leads to problems.
  12. Remove Unnecessary Plugins/Features
  Don’t add things that you don’t really need on your website.
  A good example of a feature many webmasters think they need are sliders. Sliders kill conversions and they also make your site a lot slower, because most of them load the necessary JS files on all the pages of the site, while the slider probably runs only on the homepage.
  Also, if you’ve decided you don’t longer need a feature, make sure you also uninstall that plugin/extension. Don’t just deactivate it. You should also check and clean your database from time to time of unnecessary tables and entries, but make sure you backup everything before you make any modifications.
  13. Create Linkable Resources
  When you create content, your first thought is probably to rank for that keyword. So you try to optimize the content for keywords and probably write more content, as I’ve already told you before in this article.
  However, it’s known that you can’t really rank high without links. It’s also known that trying to hack your way into links is a risky thing and can get you into trouble.
  So what’s a really good way to get natural backlinks? The secret is to rank for link worthy topics. A good example are studies.
  Actually, I have an example right in this article:
    If you use the CognitiveSEO Site Explorer, you can see that websites in industries where people are interested in studies and statistics take advantage of this.
  For example, I’ve searched for Alcohol Statistics and added the domains that ranked first into the site explorer. To no surprise, those very studies that ranked there were the top linked pages on that domain:
      It’s not a foolproof method so you’ll have to get creative. You can use tools like BuzzSumo to find out what’s actually popular at this point in your field/niche. You need to find the gap or outrank the other sites in order for this to work (but hey, we’re SEOs, aren’t we?)
  We’ve used this technique for CognitiveSEO as well. We knew that people kept searching whether “social signals influence SEO”. We also knew most people needed a resource to link to. We also know they wanted it to be credible and that they like numbers. Big numbers. Like 23 million shares. So we analyzed 23 million shares and created this study about social signals and how they affect SEO.
  And guess what? It’s in the top 10 most shared resources on our site, among with the homepage, Site Explorer and Blog page. The difference is that this page is rather new compared to the other most linked to pages on our domain.
  14. Understand User Intent & Optimize for It
  One thing that many webmasters seem to ignore is user intent. Although this might sound like some advanced technique that only the pros do well, the truth is it’s something rather basic.
  How many times have you heard that you must “know your audience”? Probably plenty of times. Well, you also have to know what your user is looking for.
  For example, if you’re trying to book hotel rooms, you might have your Book Now button pretty high. However, do you think that your users will try to book the room as soon as they land on the page? Probably not.
  They will first want to see some pictures, probably the price and then other customer reviews before they decide on booking.
  You have to take these things into account when creating the flow of your page. If on a mobile device the first thing they see is a big Book Now button and then a bunch of keyword rich content, they might leave the page because they were actually looking to see some photos of the room first.
  Note that what I’ve said above was an example and it shouldn’t be taken for granted (although I’m pretty sure that’s the case 99% of the times). You should always test these things constantly to figure out what’s best for your website.
  15. Perform A/B Testing
  A/B Testing is a really good way of finding out what works and what doesn’t.
  It’s something you should be constantly doing, but not as often as to jeopardize your profits too much.
    This is usually the best test for conversions rates. For example, a small change, as minor as switching the button color from green to red might account for a significant increase in click through rates.
  However, you can also test with SEO, but it’s harder to isolate, because so many things can affect SEO at the same time, from Google updates to server issues.
  However, it works very well with CTRs, which means it works well with titles and meta descriptions. You can test two variants, each for one week and see which one did best. For this though, you’ll have to rank in the top 3 positions, at least.
  16. Get an SSL Certificate & Move to HTTPS
  Warning: Merging from HTTP to HTTPS is risky. It’s a good idea to consult an expert before proceeding or at least check a good migration guide.
  SSL certificates don’t have a big impact on your SEO but they can have an impact on trust. As the internet evolves, internet security becomes a bigger and bigger issue.
  Important data circulate on the internet, from names, e-mails and phone numbers to much more sensitive information, such as health or credit card information.
  If your site sends information from the server to the client or vice versa, be it only through a simple contact form, the connection should be secured.
  When browsing your site, people want to see a green lock, not a red one or any warnings.
  via netregistry.com.au
  17. Look at What Your Competitors Are Doing & Do It Better!
  One fail-proof way of ranking to the top is trying to do what your competitors are doing (the ones ranking at the top, of course).
  In the InBound Link Analysis section of the CognitiveSEO Toolset, under the Compare tab, you can find a section called Common Domains.
  If you select “at least 3 sites” you can get a list of domains that are linking to at least 3 sites in your analysis. The goal here is to identify domains that are linking to at least 2-3 of your competitors but not to your site.
    The theory here is that if those sites are already linking to your competitors, there’s a higher chance that they’ll also link to you as well, since they’re already interested in the subject.
  However, you have to be careful not to build spammy links. Make sure you analyze your competitor’s link profile before you build the links. Anyway, it’s an opportunity that your competitors are already taking advantage of, which seems to work.
  Also, this doesn’t only apply to links. Look at where they’re advertising, look at what they’re posting on social media and look at what their content looks like. Ideally, try to do everything better than them!
  18. Get Mobile Friendly
  Now this can be a big modification but I promise you, if your site isn’t displaying well on mobile platforms, you’re losing A LOT!
  Sometimes, the modification might be as simple as installing a responsive website design. Changing themes on content management systems isn’t very difficult.
  However, if your site was running on a separate mobile version before, you also have to take all the redirects into account in order to avoid losing traffic. Make sure you do this by the book and ask for a professional’s advice if this is the case.
  19. Use PPC & Advertise
  We all know that SEO takes time. It might take somewhere between 6 months to one full year to see any real results, especially when it comes to services and sales.
  However, if by that time your business goes bankrupt, it won’t help much.
    People always try to compare SEO to PPC but the truth is that they go well together. It helps you grow your business as you’re growing your organic search visibility and even when you’re at the top you can still use PPC to take up an extra spot in the search engine. Combine it with a top maps listing and you’re set!
  20. Avoid Over Optimizing
  Most of the things I’ve said in this article are pretty basic. So if you’re not doing any of that at all, start doing them. But don’t over-do it! If you try to overoptimize, you risk messing up things.
  Don’t try to figure out the next big thing. If a couple of things work and show results, don’t try to abuse them. It might harm you on the long run.
  This doesn’t mean you have to ignore any optimization tip or trick you hear. However, try to take a more ‘back to the basics’ approach and think long term.
  You should still test new things, but one at a time.
  21. Focus on Singular Call to Actions
  Many people make the mistake of having too many offers on their site. You have to think very well what you want your user to do.
  Do you want the user to enroll in an e-mail list? Then don’t show them ads. Do you want them to click on a button? Then don’t put an e-mail sign-up form in the sidebar.
  If you have multiple offers in the same place, users might get confused or distracted and probably skip both.
    Ending note
  Hopefully these tips will help you improve your SEO results quickly with minimal effort. Which technique from above do you think will be the most effective?
  Also, what other techniques have you used that were easy to implement but had visible or even significant results? Share them with us in the comments section!
  The post 21 Easy to Implement SEO Actions That Can Improve Your Rankings Big Time appeared first on SEO Blog | cognitiveSEO Blog on SEO Tactics & Strategies.
from Marketing https://cognitiveseo.com/blog/21573/small-seo-actions-big-results/ via http://www.rssmix.com/
0 notes
philipfloyd · 6 years ago
Text
21 Easy to Implement SEO Actions That Can Improve Your Rankings Big Time
To many people SEO seems like something really hard to do, which also takes a lot of time. While mostly that’s true, it’s also true that there are some small SEO actions you can perform that can have a big impact on your rankings.
  In this post, we’ve gathered 21 things you can do to improve your SEO. Most of them are easy to implement, but we’re trying to focus more on the ratio between the effort and the results. So, if something seems harder to do, it will also have a greater impact.
    I know this is a long post, but I want to challenge you to read through all of it and leave a comment at the bottom stating which recommendation you think has the best effort/results ratio. I’m really curious. Additionally, if you have other ideas, please share them with us.
  Fixing Crawlability & Indexability Issues
Set Up Traffic Monitoring Tools & Analyze Your Data
Optimize Your Titles, Headings, Content & Meta (Add Relevant Keywords)
Claim Google My Business
Target Less Competitive Keywords
Write More Content
Compress Images
Take Advantage of Caching & Minification
Claim Social Media Profiles
Ask Customers for Reviews (Use Incentives)
Optimize Internal Links & Adopt Internal Linking Practices
Remove Unnecessary Plugins/Features
Create Linkable Resources
Understand User Intent & Optimize for It
Perform A/B Testing
Get an SSL Certificate & Move to HTTPS
Look At What Your Competitors Are Doing & Do It Better!
Get Mobile Friendly
Use PPC & Advertise
Avoid Over Optimizing
Focus on Singular Call to Actions
    1. Fixing Crawlability & Indexability Issues
  Making sure that your website can be discovered and indexed by search engines is your main concern when it comes to SEO.
  They say that “The best place to hide a dead body is on the 2nd page of Google”. That implies that something has been killed. Well, in this case, a website not being on Google at all basically implies that it never even existed. At least from and SEO point of view.
  Fixing crawlability and indexation issues might be either really easy or really hard.
  For the easy part, all you have to do is make sure you don’t block any important pages from being indexed through your robots.txt file or through any meta tags.
  You can access your robots.txt file by visiting yoursite.com/robotxs.txt. If you don’t have a robots.txt file, you should have one. In the following example you can see that the file blocks access for WordPress’s admin URLs, but gives access to admin-ajax.php.
    If you don’t want to block any URLs from being indexed, your file should contain the following:
  User-agent: * Allow: /
  You also want to make sure your pages can be found by search engines. The easiest way to do it is to submit a Sitemap. However, there’s a natural way through which pages get indexed: through links.
  To discover websites and pages on the internet, search engines use software called crawlers. These crawlers access sites from one link to another to discover new pages. So make sure that when you post a new page, it’s somehow accessible from your homepage, either through the top menu, footer or through another article, at least.
  For the hard part, your site might have different issues that prevent indexability, from server and PHP errors to duplicate content, bad hreflang implementation or automatic page generation. These can lead to big expenses in your crawl budget risking leaving important pages uncrawled (the search engine sometimes limits the number of pages it crawls on a site, so if unimportant pages get crawled first, there’s no room left for important ones).
  Also, you might block individual pages using meta tags. These can be set from Plugins such as Yoast SEO. To find these, you have to visit a page and hit CTRL + U to see the source, then search for “noindex” without the brackets.
  If you find something like this, it means your page won’t be cralwed and indexed:
  <meta name="robots" content="noindex">
  It’s hard to check manually, because you have to go through each page, so a tool like CognitiveSEO’s Site Audit will be helpful. It will also help you with any other crawlability and indexability issues, such as duplicate content and bad hreflang implementation.
    To put it more simply, you need to make sure that all your important pages get indexed by search engines. You can also do a search for “site:yoursite.com” in Google to see how many pages were indexed by the search engine.
    If you see a big discrepancy between the number of indexed results and the number of pages you think your site has, you probably have some sort of issue which is worth digging into.
  2. Set Up Traffic Monitoring Tools & Analyze Your Data
  Monitoring your site’s traffic and performance is one of the most important things when it comes to SEO.
  By looking at this data you can figure what type of content works in your niche and what type of content doesn’t. You can find out things such as what articles provide the most traffic, which pages convert better and what visitors actually do when browsing your site.
    Although fancier tools, like Hotjar, are helpful for understanding how users interact with your site in terms of UX, much simpler tools such as Google Analytics and Google Search Console will do.
  If you don’t have monitoring tools installed, install some ASAP. If you already have them installed but never visit them or analyze the data, start doing it.
  The findings might surprise you!
  3. Optimize Your Titles, Headings, Content & Meta (Add Relevant Keywords)
  This is one of the mistakes I see very many people do! I’ve had SEO clients telling me they’ve worked with other specialists before only to see they’ve built hundreds of links without even optimizing the titles… and by that I literally mean not having the keywords in the titles tags!
  The basics are very important! Do your keyword research and optimize your titles, headings, content and metas!
  While creating a keyword rich title which is optimized for multiple phrases and also catchy to the eye might not be easy, make sure that you at least have the most important keywords in there!
  If you’ve done Adwords before, you know that having the Keyword in the title towards the beginning is recommended. Why? Because that way people click more on them.
  If you want to attack multiple keywords with a single page, you’ll have to optimize the title for multiple keywords and also take advantage of headings, bold text and content.
  An easy way of increasing your chances is using the CognitiveSEO Keyword Tool to optimize your content for multiple keywords. Start with the most important and then add keywords in the order of importance.
    The meta description is also very important because it affects you CTR in the search engines. Make sure you also have important keywords there, because Google shows them in bold text and it makes your result stand out. Add a call to action as well, something like “Visit our website for details!”.
  4. Claim Google My Business
  If you’re a local business, having your listing secured is a must!
  Not to say that creating a Google MyBusiness page is really easy. All you have to do is go to https://www.google.com/business/ and create an account. Then, follow the steps they show you.
    It’s a great way of ranking your business multiple times on Google.
  5. Target Less Competitive Keywords
  Targeting the most competitive keywords is a good idea. Or at least that’s what market leaders such as Brian Dean suggest. Brian tried many things during his career as an SEO and learned through failure. Now he truly is an expert and an innovator in the field. He usually talks about long content and premium design. Which, if you reverse engineer him, he does. Quite well.
  What Brian doesn’t state, however, is that he spends a lot of money to get things right and create that amazing content that he does.
  He’s not a designer. He’s not very good with videos. He probably doesn’t edit his own HTML and CSS to make his web pages look so good. He also probably doesn’t promote his content all by his own (not sure about this one though).
  On average, I’d say that his Ultimate Guides cost at least $1000 each to set up, with writing, editing, design and promotion. And if you add the videos, it’s probably more.
  That’s not what most people (or clients) want to spend. Sure, you can do it all by yourself, but you might not know design or you might not be a good writer or you might have no idea on how to do outreach.
  Also, Brian already posts once per month or so, so it will probably take you more than that to get it done all by yourself. And if you have no idea how to draw, edit or write, it will take you even longer to learn it.
  The solution here is to start with less competitive keywords and build your way up. As your business grows, you’ll get more and more experience and you’ll have more capital to outsource different tasks that are out of your area of expertise (such as design) to professionals.
  You can use the CognitiveSEO Keyword Tool to find out how competitive a keyword is. Usually, what’s over 60 is considered a pretty difficult keyword to rank for. However, you have a list of other keywords below. Look for ones with lower search volume (although keep the relevancy score high).
    But if you have the money (or client budget) already, hell, go for it. Take the top keyword and make the best possible content using the best possible team. Just make sure it’s a profitable niche and that there will be ROI.
  6. Write More Content
  One simple way of improving your content is writing more content.
  You’ll hear different opinions on this topic. Some say that people don’t have the patience to read through 2,000 words. While that might be true for click-bait posts on Social Media, it’s definitely not the case when someone’s trying to cure hemorrhoids.
  The fact that longer content ranks better in search engines is pretty much accepted as true by most of the SEOs. New research backs this up.
  So, if you have a content that doesn’t yet make it to the top, add more words to it and you might see an improvement.
  However, just adding random content won’t help much. Make sure you cover adjacent topics to make your content as relevant as possible. You can always use the CognitiveSEO Content Assistant to help you cover the most relevant points regarding your topic.
  You’ll also score bonus points for content freshness if you update your old content.
  Another great way of increasing your SEO visibility is publishing more often. If you write 2 articles per month, you’ll cover two topics. If you write 4 you’ll cover 4 topics. It’s simple math. 
  7. Compress Images
  Slow websites impact conversions and they also impact SEO. Google doesn’t want their users to wait very much for websites to load.
  One of the leading causes of slow loading websites are images. It’s also a problem with a very simple solution.
  Don’t upload big images. Generally, they should not exceed 100-200kb in size. You should also try to find the right size in pixels. There’s no point in loading a 2000×2000 pixels image if you’ll only display it 200×200 pixels on screen.
  You can also use image compression plugins. You can find plenty on Google for different content management systems such as WordPress or Joomla. If you can’t find one, you can try using 3rd party tools such as TinyPNG (manual) or ShortPixel (can be automated with API).
  If you’re a photographer, you’ll probably want your images to be HD. If this is the case, then one trick would be to create a separate link for your HD versions. If you still aren’t satisfied with the quality, then you’ll need a faster server, but also take into account that the user’s internet speed matters as well.
  8. Take Advantage of Caching & Minification
  Again, another simple fix that can make a big difference is taking advantage of caching.
  Cache files are stored into your users’ browsers. When users access your site a second time, instead of downloading those files (such as images, css files and javascript files) the browser uses the stored ones to load the site faster.
  Most of the time, it’s really easy to minify and compress files and to enable caching. You can do it with a plugin such as W3 Total Cache if you run on WordPress, but there are plugins for all kinds of CMS.
  Sometimes, however, minifying and compressing css/javascript files might affect your site’s design and functionality, so make sure you test thoroughly if everything works fine.
  9. Claim Social Media Profiles
  Social Media profiles can also rank in Google, if they’re public pages. You can optimize them for slightly different keywords, but still keep your brand and main keywords somewhere in the title.
  Different platforms are fit for different types of audience so choose wisely where you decide to invest most of your time and money.
      Either way, it’s a good idea to secure accounts on all of the popular platforms, just in case. You never know when you become an industry leader and someone else owns your page name on Facebook.
  10. Ask Customers for Reviews (Use Incentives)
  If you want your Google MyBusiness page to be at the top, you’ll need good reviews.
  But how can you get them?
  Sometimes, it’s as simple as asking them to. However, it’s a good idea to ask them on the spot and see them leave the review on their mobile device. If Google tracks their location, it will see that the review is genuine and that the person actually visited the business.
    Other times it’s not that easy and you might have to incentivize them. You can ask them for a review through an e-mail after a week or so of purchasing an item. You can offer a discount for their next purchase if they offer the review.
  Note that there’s a higher change of users leaving negative reviews than positive ones, so you always have to try to get happy users to write about you.
  11. Optimize Internal Links & Adopt Internal Linking Practices
  Internal linking is very important for both crawling and indexing as well as keyword optimization.
  First you have to take care of your navigation. Do you use the proper anchor texts when linking to important pages from your navigation?
  For example, on our site we use the most searched for keywords to link to our most important pages (because we want to rank for those keywords).
    We also link to other very important resources on our site, such as the case studies we’ve worked on and published over the years. This shows search engines that those pages are highly important, since we’ve made them accessible directly from our top menu.
  Then make sure you link between articles and pages when relevant. I’ve done this plenty of times throughout this article. It’s a good idea to also make a habit and edit old articles and link from them to the newly published ones (hopefully, Cornelia does this from time to time as I don’t have access to modify already published articles #theydonttrustme).
  You can always use the cognitiveSEO Site Audit to better understand your site’s internal linking structure.
    Another interesting practice is to link internally to random pages from your 404 pages. This works very well for big sites which often have 404 issues.
  Don’t overdo this. Although Gary Illiyes said you can overoptimize this without a direct hit/penalty on SEO, it might affect the user experience which eventually leads to problems.
  12. Remove Unnecessary Plugins/Features
  Don’t add things that you don’t really need on your website.
  A good example of a feature many webmasters think they need are sliders. Sliders kill conversions and they also make your site a lot slower, because most of them load the necessary JS files on all the pages of the site, while the slider probably runs only on the homepage.
  Also, if you’ve decided you don’t longer need a feature, make sure you also uninstall that plugin/extension. Don’t just deactivate it. You should also check and clean your database from time to time of unnecessary tables and entries, but make sure you backup everything before you make any modifications.
  13. Create Linkable Resources
  When you create content, your first thought is probably to rank for that keyword. So you try to optimize the content for keywords and probably write more content, as I’ve already told you before in this article.
  However, it’s known that you can’t really rank high without links. It’s also known that trying to hack your way into links is a risky thing and can get you into trouble.
  So what’s a really good way to get natural backlinks? The secret is to rank for link worthy topics. A good example are studies.
  Actually, I have an example right in this article:
    If you use the CognitiveSEO Site Explorer, you can see that websites in industries where people are interested in studies and statistics take advantage of this.
  For example, I’ve searched for Alcohol Statistics and added the domains that ranked first into the site explorer. To no surprise, those very studies that ranked there were the top linked pages on that domain:
      It’s not a foolproof method so you’ll have to get creative. You can use tools like BuzzSumo to find out what’s actually popular at this point in your field/niche. You need to find the gap or outrank the other sites in order for this to work (but hey, we’re SEOs, aren’t we?)
  We’ve used this technique for CognitiveSEO as well. We knew that people kept searching whether “social signals influence SEO”. We also knew most people needed a resource to link to. We also know they wanted it to be credible and that they like numbers. Big numbers. Like 23 million shares. So we analyzed 23 million shares and created this study about social signals and how they affect SEO.
  And guess what? It’s in the top 10 most shared resources on our site, among with the homepage, Site Explorer and Blog page. The difference is that this page is rather new compared to the other most linked to pages on our domain.
  14. Understand User Intent & Optimize for It
  One thing that many webmasters seem to ignore is user intent. Although this might sound like some advanced technique that only the pros do well, the truth is it’s something rather basic.
  How many times have you heard that you must “know your audience”? Probably plenty of times. Well, you also have to know what your user is looking for.
  For example, if you’re trying to book hotel rooms, you might have your Book Now button pretty high. However, do you think that your users will try to book the room as soon as they land on the page? Probably not.
  They will first want to see some pictures, probably the price and then other customer reviews before they decide on booking.
  You have to take these things into account when creating the flow of your page. If on a mobile device the first thing they see is a big Book Now button and then a bunch of keyword rich content, they might leave the page because they were actually looking to see some photos of the room first.
  Note that what I’ve said above was an example and it shouldn’t be taken for granted (although I’m pretty sure that’s the case 99% of the times). You should always test these things constantly to figure out what’s best for your website.
  15. Perform A/B Testing
  A/B Testing is a really good way of finding out what works and what doesn’t.
  It’s something you should be constantly doing, but not as often as to jeopardize your profits too much.
    This is usually the best test for conversions rates. For example, a small change, as minor as switching the button color from green to red might account for a significant increase in click through rates.
  However, you can also test with SEO, but it’s harder to isolate, because so many things can affect SEO at the same time, from Google updates to server issues.
  However, it works very well with CTRs, which means it works well with titles and meta descriptions. You can test two variants, each for one week and see which one did best. For this though, you’ll have to rank in the top 3 positions, at least.
  16. Get an SSL Certificate & Move to HTTPS
  Warning: Merging from HTTP to HTTPS is risky. It’s a good idea to consult an expert before proceeding or at least check a good migration guide.
  SSL certificates don’t have a big impact on your SEO but they can have an impact on trust. As the internet evolves, internet security becomes a bigger and bigger issue.
  Important data circulate on the internet, from names, e-mails and phone numbers to much more sensitive information, such as health or credit card information.
  If your site sends information from the server to the client or vice versa, be it only through a simple contact form, the connection should be secured.
  When browsing your site, people want to see a green lock, not a red one or any warnings.
  via netregistry.com.au
  17. Look at What Your Competitors Are Doing & Do It Better!
  One fail-proof way of ranking to the top is trying to do what your competitors are doing (the ones ranking at the top, of course).
  In the InBound Link Analysis section of the CognitiveSEO Toolset, under the Compare tab, you can find a section called Common Domains.
  If you select “at least 3 sites” you can get a list of domains that are linking to at least 3 sites in your analysis. The goal here is to identify domains that are linking to at least 2-3 of your competitors but not to your site.
    The theory here is that if those sites are already linking to your competitors, there’s a higher chance that they’ll also link to you as well, since they’re already interested in the subject.
  However, you have to be careful not to build spammy links. Make sure you analyze your competitor’s link profile before you build the links. Anyway, it’s an opportunity that your competitors are already taking advantage of, which seems to work.
  Also, this doesn’t only apply to links. Look at where they’re advertising, look at what they’re posting on social media and look at what their content looks like. Ideally, try to do everything better than them!
  18. Get Mobile Friendly
  Now this can be a big modification but I promise you, if your site isn’t displaying well on mobile platforms, you’re losing A LOT!
  Sometimes, the modification might be as simple as installing a responsive website design. Changing themes on content management systems isn’t very difficult.
  However, if your site was running on a separate mobile version before, you also have to take all the redirects into account in order to avoid losing traffic. Make sure you do this by the book and ask for a professional’s advice if this is the case.
  19. Use PPC & Advertise
  We all know that SEO takes time. It might take somewhere between 6 months to one full year to see any real results, especially when it comes to services and sales.
  However, if by that time your business goes bankrupt, it won’t help much.
    People always try to compare SEO to PPC but the truth is that they go well together. It helps you grow your business as you’re growing your organic search visibility and even when you’re at the top you can still use PPC to take up an extra spot in the search engine. Combine it with a top maps listing and you’re set!
  20. Avoid Over Optimizing
  Most of the things I’ve said in this article are pretty basic. So if you’re not doing any of that at all, start doing them. But don’t over-do it! If you try to overoptimize, you risk messing up things.
  Don’t try to figure out the next big thing. If a couple of things work and show results, don’t try to abuse them. It might harm you on the long run.
  This doesn’t mean you have to ignore any optimization tip or trick you hear. However, try to take a more ‘back to the basics’ approach and think long term.
  You should still test new things, but one at a time.
  21. Focus on Singular Call to Actions
  Many people make the mistake of having too many offers on their site. You have to think very well what you want your user to do.
  Do you want the user to enroll in an e-mail list? Then don’t show them ads. Do you want them to click on a button? Then don’t put an e-mail sign-up form in the sidebar.
  If you have multiple offers in the same place, users might get confused or distracted and probably skip both.
    Ending note
  Hopefully these tips will help you improve your SEO results quickly with minimal effort. Which technique from above do you think will be the most effective?
  Also, what other techniques have you used that were easy to implement but had visible or even significant results? Share them with us in the comments section!
  The post 21 Easy to Implement SEO Actions That Can Improve Your Rankings Big Time appeared first on SEO Blog | cognitiveSEO Blog on SEO Tactics & Strategies.
from Marketing https://cognitiveseo.com/blog/21573/small-seo-actions-big-results/ via http://www.rssmix.com/
0 notes
wjwilliams29 · 6 years ago
Text
21 Easy to Implement SEO Actions That Can Improve Your Rankings Big Time
To many people SEO seems like something really hard to do, which also takes a lot of time. While mostly that’s true, it’s also true that there are some small SEO actions you can perform that can have a big impact on your rankings.
  In this post, we’ve gathered 21 things you can do to improve your SEO. Most of them are easy to implement, but we’re trying to focus more on the ratio between the effort and the results. So, if something seems harder to do, it will also have a greater impact.
    I know this is a long post, but I want to challenge you to read through all of it and leave a comment at the bottom stating which recommendation you think has the best effort/results ratio. I’m really curious. Additionally, if you have other ideas, please share them with us.
  Fixing Crawlability & Indexability Issues
Set Up Traffic Monitoring Tools & Analyze Your Data
Optimize Your Titles, Headings, Content & Meta (Add Relevant Keywords)
Claim Google My Business
Target Less Competitive Keywords
Write More Content
Compress Images
Take Advantage of Caching & Minification
Claim Social Media Profiles
Ask Customers for Reviews (Use Incentives)
Optimize Internal Links & Adopt Internal Linking Practices
Remove Unnecessary Plugins/Features
Create Linkable Resources
Understand User Intent & Optimize for It
Perform A/B Testing
Get an SSL Certificate & Move to HTTPS
Look At What Your Competitors Are Doing & Do It Better!
Get Mobile Friendly
Use PPC & Advertise
Avoid Over Optimizing
Focus on Singular Call to Actions
    1. Fixing Crawlability & Indexability Issues
  Making sure that your website can be discovered and indexed by search engines is your main concern when it comes to SEO.
  They say that “The best place to hide a dead body is on the 2nd page of Google”. That implies that something has been killed. Well, in this case, a website not being on Google at all basically implies that it never even existed. At least from and SEO point of view.
  Fixing crawlability and indexation issues might be either really easy or really hard.
  For the easy part, all you have to do is make sure you don’t block any important pages from being indexed through your robots.txt file or through any meta tags.
  You can access your robots.txt file by visiting yoursite.com/robotxs.txt. If you don’t have a robots.txt file, you should have one. In the following example you can see that the file blocks access for WordPress’s admin URLs, but gives access to admin-ajax.php.
    If you don’t want to block any URLs from being indexed, your file should contain the following:
  User-agent: * Allow: /
  You also want to make sure your pages can be found by search engines. The easiest way to do it is to submit a Sitemap. However, there’s a natural way through which pages get indexed: through links.
  To discover websites and pages on the internet, search engines use software called crawlers. These crawlers access sites from one link to another to discover new pages. So make sure that when you post a new page, it’s somehow accessible from your homepage, either through the top menu, footer or through another article, at least.
  For the hard part, your site might have different issues that prevent indexability, from server and PHP errors to duplicate content, bad hreflang implementation or automatic page generation. These can lead to big expenses in your crawl budget risking leaving important pages uncrawled (the search engine sometimes limits the number of pages it crawls on a site, so if unimportant pages get crawled first, there’s no room left for important ones).
  Also, you might block individual pages using meta tags. These can be set from Plugins such as Yoast SEO. To find these, you have to visit a page and hit CTRL + U to see the source, then search for “noindex” without the brackets.
  If you find something like this, it means your page won’t be cralwed and indexed:
  <meta name="robots" content="noindex">
  It’s hard to check manually, because you have to go through each page, so a tool like CognitiveSEO’s Site Audit will be helpful. It will also help you with any other crawlability and indexability issues, such as duplicate content and bad hreflang implementation.
    To put it more simply, you need to make sure that all your important pages get indexed by search engines. You can also do a search for “site:yoursite.com” in Google to see how many pages were indexed by the search engine.
    If you see a big discrepancy between the number of indexed results and the number of pages you think your site has, you probably have some sort of issue which is worth digging into.
  2. Set Up Traffic Monitoring Tools & Analyze Your Data
  Monitoring your site’s traffic and performance is one of the most important things when it comes to SEO.
  By looking at this data you can figure what type of content works in your niche and what type of content doesn’t. You can find out things such as what articles provide the most traffic, which pages convert better and what visitors actually do when browsing your site.
    Although fancier tools, like Hotjar, are helpful for understanding how users interact with your site in terms of UX, much simpler tools such as Google Analytics and Google Search Console will do.
  If you don’t have monitoring tools installed, install some ASAP. If you already have them installed but never visit them or analyze the data, start doing it.
  The findings might surprise you!
  3. Optimize Your Titles, Headings, Content & Meta (Add Relevant Keywords)
  This is one of the mistakes I see very many people do! I’ve had SEO clients telling me they’ve worked with other specialists before only to see they’ve built hundreds of links without even optimizing the titles… and by that I literally mean not having the keywords in the titles tags!
  The basics are very important! Do your keyword research and optimize your titles, headings, content and metas!
  While creating a keyword rich title which is optimized for multiple phrases and also catchy to the eye might not be easy, make sure that you at least have the most important keywords in there!
  If you’ve done Adwords before, you know that having the Keyword in the title towards the beginning is recommended. Why? Because that way people click more on them.
  If you want to attack multiple keywords with a single page, you’ll have to optimize the title for multiple keywords and also take advantage of headings, bold text and content.
  An easy way of increasing your chances is using the CognitiveSEO Keyword Tool to optimize your content for multiple keywords. Start with the most important and then add keywords in the order of importance.
    The meta description is also very important because it affects you CTR in the search engines. Make sure you also have important keywords there, because Google shows them in bold text and it makes your result stand out. Add a call to action as well, something like “Visit our website for details!”.
  4. Claim Google My Business
  If you’re a local business, having your listing secured is a must!
  Not to say that creating a Google MyBusiness page is really easy. All you have to do is go to https://www.google.com/business/ and create an account. Then, follow the steps they show you.
    It’s a great way of ranking your business multiple times on Google.
  5. Target Less Competitive Keywords
  Targeting the most competitive keywords is a good idea. Or at least that’s what market leaders such as Brian Dean suggest. Brian tried many things during his career as an SEO and learned through failure. Now he truly is an expert and an innovator in the field. He usually talks about long content and premium design. Which, if you reverse engineer him, he does. Quite well.
  What Brian doesn’t state, however, is that he spends a lot of money to get things right and create that amazing content that he does.
  He’s not a designer. He’s not very good with videos. He probably doesn’t edit his own HTML and CSS to make his web pages look so good. He also probably doesn’t promote his content all by his own (not sure about this one though).
  On average, I’d say that his Ultimate Guides cost at least $1000 each to set up, with writing, editing, design and promotion. And if you add the videos, it’s probably more.
  That’s not what most people (or clients) want to spend. Sure, you can do it all by yourself, but you might not know design or you might not be a good writer or you might have no idea on how to do outreach.
  Also, Brian already posts once per month or so, so it will probably take you more than that to get it done all by yourself. And if you have no idea how to draw, edit or write, it will take you even longer to learn it.
  The solution here is to start with less competitive keywords and build your way up. As your business grows, you’ll get more and more experience and you’ll have more capital to outsource different tasks that are out of your area of expertise (such as design) to professionals.
  You can use the CognitiveSEO Keyword Tool to find out how competitive a keyword is. Usually, what’s over 60 is considered a pretty difficult keyword to rank for. However, you have a list of other keywords below. Look for ones with lower search volume (although keep the relevancy score high).
    But if you have the money (or client budget) already, hell, go for it. Take the top keyword and make the best possible content using the best possible team. Just make sure it’s a profitable niche and that there will be ROI.
  6. Write More Content
  One simple way of improving your content is writing more content.
  You’ll hear different opinions on this topic. Some say that people don’t have the patience to read through 2,000 words. While that might be true for click-bait posts on Social Media, it’s definitely not the case when someone’s trying to cure hemorrhoids.
  The fact that longer content ranks better in search engines is pretty much accepted as true by most of the SEOs. New research backs this up.
  So, if you have a content that doesn’t yet make it to the top, add more words to it and you might see an improvement.
  However, just adding random content won’t help much. Make sure you cover adjacent topics to make your content as relevant as possible. You can always use the CognitiveSEO Content Assistant to help you cover the most relevant points regarding your topic.
  You’ll also score bonus points for content freshness if you update your old content.
  Another great way of increasing your SEO visibility is publishing more often. If you write 2 articles per month, you’ll cover two topics. If you write 4 you’ll cover 4 topics. It’s simple math. 
  7. Compress Images
  Slow websites impact conversions and they also impact SEO. Google doesn’t want their users to wait very much for websites to load.
  One of the leading causes of slow loading websites are images. It’s also a problem with a very simple solution.
  Don’t upload big images. Generally, they should not exceed 100-200kb in size. You should also try to find the right size in pixels. There’s no point in loading a 2000×2000 pixels image if you’ll only display it 200×200 pixels on screen.
  You can also use image compression plugins. You can find plenty on Google for different content management systems such as WordPress or Joomla. If you can’t find one, you can try using 3rd party tools such as TinyPNG (manual) or ShortPixel (can be automated with API).
  If you’re a photographer, you’ll probably want your images to be HD. If this is the case, then one trick would be to create a separate link for your HD versions. If you still aren’t satisfied with the quality, then you’ll need a faster server, but also take into account that the user’s internet speed matters as well.
  8. Take Advantage of Caching & Minification
  Again, another simple fix that can make a big difference is taking advantage of caching.
  Cache files are stored into your users’ browsers. When users access your site a second time, instead of downloading those files (such as images, css files and javascript files) the browser uses the stored ones to load the site faster.
  Most of the time, it’s really easy to minify and compress files and to enable caching. You can do it with a plugin such as W3 Total Cache if you run on WordPress, but there are plugins for all kinds of CMS.
  Sometimes, however, minifying and compressing css/javascript files might affect your site’s design and functionality, so make sure you test thoroughly if everything works fine.
  9. Claim Social Media Profiles
  Social Media profiles can also rank in Google, if they’re public pages. You can optimize them for slightly different keywords, but still keep your brand and main keywords somewhere in the title.
  Different platforms are fit for different types of audience so choose wisely where you decide to invest most of your time and money.
      Either way, it’s a good idea to secure accounts on all of the popular platforms, just in case. You never know when you become an industry leader and someone else owns your page name on Facebook.
  10. Ask Customers for Reviews (Use Incentives)
  If you want your Google MyBusiness page to be at the top, you’ll need good reviews.
  But how can you get them?
  Sometimes, it’s as simple as asking them to. However, it’s a good idea to ask them on the spot and see them leave the review on their mobile device. If Google tracks their location, it will see that the review is genuine and that the person actually visited the business.
    Other times it’s not that easy and you might have to incentivize them. You can ask them for a review through an e-mail after a week or so of purchasing an item. You can offer a discount for their next purchase if they offer the review.
  Note that there’s a higher change of users leaving negative reviews than positive ones, so you always have to try to get happy users to write about you.
  11. Optimize Internal Links & Adopt Internal Linking Practices
  Internal linking is very important for both crawling and indexing as well as keyword optimization.
  First you have to take care of your navigation. Do you use the proper anchor texts when linking to important pages from your navigation?
  For example, on our site we use the most searched for keywords to link to our most important pages (because we want to rank for those keywords).
    We also link to other very important resources on our site, such as the case studies we’ve worked on and published over the years. This shows search engines that those pages are highly important, since we’ve made them accessible directly from our top menu.
  Then make sure you link between articles and pages when relevant. I’ve done this plenty of times throughout this article. It’s a good idea to also make a habit and edit old articles and link from them to the newly published ones (hopefully, Cornelia does this from time to time as I don’t have access to modify already published articles #theydonttrustme).
  You can always use the cognitiveSEO Site Audit to better understand your site’s internal linking structure.
    Another interesting practice is to link internally to random pages from your 404 pages. This works very well for big sites which often have 404 issues.
  Don’t overdo this. Although Gary Illiyes said you can overoptimize this without a direct hit/penalty on SEO, it might affect the user experience which eventually leads to problems.
  12. Remove Unnecessary Plugins/Features
  Don’t add things that you don’t really need on your website.
  A good example of a feature many webmasters think they need are sliders. Sliders kill conversions and they also make your site a lot slower, because most of them load the necessary JS files on all the pages of the site, while the slider probably runs only on the homepage.
  Also, if you’ve decided you don’t longer need a feature, make sure you also uninstall that plugin/extension. Don’t just deactivate it. You should also check and clean your database from time to time of unnecessary tables and entries, but make sure you backup everything before you make any modifications.
  13. Create Linkable Resources
  When you create content, your first thought is probably to rank for that keyword. So you try to optimize the content for keywords and probably write more content, as I’ve already told you before in this article.
  However, it’s known that you can’t really rank high without links. It’s also known that trying to hack your way into links is a risky thing and can get you into trouble.
  So what’s a really good way to get natural backlinks? The secret is to rank for link worthy topics. A good example are studies.
  Actually, I have an example right in this article:
    If you use the CognitiveSEO Site Explorer, you can see that websites in industries where people are interested in studies and statistics take advantage of this.
  For example, I’ve searched for Alcohol Statistics and added the domains that ranked first into the site explorer. To no surprise, those very studies that ranked there were the top linked pages on that domain:
      It’s not a foolproof method so you’ll have to get creative. You can use tools like BuzzSumo to find out what’s actually popular at this point in your field/niche. You need to find the gap or outrank the other sites in order for this to work (but hey, we’re SEOs, aren’t we?)
  We’ve used this technique for CognitiveSEO as well. We knew that people kept searching whether “social signals influence SEO”. We also knew most people needed a resource to link to. We also know they wanted it to be credible and that they like numbers. Big numbers. Like 23 million shares. So we analyzed 23 million shares and created this study about social signals and how they affect SEO.
  And guess what? It’s in the top 10 most shared resources on our site, among with the homepage, Site Explorer and Blog page. The difference is that this page is rather new compared to the other most linked to pages on our domain.
  14. Understand User Intent & Optimize for It
  One thing that many webmasters seem to ignore is user intent. Although this might sound like some advanced technique that only the pros do well, the truth is it’s something rather basic.
  How many times have you heard that you must “know your audience”? Probably plenty of times. Well, you also have to know what your user is looking for.
  For example, if you’re trying to book hotel rooms, you might have your Book Now button pretty high. However, do you think that your users will try to book the room as soon as they land on the page? Probably not.
  They will first want to see some pictures, probably the price and then other customer reviews before they decide on booking.
  You have to take these things into account when creating the flow of your page. If on a mobile device the first thing they see is a big Book Now button and then a bunch of keyword rich content, they might leave the page because they were actually looking to see some photos of the room first.
  Note that what I’ve said above was an example and it shouldn’t be taken for granted (although I’m pretty sure that’s the case 99% of the times). You should always test these things constantly to figure out what’s best for your website.
  15. Perform A/B Testing
  A/B Testing is a really good way of finding out what works and what doesn’t.
  It’s something you should be constantly doing, but not as often as to jeopardize your profits too much.
    This is usually the best test for conversions rates. For example, a small change, as minor as switching the button color from green to red might account for a significant increase in click through rates.
  However, you can also test with SEO, but it’s harder to isolate, because so many things can affect SEO at the same time, from Google updates to server issues.
  However, it works very well with CTRs, which means it works well with titles and meta descriptions. You can test two variants, each for one week and see which one did best. For this though, you’ll have to rank in the top 3 positions, at least.
  16. Get an SSL Certificate & Move to HTTPS
  Warning: Merging from HTTP to HTTPS is risky. It’s a good idea to consult an expert before proceeding or at least check a good migration guide.
  SSL certificates don’t have a big impact on your SEO but they can have an impact on trust. As the internet evolves, internet security becomes a bigger and bigger issue.
  Important data circulate on the internet, from names, e-mails and phone numbers to much more sensitive information, such as health or credit card information.
  If your site sends information from the server to the client or vice versa, be it only through a simple contact form, the connection should be secured.
  When browsing your site, people want to see a green lock, not a red one or any warnings.
  via netregistry.com.au
  17. Look at What Your Competitors Are Doing & Do It Better!
  One fail-proof way of ranking to the top is trying to do what your competitors are doing (the ones ranking at the top, of course).
  In the InBound Link Analysis section of the CognitiveSEO Toolset, under the Compare tab, you can find a section called Common Domains.
  If you select “at least 3 sites” you can get a list of domains that are linking to at least 3 sites in your analysis. The goal here is to identify domains that are linking to at least 2-3 of your competitors but not to your site.
    The theory here is that if those sites are already linking to your competitors, there’s a higher chance that they’ll also link to you as well, since they’re already interested in the subject.
  However, you have to be careful not to build spammy links. Make sure you analyze your competitor’s link profile before you build the links. Anyway, it’s an opportunity that your competitors are already taking advantage of, which seems to work.
  Also, this doesn’t only apply to links. Look at where they’re advertising, look at what they’re posting on social media and look at what their content looks like. Ideally, try to do everything better than them!
  18. Get Mobile Friendly
  Now this can be a big modification but I promise you, if your site isn’t displaying well on mobile platforms, you’re losing A LOT!
  Sometimes, the modification might be as simple as installing a responsive website design. Changing themes on content management systems isn’t very difficult.
  However, if your site was running on a separate mobile version before, you also have to take all the redirects into account in order to avoid losing traffic. Make sure you do this by the book and ask for a professional’s advice if this is the case.
  19. Use PPC & Advertise
  We all know that SEO takes time. It might take somewhere between 6 months to one full year to see any real results, especially when it comes to services and sales.
  However, if by that time your business goes bankrupt, it won’t help much.
    People always try to compare SEO to PPC but the truth is that they go well together. It helps you grow your business as you’re growing your organic search visibility and even when you’re at the top you can still use PPC to take up an extra spot in the search engine. Combine it with a top maps listing and you’re set!
  20. Avoid Over Optimizing
  Most of the things I’ve said in this article are pretty basic. So if you’re not doing any of that at all, start doing them. But don’t over-do it! If you try to overoptimize, you risk messing up things.
  Don’t try to figure out the next big thing. If a couple of things work and show results, don’t try to abuse them. It might harm you on the long run.
  This doesn’t mean you have to ignore any optimization tip or trick you hear. However, try to take a more ‘back to the basics’ approach and think long term.
  You should still test new things, but one at a time.
  21. Focus on Singular Call to Actions
  Many people make the mistake of having too many offers on their site. You have to think very well what you want your user to do.
  Do you want the user to enroll in an e-mail list? Then don’t show them ads. Do you want them to click on a button? Then don’t put an e-mail sign-up form in the sidebar.
  If you have multiple offers in the same place, users might get confused or distracted and probably skip both.
    Ending note
  Hopefully these tips will help you improve your SEO results quickly with minimal effort. Which technique from above do you think will be the most effective?
  Also, what other techniques have you used that were easy to implement but had visible or even significant results? Share them with us in the comments section!
  The post 21 Easy to Implement SEO Actions That Can Improve Your Rankings Big Time appeared first on SEO Blog | cognitiveSEO Blog on SEO Tactics & Strategies.
0 notes